记录一次门罗币挖矿木马的追踪
最近在整理服务器的时候,发现有一台服务器的状态不对, cpu占用一直是100%。 可是这个服务器没有跑什么程序,只有一个网站而已。于是登录服务器开始寻找原因。
查找问题
一般出现服务器cpu异常,第一个想到的就是top
命令了, 直接输入top
,却发现 没有程序有异常,cpu占用是0. 开始以为是阿里云的服务出错了,转念一想,阿里这种大厂不应该出这种低级错误吧。
继续输入 vmstat 2
命令进行查看,确实cpu一直都是满载的。
如果是这样,那么说明应该是top
被篡改了, 继续打开top
发现 cpu一直都是0,完全不动 =。= 更加肯定了我的想法。
单独查看进程却没发现 可疑的进程。于是开始谷歌, 发现有人docker有中过挖矿木马.
输入docker ps -a
和docker image ls
果然发现了两个奇怪的镜像和容器
1 | tanchao2014/mytest |
tanchao2014/mytest
确实是一个挖矿的镜像,然而他并没有在运行, 看来这个服务器已经被入侵过几次了, 挖矿程序都更新换代了 =。=
busybox
是一个Linux工具包,里面集成了许多工具和命令, 看来那个人就是用这个来对服务器做了点小动作。
先把挖矿镜像删除吧
1 | docker rmi tanchao2014/mytest |
然后删除 busybox
, 执行
1 | docker rm -fv (容器id) |
提示
1 | Error response from daemon: driver "overlay" failed to remove root filesystem for 97213ce6fe42a93eb789a7d59e33eb815772899741d84ee2ee1aac20e5b0428f: remove /var/lib/docker/overlay/97213ce6fe42a93eb789a7d59e33eb815772899741d84ee2ee1aac20e5b0428f/merged: device or resource busy |
看来是资源被占用了,那么我们需要查找是谁占用了资源,就把谁kill
掉就好了。
1 | grep 97213ce6fe42a93eb789a7d59e33eb815772899741d84ee2ee1aac20e5b0428f /proc/*/mountinfo |
找到占用资源的pid
,然后直接 kill pid
.
再次输入
1 | docker rm -fv (容器id) |
删除成功
删除容器的木马之后,发现一切又回到原点了。
一代木马被删除了,二代还在继续奔跑。
直到在谷歌中发现了这篇文章: Linux 遭入侵,挖矿进程被隐藏案例分析
在 Linux 操作系统的动态链接库加载过程中,动态链接器会读取 LD_PRELOAD 环境变量的值和默认配置文件 /etc/ld.so.preload 的文件内容,并将读取到的动态链接库进行预加载,即使程序不依赖这些动态链接库,LD_PRELOAD 环境变量和 /etc/ld.so.preload 配置文件中指定的动态链接库依然会被装载,它们的优先级比 LD_LIBRARY_PATH 环境变量所定义的链接库查找路径的文件优先级要高,所以能够提前于用户调用的动态库载入。
——段落引自《警惕利用 Linux 预加载型恶意动态链接库的后门》
立刻动手去看。
解决问题
首先进入到/etc/ld.so.preload
中查看,果然,有一个动态链库安静的躺在里面。
/usr/lib/libc.so.8
先把它给干掉:
1 | rm /usr/lib/libc.so.8 |
然后删除 ld.so.preload
文件
删除的时候提示了权限不足, 是因为 该文件被增加了 i a属性。
输入
1 | lsattr ld.so.preload |
可以看到 文件属性中包含 i a属性。
1 | a 即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性 |
使用 chattr
命令移除即可。
1 | chattr -ia ld.so.preload |
那么实际的木马进程到底怎么查看了, 我想到了入侵人使用的 busybox
. 下载安装下来 使用一下看看。
1 | wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox |
很明显的看到了 systemd-host
这个进程。
1 | kill 7907 |
成功找到。 并且还找到他使用的链库文件夹,在 /usr/lib/systemd/lib
文件夹里面
下载删除, 慢慢研究。
日志分析
矿池地址:
1 | 139.99.123.196:443 |
钱包地址:
1 | 43U3d1PBg4Gi2BaeMx7nH2dQsyZhAdMRATkJmbvr3kFuEMvU93f4H5geqjnru7SjLA3q81xCnUWr9PdFJRKDB5131fbC8pE |
进入门罗币 查询该钱包, 发现目前有200多个机器正在崩跑
参考
记录一次门罗币挖矿木马的追踪