故障表现:
登陆服务器执行sar –n DEV,查得向外流量输出达到120Mbit/s多,cacti显示占满总出口流量
?
故障判断:
?
故障排查:
还有***病毒在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令。杀死该进程后,会再随机产生一个新的进程,删除这些***文件后,会再重新生成新的***文件。由此可以判断,***病毒会自动修复,多个进程之间会互相保护,一旦删除和被杀,立即重新启动和复制。
/boot中有随机的10位字母的进程执行文件,且有部分系统命令被替换
/bin?中有随机的10位字母的进程执行文件,且有部分系统命令被替换
/sbin?中有随机的10位字母的进程执行文件,且有部分系统命令被替换
/usr/bin?中有随机的10位字母的进程执行文件,且有部分系统命令被替换
/usr/sbin?中有随机的10位字母的进程执行文件,且有部分系统命令被替换
/u02/apache-tomcat-6.0.41/bin中有L26_1000的异常程序
/etc/init.d?中有随机的10位字母的进程执行文件
/etc/rc.d/rc[0-6]d中有随机的10位字母的进程执行文件
/etc/rc.local***已被写入启动项
/etc/crontab?***已被写入crontab中,每3分钟执行一次
/etc/cron.hourly***已被写入cron每小时执行的脚本中
gnome-terminal
ls -a
route -n
netstat -antop
ifconfig
sh
cd /etc
bash
who
cat resolv.conf
ps -ef
cat resolv.conf
2)? ps -AfH,显示为以上的命令,但是ppid(父id)为1,则为init,所以这个应该是跟某个服务相关的。
ps-AfH
root 177961? 0 11:54 00:00:00 route -n
root 180081? 0 11:55 00:00:00 netstat -antop
root 180111? 0 11:55 00:00:00 ifconfig
root 180141? 0 11:55 00:00:00 sh
root 180151? 0 11:55 00:00:00 cd /etc
root 180161? 0 11:55 00:00:00 bash
root 180281? 0 11:55 00:00:00 who
root 180311? 0 11:55 00:00:00 cat resolv.conf
root 180331? 0 11:55 00:00:00 ps -ef
?
?
用pstree可以看到真实的名字:
|-irqbalance--pid=/var/run/irqbalance.pid
|-jbguikdekd
|-jbguikdekd
|-jbguikdekd
|-jbguikdekd
|-mingetty/dev/tty2
|-mingetty/dev/tty3
|-mingetty/dev/tty4
|-mingetty/dev/tty5
|-mingetty/dev/tty6
?
?
3)凭经验检查crontab,经查找在/etc/cron.hourly/里面写入以下内容:
#cat /etc/cron.hourly/kill.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
fori in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up&done
cp/lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6
?
?
从这个地方可以看到病毒本体:/lib/libudev.so,这个文件看起来应该是一个库文件,但是用file查看,这个文件则为一个可执行文件,请注意下面的两个文件,一个为executable(可执行的),另一个则为正常的共享库(shared object):
#file libudev.so
libudev.so:ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked,for GNU/Linux 2.6.9, not stripped
?
?
正常的库文件应该为:
#file libutil-2.12.so
libutil-2.12.so:ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked(uses shared libs), for GNU/Linux 2.6.18, not stripped
?
?
把这个文件取消可执行权限,但是病毒故障依旧。
?
?
4)因为这个病毒不断自我启动,并且父进程号为1,所以应该和init有关,所以查看/etc/init.d,发现里面果然有启动项,删除之。在/etc/rc.d/rc3.d/里面,也有类似的好几个启动项,一并删除。
删除后,发现仍然不能杀死,杀死后马上重建一个新的,用lsof?查看:
#lsof -R? | grep "/usr/bin"
top? 9512?9478? root? txtREG? 253,0? 63856421158 /usr/bin/top
fhmlrqtqv17161 1? root?txt REG? 253,0625729 393335/usr/bin/fhmlrqtqvz
fgqnvqzzc17226 1? root?txt REG? 253,0625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17229 1? root?txt REG? 253,0625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17232 1? root?txt REG? 253,0625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17233 1? root?txt REG? 253,0625740 393427/usr/bin/fgqnvqzzck (deleted)
fgqnvqzzc17234 1? root?txt REG? 253,0625740 393427/usr/bin/fgqnvqzzck (deleted)
# lsof -R
fhmlrqtqv17161 1?root? cwd DIR?253,0 4096? 2 /
fhmlrqtqv17161 1? root?rtd DIR? 253,04096? 2 /
fhmlrqtqv17161 1? root?txt REG? 253,0625729 393335/usr/bin/fhmlrqtqvz
fhmlrqtqv17161 1? root?0u? CHR? 1,3?0t0 4023 /dev/null
fhmlrqtqv17161 1? root?1u? CHR? 1,3?0t0 4023 /dev/null
fhmlrqtqv17161 1? root?2u? CHR? 1,3?0t0 4023 /dev/null
fhmlrqtqv17161 1? root?3u IPv4? 50163?0t0? UDP *:57331
ynmsjtlpw17272 1? root?cwd DIR? 253,04096? 2 /
ynmsjtlpw17272 1? root?rtd DIR? 253,04096? 2 /
ynmsjtlpw17272 1?root? txt REG?253,0 625751 393426 /usr/bin/ynmsjtlpwp (deleted)
ynmsjtlpw17272 1? root?0u? CHR? 1,3?0t0 4023 /dev/null
ynmsjtlpw17272 1? root?1u? CHR? 1,3?0t0 4023 /dev/null
ynmsjtlpw17272 1? root?2u? CHR? 1,3?0t0 4023 /dev/null
ynmsjtlpw17275 1? root?cwd DIR? 253,04096? 2 /
ynmsjtlpw17275 1? root?rtd DIR? 253,04096? 2 /
?
5)lsof再次查看:
再次快速重复查看:# lsof -R?| grep "/usr/bin",发现主进程不变,总是产生几个辅进程,并且一直处于dedeted状态,这说明主进程会快速产生几个子进程,然后这些进程之间相互检测,一旦检测到病毒主体被删除或更改,就会再产生一个。
?
故障解决:
1、将被感染的文件路径列表中的***文件设置成000权限,即chmod 000,确保不再执行
2、删除/etc/rc.local,/etc/crontab,/etc/cron.hourly里面的***程序配置,保证不自动启动;
3、删除将被感染的文件路径列表中的***文件
4、杀掉所有***进程。
5、锁定将被感染的文件路径列表中的目录不可更改:如chattr +i /usr/bin这样保证新产生的病毒写不到里面去。
6、ps –ef再次检查,发现***进程后,重复以上步骤
7、当前已被我锁定的目录和文件如下:
----i--------/etc/crontab
----i--------/etc/rc.local
----i--------/etc/init.d
----i-------- /u02/apache-tomcat-6.0.41
----i-----I-- /u02/apache-tomcat-6.0.41/bin
----i--------/bin
----i--------/boot
----i-----I-- /usr/sbin
----i-----I--/usr//bin