今天来给大家分享下这两天遇到的一个问题, 服务器被挖矿了, 把我的排查记录分享下, 希望能帮到有需要的同学.
问题原因
多台服务器持续告警 CPU 过高, 服务器为 K8s 的应用节点, 正常情况下 CPU 使用率都挺低的, 通过排查是原因是被挖矿了, 下面为定位过程
定位过程
登陆问题主机 10.92.0.X, 通过执行 top 命令查看资源使用情况如下
CPU 使用率基本跑满 (用户态), 没有发现可疑的进程, 初步怀疑可能是进程在哪里隐藏了
执行命令 ps -aux --sort=-pcpu|head -10
嗯哼, 藏得够深的, 可还是被揪出来啦
这个 eta 可能是起的一个守护进程, 用于唤起上面圈起来的 python 进程,
这个脚本的用途是, 链接远程服务 "http://g.upxmr.com:999/version.txt", 并下载 写入到本地隐藏文件 / tmp/.x, 然后执行
注意: 这个执行文件会修改服务器的一些配置, 如 dns,hosts, 定时任务, 创建可执行文件
查看 dns
果然 dns 被修改了
查看定时任务
一般情况使用 crontab -l 是看不到的, 需要查看 / etc/crontab,
发现定时任务被加入了一条
0 /8 * * root /usr/lib/libiacpkmn.so.3
根据定时任务中的可疑文件所在路径 / usr/lib/libiacpkmn.so.3,
排查中发现 / etc/rc.d/init.d/,/usr/bin / 存在可执行文件 nfstruncate,
在 rc0.d-rc6.d 目录下都存在 S01nfstruncate 文件, 可能是自启动文件
现在排查的很明朗了, 接下来着手清理工作
1. 阻断挖矿程序链接外网服务 (很重要)
在 / etc/hosts 里增加一条
127.0.0.1?g.upxmr.com
阻断挖矿程序链接外网下载可执行文件, 不加了的话干掉服务又会起来 (除非把服务器网断了)
2. 干掉可疑程序 "ata" 进程
[root@dtdream-common-prod-nginx-03 ~]# kill -9 70497
再次查看发现 CPU 使用率降下来了, 挖矿程序也没启动了.
3. 删除定时任务及文件
根据上面定时任务截图, 需要彻底删除该脚本文件 /usr/lib/libiacpkmn.so.3 .
执行
[root@dtdream-common-prod-nginx-03 ~]#rm -rf /usr/lib/libiacpkmn.so.3
结果显示删除文件没权限, 很奇怪, 使用
[root@dtdream-common-prod-nginx-03 ~]#lsattr /usr/lib/libiacpkmn.so.3
发现文件被锁住了, 很好解决, 解锁再删就行了.
[root@dtdream-common-prod-nginx-03 ~]#chattr -i /usr/lib/libiacpkmn.so.3[root@dtdream-common-prod-nginx-03 ~]#rm -rf /usr/lib/libiacpkmn.so.3
删除 nfstruncate
[root@dtdream-common-prod-nginx-03 ~]#chattr -i /usr/bin/nfstruncate[root@dtdream-common-prod-nginx-03 ~]#rm -rf /usr/bin/nfstruncate[root@dtdream-common-prod-nginx-03 ~]#chattr -i /etc/init.d/nfstruncate[root@dtdream-common-prod-nginx-03 ~]#rm -rf /etc/init.d/nfstruncate
删除软连
[root@dtdream-common-prod-nginx-03?~]# find / -name "S01nfs*"/etc/rc.d/rc1.d/S01nfstruncate/etc/rc.d/rc2.d/S01nfstruncate/etc/rc.d/rc4.d/S01nfstruncate/etc/rc.d/rc3.d/S01nfstruncate/etc/rc.d/rc6.d/S01nfstruncate/etc/rc.d/rc5.d/S01nfstruncate/etc/rc.d/rc0.d/S01nfstruncate[root@dtdream-common-prod-nginx-03?~]#find / -name "S01nfs*"|xargs rm -f
操作完之后, 长时间观察 CPU 无再升高
结论: 问题是初步解决了, 但是根源还没找到, 因为我们的服务都是部署在内网的, 挖矿程序是从哪个入口侵入的还有待排查
这次分享希望对也中挖矿程序的同学,? 提供一些排查思路
往期文章一览
1,Kubernetes 集群搭建之系统初始化配置篇
2,Kubernetes 集群搭建之企业级环境中基于 Harbor 搭建自己的私有仓库
3,Kubernetes 集群搭建之 Etcd 集群配置篇
4,Kubernetes 集群搭建之 CNI-Flanneld 部署篇
5,Kubernetes 集群搭建之 Master 配置篇
6,Kubernetes 系列之 Coredns and Dashboard 介绍篇
END
来源: http://www.bubuko.com/infodetail-2987818.html