服务器遭遇xmrig挖矿病毒攻击解决
环境:centos7
现象:
16个cpu利用率全部占满使用top查看时却没有一个进程占用过高的cpu

解决:
1.病毒概述 该病毒会通过编译/usr/local/lib/libc2.28.so并添加到 /etc/ld.so.preload文件中来隐藏自身的进程
2.查看目录文件执行操作/etc/ld.so.preload
1 2 3 4
| # 查看文件可以看到很多iso的文件 cat /etc/ld.so.preload # 使用lsattr查看可以看到文件被设置成了禁止对文件执行任何操作 lsattr /etc/ld.so.preload
|

3.去除文件i权限以及清空/etc/ld.so.preload文件 重装chattr参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 此处若chattr命令也被黑了则需要我们重装以使用chattr命令 # 执行下载命令(可能会显示e2fsprogs已经被安装了,但是依旧无法使用chattr命令) yum install e2fsprogs -y # 如果还是无法使用,那我们就使用上一步查询到的具体的e2fsprogs包名就可以安装成功! yum install e2fsprogs-1.42.9-19.el7.x86_64 -y
# 卸载重装 yum remove e2fsprogs-1.42.9-19.el7.x86_64 -y yum install e2fsprogs -y
# 去除文件i权限 chattr -i /etc/ld.so.preload # 清空/etc/ld.so.preload文件 > /etc/ld.so.preload
|

此时命令正常使用 此时病毒的进程便显示出来了
4. kill掉挖矿进程并删除相关挖矿文件

此时问题解决系统恢复正常

扩展:
病毒通过:/etc/ld.so.preload 文件隐藏进程,并通过 chattr设置不可修改,再伪装成 ntpdate 等其他自启动** **根本原因是部署的程序有漏洞
- 修漏洞
- 限制端口
- 进程不要用 root 运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| # 列出所有用户的 crontab cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {} # 病毒除了在 crontab 中写入定时任务,也可能会在这几个目录写入定时任务 # 列出正在运行,但是源文件被删除的进程 # 病毒一般运行后,都会删除自身源文件,下面两个命令都可以列出源文件被删除的进程 find /proc/*/exe -ls 2>/dev/null | grep "(deleted)" find /proc -name exe ! -path "*/task/*" -ls 2>/dev/null | grep "(deleted)" # 查看被删除的文件 find /proc/*/fd -ls | grep "(deleted)" # 如果病毒文件被删除,可以通过 cp 命令得到病毒源文件,再上传到一些在线杀毒引擎网站,知晓病毒名称后,google对症下药 cp /proc/<pid>/exe /tmp/test # 在线杀毒引擎: https://www.virustotal.com/ https://www.virscan.org/ # 自启动目录检查 # 有些病毒会伪装成正常的程序自启动,需要排查下这些目录是否有不正常的自启动程序 # systemd 自启动目录 /user/lib/systemd/system/ /etc/lib/systemd/user/ /etc/systemd/system/
# centos 启动目录 /etc/init.d /etc/rc.d/init.d /etc/rc.d/rc.local /etc/rc.local /etc/rc3.d/
|
病毒通过在 /etc/ld.so.preload 文件(该文件一般内容为空)中加载动态库文件来在 top 结果中隐藏自身进程,表现为 top命令 cpu 使用率很高,但是没有明显 cpu占用高的进程
安全加固
- 修复相关漏洞
- 尽量不对外暴露端口,暴露的端口尽量做白名单限制
ssh,iptables安全限制
- 有漏洞的进程尽量使用普通用户(无 sudo 权限)运行
/tmp 与 /var/tmp 目录加固,禁止该目录下的文件运行