阿里云ECS centos6被挖矿病毒kdevtmpfsi侵入解决过程
症状
学校组织的服务器最近HTTP请求很慢,理论上这个服务器的访问量在这个阶段不应该高。
远程连接服务器之后,发现CPU使用率接近100%,而一个叫kdevtmpfsi进程占用了99%的cpu资源,网上搜索了一下这个进程,发现是个挖矿木马进程。
解决过程
尝试杀掉进程和删除文件
ps -ef | grep kdevtmpfsi
发现有两个进程在运行,kill这两个进程并且删掉源文件之后,不到一分钟,这个进程又恢复了,删除的文件也恢复了。
然后我尝试使用systemctl查看这个进程是否有守护进程。
[root@iZm5ej3k8*******]# systemctl statu 28477
-bash: systemctl: command not found
查阅资料得知这个服务器的系统是centos6 不支持systemctl命令。
只能换个方法了。
使用service代替systemctl
查到kdevtmpfsi的守护进程为kinsing
附对照表
任务 | 旧指令 | 新指令 |
---|---|---|
使某服务自动启动 | chkconfig --level 3 httpd on | systemctl enable httpd.service |
使某服务不自动启动 | chkconfig --level 3 httpd off | systemctl disable httpd.service |
检查服务状态 | service httpd status | systemctl status httpd.service (服务详细信息)systemctl is-active httpd.service (仅显示是否 Active) |
加入自定义服务 | chkconfig --add test | systemctl load test.service |
删除服务 | chkconfig --del xxx | 停掉应用,删除相应的配置文件 |
显示所有已启动的服务 | chkconfig --list | systemctl list-units --type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
kill守护进程
-
杀掉守护进程 kinsing ,然后删除文件。
-
杀掉kdevtmpfsi进程,然后删掉文件。
-
全局搜索这两个文件,并删除。
find / -name "*kdevtmpfsi*" find / -name "*kingsing*"
在我第一次操作过程中,由于只是关掉了进程并没有删除文件,所以又重新运行了。
5分钟过去了,没事。
9分钟过去了,没事。
10分钟后又来了!
草。。。
屏蔽IP地址,重置公钥和实例远程登录密码
- 发现这两个进程有ip地址一直保持连接,而且ip地址属于俄罗斯。
- 重置ssh公钥
- 重置实例远程登录密码
10分钟后又来了!!
还换了俩IP地址。
阿里云提交工单
工单交流了几个小时后,阿里云建议我备份数据,然后初始化磁盘。
我tm那么多数据,关键还不全是我的。。
查看是否有定时任务
# 查询
crontab -l
# 删除
crontab -e
没有发现可疑定时任务。
最终解决办法
大家不要学我 Σ( ° △ °|||)︴ ,我最后迫不得已选择了用魔法打败魔法。
我写了一个shell脚本,用来kill这两个进程,创建了一个定时任务,一分钟执行一次。
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
kill -9 $(ps -ef | grep kdevtmpfsi| grep -v grep | awk '{print $2}')
kill -9 $(ps -ef | grep kinsing| grep -v grep | awk '{print $2}')
rm -rf /tmp/kdevtmpfsi
rm -rf /var/tmp/kinsing
echo "----------------------------------------------------------------------------"
endDate=`date +"%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Successful"
echo "----------------------------------------------------------------------------"
后续
后来解决了。
因为服务器学校组织的,长时间下来积累了一些废弃的应用和开放了一下不必要的端口,后来根据阿里云安全中心的提示,发现是 redis 6379配置问题。
具体相关可以查看阿里云的文档。
空空如也!