帮助中心FAQ

这台机器主要是运行了一个tomcat WEB服务和oracle数据库,问题不应该出现在WEB服务和数据库上面,我检查了一下WEB日志,没有发现异常,查看数据库也都正常,也没有错误日志,查看系统日志,也没有看到异常,但是系统的登录日志被清除了,赶紧查看了一下目前运行的进程情况,看看有没有什么异常的进程,一查看,果然发现几个异常进程,不仔细看还真看不出来,这些进程都是不正常的。

这是个什么进程呢,每次ps -ef都不一样,一直在变动,进程号也一直在变动中,我想看看进程打开了什么文件,一时无从下手,想到这里,我突然意识到这应该都是一些子进程,由一个主进程进行管理,所以看这些子进程是没有用的,即便我杀掉这些子进程还会有新的生成,擒贼先擒王,我们去找一下主进程,我用top 实时查看进程使用资源的情况,看看是不是有异常的进程占用cpu内存等资源,发现了一个奇怪的进程,平时没有见过。这个应该是我们寻找的木马主进程。

 

 

我尝试杀掉这个进程,`killall -9 ueksinzina`,可是杀掉之后ps -ef查看还是有那些子进程,难道没有杀掉?再次top 查看,发现有出现了一个其他的主进程,看来杀是杀不掉的,要是那么容易杀掉就不是木马了。

 

我们看看他到底是什么,”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简单检查了一下,没有发现什么重大问题,但是这也并不表示没有什么问题,因为我们的检测命令也是依赖一些系统的命令,如果系统的命令被感染那是检测不出来的,最好是系统的命令备份一份检查,再不行就备份数据重装喽。