服务器遭遇xmrig挖矿病毒攻击解决

环境:centos7

现象:

16cpu利用率全部占满使用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 等其他自启动** **根本原因是部署的程序有漏洞

  1. 修漏洞
  2. 限制端口
  3. 进程不要用 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占用高的进程

安全加固

  1. 修复相关漏洞
  2. 尽量不对外暴露端口,暴露的端口尽量做白名单限制
  3. ssh,iptables安全限制
  4. 有漏洞的进程尽量使用普通用户(无 sudo 权限)运行
  5. /tmp/var/tmp 目录加固,禁止该目录下的文件运行