现象:服务器
一个随机字母命名的进程,吃掉大量的cpu和网络带宽。如图:网络
Lsof能够看到病毒的IP 59.36.97.141 东莞的IPide
杀死后,马上新生一个随机字母的进程,继续做恶,如图:url
缘由可能有两个:有另一个进程在守护着它,或者系统服务有相关设定。spa
1、寻找守护病毒的进程3d
Pstree能够看到这样的进程其实有两个,一样是10个随机字母的进程blog
一个表现异常设为A,一个隐藏在背后设为B。进程
2、看看系统服务设置:crontab
看了下crontab, 发现有个3分钟就执行一个的脚本,结果顺藤摸瓜,发现一个假装成库的程序,file它,发现它真实个可执行文件,ps了下,发现没有这个名字的进程,估计是改了名字,隐藏起来,它跟B有什么关系?而后顺手就把那个库文件libudev.so删掉,TMD,竟然发现跟A同样,当即重生了,这里想会不会它们是相互守护的。试试同时杀掉它们,发现仍是不行。服务器开发
再看看init.d 结果发现了/usr/bin/A就是A的本地,以前pwdx是查不出A的路径的,估计是修改/proc/pid里面的信息。 rcX.d里面的也有指向init.d的连接文件,/etc/rc.d/rc<0-6>.d、/etc/rc<0-6>.d都有。
看了上面的信息,获得解决办法:
Kill.sh:
s90="S90${1}"
k90="K90${1}"
rm -f /etc/rc0.d/${k90} /etc/rc4.d/${s90} /etc/rc5.d/${s90}/etc/rc6.d/${k90} /etc/rc1.d/${s90} /etc/rc2.d/${s90} /etc/rc3.d/${s90}
rm -f /etc/rc.d/rc0.d/${k90} /etc/rc.d/rc4.d/${s90} /etc/rc.d/rc5.d/${s90}/etc/rc.d/rc6.d/${k90} /etc/rc.d/rc1.d/${s90} /etc/rc.d/rc2.d/${s90}/etc/rc.d/rc3.d/${s90}
#去掉crontab里的3分钟执行一次的那项
rm -f /etc/cron.hourly/gcc.sh
#阻止再新生病毒程序
chmod 000 /usr/bin/${1} && chattr+i /usr/bin
chmod 000 /bin/${1} && chattr +i/bin
chmod 000 /sbin/${1} && chattr +i/sbin
chmod 000 /usr/bin/${1} && chattr+i /usr/bin
chmod 000 /usr/sbin/${1} && chattr+i /usr/sbin
chmod 000 /usr/local/bin/${1} &&chattr +i /usr/local/bin
chmod 000 /usr/local/sbin/${1} &&chattr +i /usr/local/sbin
chmod 000 /usr/X11R6/bin/${1} &&chattr +i /usr/X11R6/bin
chmod 000 /tmp/${1} && chattr +i/tmp
#杀死病毒
kill -9 ${2}
rm -f /lib/libudev.so*
杀掉后,再执行recovery.sh
chattr -i /usr/bin
chattr -i /bin
chattr -i /sbin
chattr -i /usr/bin
chattr -i /usr/sbin
chattr -i /usr/local/bin
chattr -i /usr/local/sbin
chattr -i /usr/X11R6/bin
chattr -i /tmp
反思:
病毒是何时,怎样进来的?
病毒的一些特性,对服务器开发仍是有启发意义的
新手上路,高手请指点
转发请留痕