案例描述
早上接到IDC的电话,说我们的一个网段IP不停的向外发包,应该是被***了,具体哪个IP不知道,让我们检查一下。
按理分析及解决办法
首先我们要先确定是哪台机器的网卡在向外发包,还好我们这边有zabbix监控,我就一台一台的检查,发现有一台的流量跑满了,问题应该出现在这台机器上面。
我登录到机器里面,查看了一下网卡的流量,我的天啊,居然跑了这个多流量。
这台机器主要是运行了一个tomcat WEB服务和oracle数据库,问题不应该出现在WEB服务和数据库上面,我检查了一下WEB日志,没有发现什么异常,查看数据库也都正常,也没有什么错误日志,查看系统日志,也没有看到什么异常,但是系统的登录日志被清除了,
我赶紧查看了一下目前运行的进程情况,看看有没有什么异常的进程,一查看,果然发现几个异常进程,不仔细看还真看不出来,这些进程都是不正常的。
这是个什么进程呢,我每次ps -ef都不一样,一直在变动,进程号一一直在变动中,我想看看进程打开了什么文件都行,一时无从下手,想到这里,我突然意识到这应该都是一些子进程,由一个主进程进行管理,所以看这些子进程是没有用的,即便我杀掉他们还会有新的生成,擒贼先擒王,我们去找一下主进程,我用top d1实时查看进程使用资源的情况,看看是不是有异常的进程占用cpu内存等资源,发现了一个奇怪的进程,平时没有见过。这个应该是我们寻找的***主进程。
我尝试杀掉这个进程,killall -9 ueksinzina,可是杀掉之后ps -ef查看还是有那些子进程,难道没有杀掉?再次top d1查看,发现有出现了一个其他的主进程,看来杀是杀不掉的,要是那么容易杀掉就不是***了。
我们看看他到底是什么,”which obgqtvdunq”发现这个命令在/usr/bin下面,多次杀死之后又重新在/usr/bin目录下面生成,想到应该有什么程序在监听这个进程的状态也可能有什么定时任务,发现进程死掉在重新执行,我就按照目前的思路查看了一下/etc/crontab定时任务以及/etc/init.d启动脚本,均发现有问题。
可以看到里面有个定时任务gcc4.sh,这个不是我们设定的,查看一下内容更加奇怪了,这个应该是监听程序死掉后来启动的,我们这边把有关的配置全部删掉,并且删掉/lib/libudev4.so。
在/etc/init.d/目录下面也发现了这个文件。
里面的内容是开机启动的信息,这个我们也给删掉。
以上两个是一个在开机启动的时候启动***,一个是***程序死掉之后启动***,但是目前我们杀掉***的时候***并没有死掉,而是立刻更换名字切换成另一个程序文件运行,所以我们直接杀死是没有任何用处的,我们目的就是要阻止新的程序文件生成,首先我们取消程序的执行权限并把程序文件成成的目录/usr/bin目录锁定。
chmod 000 /usr/bin/obgqtvdunq
chattr +i /usr/bin
然后我们杀掉进程”killall -9 obgqtvdunq”,然后我们在查看/etc/init.d/目录,看到他又生成了新的进程,并且目录变化到了/bin目录下面,和上面一样,取消执行权限并把/bin目录锁定,不让他在这里生成,杀掉然后查看他又生成了新的文件,这次他没有在环境变量目录里面,在/tmp里面,我们把/tmp目录也锁定,然后结束掉进程。
到此为止,没有新的***进程生成,原理上说是结束掉了***程序,后面的工作就是要清楚这些目录产生的文件,经过我寻找,首先清除/etc/init.d目录下面产生的***启动脚本,然后清楚/etc/rc#.d/目录下面的连接文件。
后来我查看/etc目录下面文件的修改时间,发现ssh目录下面也有一个新生成的文件,不知道是不是有问题的。
清理差不多之后我们就要清理刚才生成的几个文件了,一个一个目录清楚,比如”chattr -i /tmp”,然后删除***文件,以此类推删除/bin、/usr/bin目录下面的***,到此***清理完毕。
快速清理***流程
假设***的名字是nshbsjdy,如果top看不到,可以在/etc/init.d目录下面查看
1、首先锁定三个目录,不能让新***文件产生
chmod 000 /usr/bin/nshbsjdy
chattr +i /usr/bin
chattr +i /bin
chattr +i /tmp
2、删除定时任务及文件以及开机启动文件
删除定时任务及文件
rm -f /etc/init.d/nshbsjdy
rm -f /etc/rc#.d/***连接文件
3、杀掉***进程
killall -9 nshbsjdy
4、清理***进程
chattr -i /usr/bin
rm -f /usr/bin/nshbsjdy
处理完成之后再一次检查一下以上各目录,尤其是/etc目录下面最新修改的文件。
5、如果是rootkit***,可以用下面的软件进行检查
软件chkrootkit:
软件RKHunter:
安装都非常简单,我使用RKHunter简单检查了一下,没有发现什么重大问题,但是这也并不表示没有什么问题,因为我们的检测命令也是依赖一些系统的命令,如果系统的命令被感染那是检测不出来的,最好是系统的命令备份一份检查,再不行就备份数据重装喽。