十字符病毒,杀不死的小强:一次云服务器沦陷实录
刚刚删除了/usr/bin/apgffcztwi文件,但是又自动生成了新的文件,/usr/bin/fhmlrqtqvz,并且还有一个文件/usr/bin/fgqnvqzzck已经被删除了,但是进程仍然存在,那个deleted就是文件的状态。并且新生成的文件,仍然是10个字符。 看来是低估这个病毒程序了,继续往下深究! 考虑到会自动产生病毒文件,感觉应该是linux下的crontab完成的工作,那么是不是病毒在crontab里面做了手脚,去看看就知道了。 切换到系统的/var/log/cron目录下(此目录记录了linux下所有用户的计划任务信息,以crontab -u -e方式写入的计划任务都会在此目录下生成文件),没看到任何文件,看来不是用户级别的crontab在作怪,那么再看看系统级别的crontab,就是/etc/crontab文件,贴图如下: 看最后一行,发现了一个定时任务,此任务每三分钟执行一次,任务对应的是个kill.sh脚本,找到脚本就好办了,看看这个脚本的内容: 脚本很简单,但是却是个重大发现,此脚本会自动重启网卡,然后执行一个cp操作,将/lib/libkill.so文件复制一个/lib/libkill.so.6文件,然后执行这个文件。这个文件是个二进制的文件,无法查看内容,猜想应该就是自动生成那个十个字符文件的病原体。 这里看到的病原体名称是libkill.so,它的名称不是固定的,常见的还有类似libudev.so、/lib/udev/udev等类似名称,但是作用应该都是一样的。 到这里为止,思路基本清楚了,大概理了一下思路,这个×××执行的原理应该是这样的:libkill.so是所有进程的病原体,通过kill.sh脚本每隔3分钟自动检测一次,如果发现病毒程序不存在了,就从病原体复制一份儿到/lib/libkill.so.6,病毒副本/lib/libkill.so.6执行后,就会生成一个随机命名(10个字符)的程序,放到/usr/bin/、/boot,/etc/init.d等目录下。 同时还修改了自启动配置chkconfig –add xxx,修改自启动项/etc/rc.local等,让×××程序开机自动运行。 这就是为什么无法杀掉病毒进程的原因。 至此,病毒运行的原理已经清晰了,下面的工作就是清除病毒程序。 四、清除病毒 清除病毒也是需要技巧的,如果直接删除kill.sh文件,你会发现,这个文件又自动生成了,这就是病毒程序在起作用。 那么怎么彻底清除呢,可通过下面方式实现: 通过top或者lsof命令可以获取那个自动启动的×××进程的pid为17161,然后执行如下操作:
注意,这里-STOP选项的含义,不是关闭这个进程,而是停止这个进程。进程停止执行后,进程仍然存在,这样就绕过了病毒进程就监测。紧接着,再来点硬货:
这样,先锁定crontab文件,不让任何进程写入数据。 下面就可以安静的删除之前的那些病毒文件了。 先删除这个kill.sh文件,让他不再定期执行:
接着删除/usr/bin下和/etc/init.d下的所有可疑文件: 比如上图中,第1、2、4、5、6都是可疑文件,随便看一个文件: 可以看到,这个文件又指向了/root/xd文件,而这个xd文件肯定也是病毒文件,需要删除。 最后,删除病原体文件:
最最后,别忘了,还要清理现场,关闭一直处于停止状态的那个pid为17161的病毒进程:
现在就可以直接执行kill -9的操作了,因为病原体已经被删除,定时任务文件也被锁定,定时执行的脚本也被删除,所以这个病毒再无回天之力了。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |