总结:
1、病毒程序每次生成的文件都是 10个随机的字母字符
2、删除/etc/init.d 下的病毒启动文件 不会触发病毒再生成
3、没有排查思路时,多看看系统日志
最基本的中毒现象:
网卡流量暴增、CPU持续超过100%,发现有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串进程。删除文件也会重复生成,非常痛苦。
事后利用病毒的关键词检索发现网上已经有人遇到过类似问题,网上发现源文件的方法:
A、查阅crond相关日志,发现实际执行的内容为/lib/libudev.so ,以此为关键字进行查询
B、strace -tt -p PID 跟踪病毒文件 发现 /lib/libudev.so 然后关键次查询找到 gcc.sh
我在排查中发现病毒源文件的过程:
病毒会开机自启动,开始检查开机自启动的入口
A、cron 定时计划
发现 gcc.sh 可疑但是不能确定,咨询研发人员,也不能确认。
找了2个多小时病毒源文件后还是找不到,
只能find 24 小时内被操作过的文件,过滤掉系统文件,大海捞针。
最后还是怀疑gcc.sh 尝试将此文件mv 到其他目录,重启服务器后居然会自动生成一个,所以确认是病毒文件。接下来就是顺藤摸瓜了。
B、rc.local
都是正常的业务启动命令
C、可疑的系统服务
发现可疑对象,通过脚本文件定位到 /usr/bin下的病毒文件,但是删除后会立即生成,确认这个只是病毒衍生文件。
排查过程中发现机器在频繁和一个固定IP通讯:
lsof -p PID 发现就是病毒程序发起的通讯
使用 hosts.deny
或者 iptables封禁此 IP
网络流量锐减
下面是处理细节:
网络流量暴增,使用 top 观察有至少一個 10 个随机字母組成的程序執行,佔用大量 CPU 使用率。刪除這些程序,马上产生新的。
kill掉这个进程或者 rm 掉 /usr/bin/下的病毒文件
会生成新的进程文件在 /usr/bin 下 同时 生成 服务文件在 init.d/下
檢查 /etc/crontab 每三分执行 gcc.sh
查看病毒脚本 gcc.sh,可以看到病毒本体是 /lib/libudev.so。
刪除上一行例行工作 gcc.sh,並設定 /etc/crontab 无法变动,否則馬上又会产生。
[root@deyu ~]# rm -f /etc/cron.hourly/gcc.sh ; chattr +i /etc/crontab
使用 top 查看病毒 mtyxkeaofa,id 16621,不要直接殺掉程序,否则会再产生,而是停止其运行。
[root@deyu ~]# kill -STOP 16621
刪除 /etc/init.d 內的服务文件。
[root@deyu ~]# find /etc -name '*mtyxkeaofa*' | xargs rm -f
刪除 /usr/bin 內的文件。
[root@deyu ~]# rm -f /usr/bin/mtyxkeaofa
查看 /usr/bin 最近变动的文件,如果是病毒删除掉。
[root@deyu ~]# ls -lt /usr/bin | head
現在殺掉病毒程序,就不会再产生。
[root@deyu ~]# pkill mtyxkeaofa
刪除病毒本体。
[root@deyu ~]# rm -f /lib/libudev.so