前言
互联网存在很多的漏洞,如果我们使用不当,就会别被别人利用或者是盗取信息。之前在阿里云买的服务器,自己配置了nginx,mysql,redis等服务。由于在某些时候,本地程序开发中需要使用这些服务,便开放了相关的接口包括redis 的6379端口。通过查阅资料,病毒经常利用redis的6379端口被注入。
中毒具体描述
某一天,我写完本地程序,准备部署到云服务器,然而我的xshell始终是连接不上服务器,或者是连接上反应非常慢,我怀疑阿里云对我的服务器动了什么了(实在是对不住,毕竟我也不知道还有这种事情),然后通过阿里云控制台,发现出现了CPU占用非常高,基本上就100%了,并且内存的占用也是非常高。通过登录服务器,具体查看,然后使用命令查看,确实正如控制台的监控系统所展示的那样。
命令以及过程
查看cpu占用
top
查看异常进程 kdevtmpfsi
ps -ef | grep kdevtmpfsi
处理异常定时任务
# 查看定时任务,找出异常任务
crontab -l
# 删除一次任务
crontab -e
查看和其相关联的进程
systemctl status pid
pid 为kdevtmpfsi的进程号
杀掉进程(包括其守护进程,由上一步可以看出)
先杀守护进程,后杀挖矿进程
kill -9 pid
删除文件
删除守护进程文件
# 查找守护进程相关文件
find / -name kins*
# 删除文件
rm -rf path
删除挖矿程序文件
# 查找文件
find / -name kdevtmpfsi*
# 删除
rm -rf path
由于是之前就遗留的定时任务下载的文件,所以这次没有修改ssh的密钥
这个是由于redis的漏洞造成的,黑客通过连接redis,然后向系统中注入程序,使用redis时,尽量选择本地登录,远程服务器尽量不开放redis端口
结语
其实这个在我的服务器上出现过多次,之后的几次并不是因为我的6379端口开启,而是第一次处理的时候并没删除病毒在我服务器中植入的定时任务。如果删除挖矿程序之后,没用删除定时任务,有可能病毒哪一天就重来了。期间我又很长一段时间没有出现高占用的情况,是由于我的wget和curl命令出现了问题,无法下载文件,所以没有病毒。当我修复了这两个命令没多久,这个
挖矿程序又重新出现在了我的服务器之中,所以一定要清理干净。