0%

记一次服务器被黑用于挖矿的处理记录

某日上班,登服务器后编译Android ROM,增量编译时间比平时长了 3~4 倍,htop 看一下

好奇怪,怎么前 36 个核是满的,过了半个小时看,还是这样。有点预感不妙。遂登录另外一个同配置用户只有两三个的服务器,也是前 36 个核被占满,并且看不到什么进程占用了CPU多半是中招了。
查了netstat,有两个奇怪的连接,但是不显示进程名和PID。通过网络搜索和供应商的数据得知,这两个IP是矿池的IP。确认是中挖矿病毒了。

看一下开机启动项

确认有一个奇怪启动项,遂以root权限编辑之,提示Read only,无法强行保存,以root权限移除 /usr/bin/52657500,奇了怪了,我这root权限是假的?
由于平时工作是做安卓的,这种状态我以为我的权限被动了,不是真正的 root 权限了。于是到清华软件源下了 ubuntu 22.04 desktop 镜像,做成启动盘直奔机房,从U盘启动服务器,尝试编辑 rc.local ,仍然是 read only,rm -f 也是提示操作不允许。遂翻了翻自己的脑袋,想起来以前看过一篇文章:CPU深夜狂飙,一帮大佬都傻眼了···

遂得知一个命令 unhide,输入 api install unhide , root 权限跑 unhide proc 一看,确实有不少隐藏进程(几十个)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Found HIDDEN PID: 27589
Cmdline: "usr/sbin/httpd"
Executable: "/usr/bin/perl"
Command: "usr/sbin/httpd"
$USER=<undefined>
$PWD=<undefined>

Found HIDDEN PID: 27787
Cmdline: "/1c03a5f9"
Executable: "/1c03a5f9 (deleted)"
Command: "1c03a5f9"
$USER=root
$PWD=/
......

咨询另外一个同事,再结合百度搜索“root 权限无法编辑文件”,得知2个命令 lsattrchattr 可以用于禁止文件修改。敲进去提示没有此命令,需要安装e2fsprogs,然后输入 apt install e2fsprogs 提示已安装,遂推得命令被删掉了,于是找另外一个正常运行的服务器拷了命令过来(当时脑袋宕机了,如果有网络的话,其实这里可以直接apt install --reinstall e2fsprogs的)。然后root权限输入

1
2
3
4
5
6
chattr -i /etc/rc.local
chattr -e /etc/rc.local
chattr -a /etc/rc.local
chattr -i /usr/bin/52657500
chattr -a /usr/bin/52657500
chattr -e /usr/bin/52657500

之后终于可以编辑 rc.local 了,删除启动项,重启。吧唧,还是占满 36 个核。看起来病毒还有别的启动方式。
看一下服务sudo systemctl list-unit-files,没看到可疑的东西,看一下 cron crontab -l,也没有计划任务,奇了怪了,这进程怎么启动的。到这里线索就断了,一直在网上看查找开机启动项和CPU挖矿的信息。看到这篇推文 实战|又一起挖矿木马排查 的时候留意到一个信息

这里用systemctl status $pid查看到了这个进程的服务信息,遂用同样的方式,用上面查到的隐藏进程,输进去,好家伙,终于出来了:

这里看到服务在 /lib/systemd/system/yayaya9fdf90d8 ,进程在 /usr/lib/x86_64-linux-gnu/yayaya8e658d04。删进程之前备份一下,奇怪的事情又来了。明明存在的文件,但是 ls 看不到它。

把服务和进程备份好,删掉重启。CPU终于安静下来了。并且重启前不显示的文件也能显示了。
以关键字yayaya 病毒搜到了几乎是中文互联网上唯一的记录:yayaya Miner挖矿木马分析

根据yayaya Miner挖矿木马分析和我们的处理记录,总结如下

  1. 使用 chattr 来让不可修改的文件变得可修改,并清理 rc.local 里面的奇怪启动项;
  2. sudo rmmod nonono(移除用于隐藏前缀的内核模块);
  3. 查看 /lib/systemd/system/ 里面以 yayaya 开头的 service;
  4. sudo systemctl stop yayayaxxxxx.service
  5. sudo systemctl disable yayayaxxxxx.service
  6. 清理 crontab 里面奇怪的定时任务;
  7. 删除 /etc/sysconfig/yayaya
    后续继续改进的地方:
  8. 修改 root 及有管理员权限的用户密码,并禁止设置弱密码(被感染的服务器都有大量的来自局域网的登录失败记录,与上面推文中的ssh爆破行为一致);
  9. 禁用 ssh 密码登录;
  10. 可以不连接外网的服务器断开外网连接(排查初期,是通过断开网络外网让病毒不再占用CPU的);
    本次排查病毒从 2023.07.26 下午开始,到 2023/07.28 早上确认到原因。