近期发现很多centos虚机都中挖矿病毒,导致服务器的CPU都是跑满的状态,并且时不时有很多连到外网的流量,造成大量资源浪费。
因此在这里写一下中毒的现象以及如何杀掉病毒。
现象
CPU被一个名字为随机字符串的进程全占,如下:
可以看到,该pc被尝试暴力破解了很多次了:
[root@localhost ~]# find /var/log -name 'secure*' -type f | while read line;do awk '/Failed/{print $(NF-3)}' $line;done | awk '{a[$0]++}END{for (j in a) if(a[j] > 20) print j"="a[j]}' | sort -n -t'=' -k 2
172.16.101.115=95
172.16.101.163=95
172.16.101.10=97
172.16.101.250=201
192.168.122.1=357
172.16.101.15=402
172.16.101.12=410
172.16.101.22=412
172.16.101.1=7941
上面的IP基本上都是属于中招的PC,从网关过来的尤其多!
清除方法
- 通过进程号,查看进程状态
在上面,我们通过top看到哪个随机字符串的进程名跑满了所有CPU,我们通过systemctl命令查看它的进程信息
除了奇怪的进程名,该病毒还有一个固定进程名tracepath,不一定实时都是启动的状态,我们可以通过命令找出它的pid:
ps -ef | grep tracepath
若是没有回显,说明当前并没有启动,可以先不关心。(后面的步骤有删除它的执行程序)
- 根据进程ID,杀掉进程(如果上面一步看到多个进程,则都杀掉,先杀进程ID大的)
kill -9 21197
kill -9 32671
kill -9 2042
- 清理掉病毒文件及定时任务
rm -rf /usr/bin/tracepath
rm -rf /opt/systemd-private-*
rm -rf /var/spool/cron/root
rm -rf /root/.systemd-private-*
rm -rf /etc/cron.d/0systemd-*
rm -rf /etc/cron.d/systemd-*
rm -rf /var/tmp/systemd-private-*
rm -rf systemd-private-*
rm -rf /tmp/.X11-unix
rm -rf /tmp/.font-unix
rm -rf /tmp/.ICE-unix
rm -rf /tmp/.Test-unix
rm -rf /tmp/.XIM-unix
rm -rf /tmp/.X0-lock
rm -rf /tmp/tmp.*
rm -rf /tmp/kinsing
> ~/.ssh/known_hosts
- 在/etc/hosts 最后添加如下内容,让挖矿流量跑不出去
127.0.0.1 relay.tor2socks.in
127.0.0.1 checkip.amazonaws.com
127.0.0.1 cim8.f.dedikuoti.lt
127.0.0.1 ip.sb
127.0.0.1 hydra.plan9-ns1.com
127.0.0.1 dns.digitale-gesellschaft.ch
127.0.0.1 doh.li
127.0.0.1 doh.pub
127.0.0.1 fi.doh.dns.snopyta.org
127.0.0.1 resolver-eu.lelux.fi
127.0.0.1 dns.hostux.net
127.0.0.1 dns.twnic.tw
127.0.0.1 doh-fi.blahdns.com
- 修改root密码:建议改的稍微复杂一点。
passwd root
中毒的PC大部分是弱密码,如果不修改,有可能很快又被植入病毒。
PS:
如果过一段时间,又复发了,则再执行一遍清除过程。复发的原因有可能是第一次有些进程没有找全;还有可能是又被控制了。
相关资料
解出病毒的sh看,和下面这篇文章里说的一致,应该就是这个挖矿病毒了。
https://zhuanlan.zhihu.com/p/560403008