最近用 VSCode 远程 ssh 服务器时总是莫名其妙掉线,最开始还以为是校园网的问题,一直没太在意。
直到今天晚上又莫名其妙一直掉线,而且换了好几个网都连不上,后来在阿里云的控制台上看到 CPU 负载一直维持在 100%,才想到可能是木马程序在挖矿。
这个服务器从大三用到现在被挖矿程序感染了好几次,最开始因为只部署了一个个人博客,每次出问题我都是直接暴力重置云服务器,不过最近跑了一些别的项目,重置的话所有配置还要从头再来,所以记录一下处理过程留着下次再用。
大致处理过程如下:
终端执行 top
命令,可以看到进程号为 938 的 kswapd0 进程吃掉了几乎所有 CPU,很明显罪魁祸首就是它。
top - 20:28:28 up 17 min, 0 users, load average: 1.40, 1.32, 0.88
Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie
%Cpu(s):100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1983.0 total, 213.6 free, 1078.7 used, 690.8 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 745.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
938 root 20 0 307692 7040 4 S 93.3 0.3 15:05.99 kswapd0
1 root 20 0 167636 11104 8444 S 0.0 0.5 0:00.83 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
...
为了避免木马重启,我们先删除源文件清理定时任务再 kill
它。
执行命令 ls -li /proc/938
,可以看到此进程的可执行文件软连接到了 /root/.configrc5/a/kswapd0 上,我们直接 rm -rf
删除掉。
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# ls -li /proc/938
total 0
...
22673 lrwxrwxrwx 1 root root 0 Mar 13 20:11 exe -> /root/.configrc5/a/kswapd0
...
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# rm -rf /root/.configrc5/a/kswapd0
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus#
然后执行 crontab -l
命令查看定时任务,可以看到该木马有五个相关的定时任务,我们通过 crontab -e
将它们全部删除,最后再把木马进程 kill
掉。
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# crontab -l
5 6 * * 0 /root/.configrc5/a/upd>/dev/null 2>&1
@reboot /root/.configrc5/a/upd>/dev/null 2>&1
5 8 * * 0 /root/.configrc5/b/sync>/dev/null 2>&1
@reboot /root/.configrc5/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X2o-s-unix/.rsync/c/aptitude>/dev/null 2>&1
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# crontab -e
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# crontab -l
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus# kill -9 -938
root@iZwz9fsfltolu74amg1v0rZ:/home/atreus#