随机字母病毒
现象:
一个随机字母命名的进程,吃掉大量的cpu和网络带宽。如图:
Lsof可以看到病毒的IP 59.36.97.141 东莞的IP
杀死后,立刻新生一个随机字母的进程,继续作恶,如图:
原因可能有两个:有另外一个进程在守护着它,或者系统服务有相关设定。
1、寻找守护病毒的进程
Pstree可以看到这样的进程其实有两个,同样是10个随机字母的进程
一个表现异常设为A,一个隐藏在背后设为B。
2、看看系统服务设置:
看了下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
反思:
病毒是什么时候,怎样进来的?
病毒的一些特性,对服务器开发还是有启发意义的
新手上路,高手请指点
转发请留痕