如何快速找出Linux服务器上不该存在恶意或后门文件

如何快速找出Linux服务器上不该存在恶意或后门文件。前段时间我在APT写作时注意到一个问题,我发现网上大多都是关于Windows恶意软件检测的文章以及教程,而关于如何寻找Linux系统上恶意软件的资料却少之又少。因此,这篇文章主要是向大家介绍一些有关检查Linux系统恶意软件的技巧和方法。话不多说,让我们进入正题。

校验二进制文件

有一件事需要检查确认即没有运行的二进制文件被修改。这种类型的恶意软件可以用sshd的版本来支持,以允许使用特定的密码连接到系统,甚至是一些二进制文件的修改版本,它以root用户身份运行,只需监听触发器数据包的原始套接字即可。为此,我们将以Redhat和Debian为例。

寻找不属于的二进制文件

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | grep “not owned”

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | grep “no path”

校验运行的二进制文件是否与包中的文件匹配

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | xargs rpm -V

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | cut -d: -f1 | xargs dpkg -V

校验所有包文件

另一件需要检查确认的事是即所有属于包的二进制文件都没有被修改。这个过程可能需要一段时间才能完成,但这是值得。我们可以设置一个cron jobs,以在指定时间来运行它。

校验所有包文件

rpm -Va

dpkg -V

输出结果

输出应该显示属于包的任何二进制文件,计算二进制文件的哈希值,并将其与包安装或更新时保存的值进行比较。以下是基于Redhat系统的输出。使用dpkg的Debian系统不校验其中的大部分,因此如果修改了二进制文件,只显示“5”。

S 文件大小不同

M 模式不同(包括权限和文件类型)

5 摘要(以前的MD5 sum)不同

D 设备主/次要号不匹配

L readLink(2)路径不匹配

U 用户所有权不同

G 组的所有权不同

T mTime不同

P caPabilities不同

检查RAW套接字

我们经常能看到RAW socket后门。它们侦听传入的数据包并触发事件,例如最近发现的“Chaos”后门,以及一个在github上搜索raw socket后门时弹出的示例。对于这个检查,我们只会看看使用RAW套接字的过程。使用它们的常用程序并不多,因此我们可以缩小要查看的进程的范围。

使用 raw sockets listening检查二进制文件

netstat -lwp or ss -lwp

lsof | grep RAW

检查可能的注入内存

这里可能会存在各种误报的情况。RWX内存(读写执行)被许多程序使用,其中大多数是解释型语言,所以像python和java之类的,或使用任何库解析脚本的都会有这种情况,这是非常正常的。如果你找到RWX内存的许多条目并且该进程不是python或java,那你就应该仔细的查看一下了。该命令将列出RWX内存的进程id。可以看到以下列出了cron,这显然是不正常的进程。

命令查找pid

grep -r “rwx” /proc/*/maps | cut -d/ -f 3|uniq -c | sort -nr

检查修改的PAM模块

一个常见的后门是插入或替换PAM模块进行认证。 这可以允许远程访问,并且还允许攻击者从任何用户获取root权限。这个后门程序也不关心对/etc/passwd的修改,所以所有的原始密码和修改后的密码仍然有效。由于它提供的访问类型,在我看来这是一种非常危险的后门类型。你可以使用合法登录条目的正常协议,因此看起来显然像是没有任何恶意网络活动一样。

校验PAM模块

find /lib64/security/ | xargs rpm -qf | grep “not owned”

find /lib64/security/ | xargs rpm -qf | grep -v “not “| xargs rpm -V

SSH访问

保持访问权限并不需要删除二进制文件的一种非常简单的方法是,只需将ssh密钥添加到特定用户的authorized_keys文件中,并允许攻击者像普通用户那样进入ssh。这也是最难检测的方法之一,因为你需要确定ssh密钥是合法的还是恶意的,这要求用户验证只有他们的密钥在该文件中。攻击者也可以窃取用户的密钥,如果他们之前被盗用过的话。

列出所有用户的.ssh文件夹

cat /etc/passwd |cut -d: -f 6 | xargs [email protected] /bin/sh -c “echo @; ls -al @/.ssh/ 2>/dev/null”

总结

有许多不同的方式可以保持对Linux服务器的权限访问。以上查找列表并不完整,但都是一些较为常见的查找后门的方法,包括Meterpreter和github上发现的其他常见后门程序。

原文地址:https://www.cnblogs.com/20560838q/p/12356064.html

时间: 2024-10-25 10:32:52

如何快速找出Linux服务器上不该存在恶意或后门文件的相关文章

找出linux服务器IO占用高的程序

一台服务器比较性能无外乎内存.cpu使用率.IO使用率,把这3样优化好了,你服务器的负载就要小很多,当然网络情况不在我的考虑范围,毕竟网络这个情况是很不稳定,就算你服务器上把网络优化得再好,idc不给力也没用,除非是自己公司机房,好了,今天只说下怎么找IO占用高的程序. 系统:centos 5.5 1.开启IO监控 sysctl vm.block_dump=1或echo 1 >/proc/sys/vm/block_dump 2.开启后内核会将IO读写dump到日记,用dmesg查看: dmesg

编程之美 1.5快速找出故障机器

题目: 有很多服务器存储数据,假设一个机器仅存储一个标号为ID的记录,假设机器总量在10亿以下且ID是小于10亿的整数,假设每份数据保存两个备份,这样就有两个机器存储了同样的数据. 问题是:1.假设在某个时间得到一个数据文件ID的列表,是否能快速地找出表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID. 2.如果有两台机器出现故障呢?(假设存储同一份数据的两台机器不会同时出现故障,即列表中缺少的是两个不等的ID) 给出了4种解法思路 解法一: 最传统的比较列表,需要遍历整个列表,记录每

向linux服务器上传下载文件方式收集

向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 命令格式: scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 举例: scp /home/work/source.

Linux服务器上监控网络带宽的18个常用命令

Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带宽.这样一来,用户很容易发现过度使用网络带宽的某个进程. 这些工具使用不同的机制来制作流量报告.nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而

Linux服务器上的tomcat中部署web项目

首先了解一下下面几个概念,讲得不太准确: 1.JVM JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行class和jar文件.你可以通过-classpath参数指定你需要加载的jar文件 2.JDK JDK就是JAVA的命令行开发环境,内置了JVM,特征就是javac命令,这个命令允许你将.java源文件批量或者单个编译成.class文件,从而可以通过JVM的java命令执行.在编译时你可以通过-clas

在阿里云Linux服务器上安装MySQL

申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务器. 操作系统:Red Hat Enterprise Linux Server 5.4 64位. CPU:1核 内存:512M 硬盘空间:20G 带宽:1Mbps. 今天在这台云服务器上安装了基本环境(JDK.Tomcat和MySQL).本文主要在阿里云Linux云服务器安装MySQL全过程,以及对安装时遇到的问题进行记录. 下载MySQL服务器和客户端 访问MySQL的官网,进入其下载页面(http://dev.m

Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios

Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 这些工具使用不同的机制来制作流量报告.nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息:而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载. 下面是按功能划分的命令名称. 监控总体带宽使用――nload.bmon.sl

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

在Linux服务器上配置phpMyAdmin--允许空密码

使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库 首先访问phpmyadmin官网首页,网址为:http://www.phpmyadmin.net/,进入之后有download按钮,先不要下载,因为下载下来是windows的zip包,点击导航栏的Download链接,进入下载界面,这里下载最新版的4.5.5.1,选择如