kswapd0挖矿病毒的发现与清除

Written By BobAnkh, 2020-07-10(Fri), in Category Linux

Linux, Server, Ubuntu, Virus

摘要

对于近期由于安装docker时趁虚而入的伪装成kswapd0进程的挖矿病毒的发现与清除

写下这篇博客的原因是实验室的服务器在安装docker之后不幸感染上了挖矿病毒,便将发现与清除的方法记录于此,如有错漏,恳请指正

起因与状况

因为实验需要,近期在实验室的服务器上使用tke搭建k8s平台,在此过程中,k8s官方要求将防火墙关闭。

而完成搭建之后,发现有一个kswapd0程序占用了比较高的cpu使用率。

一开始以为或许是安装进程的原因,但后续卸载了installer并清除了tke残余内容,发现该进程仍然存在,于是推测该进程应当存在问题。

该进程可以直接kill掉,但是reboot之后又会重新出现,状况如下:

htop

探查根源

根据上面的进程信息,可以看到该进程执行的用户是vagrant,这就让人感到奇怪了,于是用命令netstat -antlp查看了应用连接:

netstat

发现存在两个连接是通向2个奇怪的ip地址的,其中之一就是kswapd0,还有一个是rsync(是病毒缓存文件):

检查这两个ip地址发现都是荷兰的ip,而且是同一个段的,查询发现也是知名的挖矿ip:

45.9.148.125 45.9.148.99

于是便查看这个程序的根源出自哪里,使用命令ls -l /proc/2971/exe探查:

发现它指向/home/vagrant/下的一个.configrc/a/kswapd0,进入.configrc/文件夹探查发现,整个文件夹应该都是有问题的

到临时目录/tmp中,使用命令ls -sa | grep vagrant探查,也可以看到与vagrant用户相关的奇怪的文件

此时,还需要检查出现问题用户的crontab,看是否被写入了定时计划,否则可能定时或者reboot之后又会启动病毒,使用命令crontab -l -u vagrant检查:

crontab

另外,对于该用户,还需要检查其.ssh目录下authorized_keys是否被配置了后门的ssh的key,本次发现该公钥如下,也是一个知名公钥了:

AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw==

病毒清除

首先,先清理出现问题用户的crontab,使用命令crontab -e -u vagrant后,将内容全部清除

接着,用kill -9 2971命令将kswapd0进程杀掉,同时,用命令kill -9 2339rsync进程也杀掉

随后删除/home/vagrant/目录下.configrc//tmp/目录下.X25-unix/dota3.tar.gz.X25-unix/.rsync/*

至此,清除工作就完成了,后续可以观察病毒是否会再生

另外,建议除特殊要求外,时刻将防火墙开启,并且,如有需要,可以自己编写脚本检查各用户是否存在奇怪的crontab定时计划

这里给出一个可行脚本:

cat /etc/passwd | awk -F":" '{print $1}' | while read -r line
do
        echo $line
        crontab -l -u $line
done

Other Articles

Previous Article: Typora 使用指南

Next Article: Salsify: 通过视频编解码器和传输协议之间更紧密的集成来实现低延迟网络视频