记一次给 XCRH 的杀毒经历
一封来自遥远西方的邮件
某天早上一起床,就收到 XCRH 的信息,说是主机提供商 RackNerd 给他发了一封奇怪的邮件。
我点开截图一看,这不是典型的 SSH Abuse 嘛。还好之前为了维护方便,挂了探针到他的机器上。点开一看,好家伙,CPU 占用 100%,看得我头皮发麻。
XCRH 的机器只用来搭博客,Hexo 的静态页面怎么说都不可能占用如此高的 CPU 负载。一个念头划过我的脑海:莫不是中了挖矿病毒?
邮件内容
Hello,
RackNerd has received an abuse complaint concerning your service racknerd-5dd6e4.
For more on our Terms of Service and Acceptable Use Policy, please visit:
https://www.racknerd.com/terms-of-service
We await your response to the below abuse complaint. An attempt to brute-force account passwords over SSH/FTP by a machine in your domain or network has been detected. Please take the necessary action(s) to stop this activity immediately.
Host and target IP addresses have been redacted for privacy.
Regards, RackNerd Abuse Department
排查原因
top 定位具体进程
- CPU 占用高达 90% 以上的是一个素未谋面的
kswapd进程,还是由 XCRH 的博客调试用户blog所启动的。
使用 ps aux | grep 进程名 获取详细信息
- 发现它在
/tmp目录下隐藏了数个本体文件:
使用 ps -ef | grep bash 获取命令历史信息
- 发现仅有
blog用户使用了此病毒,关键的root权限并未丢失。 - 情况大致由一个
tsm与一个go文件组成。
做好清理
清理 /tmp 目录
- 看了一圈发现似乎并没有什么重要文件存储在此目录下,清理了
/tmp里与感染相关的文件。 - 目标进程依然没有终止,
kill命令也没有作用,于是继续追查。
清理 crontab 与 /home/blog
crontab
- 切到受感染用户之后查看
crontab -e,发现它的crontab被写满了保活脚本,遂删除之。
/home/blog 目录下的隐藏文件
- 使用
ls -a发现了名为.bashrc5的奇怪目录,内含名为dota3.tar.gz的文件。由于这是建站目的的 VPS,不可能存在游戏压缩包,遂删除之。
清理 /home/blog/.ssh 目录
- 此类病毒渗透的一个特点是注入自己的 SSH 密钥方便远控。
- 该用户没有远程登录需求,故直接删除
.ssh目录。
清理 /home/blog/.configrc
- 同样是定时任务保活脚本,清理之。
检查清理情况
reboot之后 CPU 占用恢复正常。观察一段时间后无变化,暂时视为杀毒完成。
后续处理
- 后来给 RackNerd 回信,表示已经第一时间处理完毕。
- RackNerd 的限制总体而言较宽松,既没有直接停机,也没有因为 CPU 爆满开罚单。
- 之后 XCRH 将博客部署系统迁到
root用户,原blog用户被删除。root使用密钥验证,攻击者不能再经由密码偷渡。 fail2ban也是可行方案,但此前目睹过误封案例,因此没有采用。
参考资料
文中 RackNerd 促销信息属于 2023 年历史内容,不应视为当前价格或推荐。
Comments
Loading comments…