dbused把我的CPU占满了!linux服务器挖矿病毒的解决历程
现象描述
今天通过密钥以普通用户tung的身份登录远程Cent OS服务器时,连接出现非常严重的卡顿,进入后发现CPU被名为dbused的进程占满了!
reboot重启服务器之后,以root身份登录服务器,发现cpu是正常的。使用top命令查看,dbused并没有运行,但是时不时出现tung用户的bash进程和wget命令会运行。并没有登录tung用户,该用户的命令却时不时运行,这让我感到很奇怪。
此时登录tung用户后,dbused便立即执行并将整个CPU占满。看来dbused这个进程的启动跟用户tung的登录活动也是息息相关的。
解决历程
1)解决未登录用户却有该用户的bash和wget进程执行的问题
时不时出现tung用户使用bash命令和wget命令,怀疑存在定时任务,于是通过systemctl disable crond
命令,禁止开机自动启动crond,reboot
重启服务器,登录root用户,此时不再会有tung用户下的进程和命令出现。
crond是定时任务服务,有关命令补充如下:
systemctl start crond #启动服务
systemctl stop crond #关闭服务
systemctl restart crond #重启服务
systemctl reload crond #重新载入配置
systemctl status crond #查看crontab服务状态
systemctl enable crond #开启开机自动启动
systemctl disable crond #禁止开机自动启动
进入到定时任务的文件夹/var/spool/cron/
下,发现确实存在一个tung用户的定时任务,于是乎将其删除。
2)解决一登录特定用户就会启动dbused并占满CPU的问题
只要一登陆tung用户,就会自动执行dbused,并把cpu占满,使用kill -9 <病毒PID>
杀死之后就正常了,但下次再启动仍会执行。
这说明这一病毒的启动与用户的登录行为相关,查看/home/tung/.bash_profile
文件发现了下面这一行异常代码:
在我之前的尝试中,曾定位到该进程的文件位置/tmp/dbused
,但我却没有在/tmp/
里找到它,现在清楚了原因:这一行命令首先将/tmp/.pwn/bprofr
复制到/tmp/dbused
,然后执行并将其删除掉了。也就是说,源头其实在这个隐藏文件夹下。
于是我将/tmp/.pwn/bprofr
文件下载下来,并上传到 virustotal 上。嗯,是病毒软件实锤了。
将其删除并修改.bash_profile
文件后,再重新登录该用户后就没有异常了。
现在又重新开启定时任务服务systemctl enable crond
,reboot重启之后也没有什么异常出现了。
总结
- 出现一些进程不该启动时却时不时启动,应当怀疑可能存在异常的定时任务,检查
/var/spool/cron/
目录。 - 特定用户登录时就自动执行的病毒,可以检查一下该用户目录下的
.bash_profile
文件是否异常。 - 通过各种方法定位到病毒文件的位置后,将其删除。
疑惑
这已经是服务器第二次遭遇挖矿病毒了,第一次遭遇的是kdevtmpfsi 病毒,当时还很单纯,服务器采用密码登录,估计密码被暴力破解了。在那之后改用仅限密钥登录了,服务器安稳过了一个月。但不知道为什么仍然遭到了病毒的攻击,可能是一些开放端口存在漏洞吧。
清理该病毒的过程中查阅了很多资料,这篇文章给我提供了比较大的帮助: 阿里云服务器挖矿程序解决流程