这是本文档旧的修订版!


linux-挖矿软件排查步骤

最近老是中一些挖矿软件,会主动杀死 使用gpu的进程进行挖矿,而且具备一些对抗手段,包括:

  • 替换 lsof,netstat,ss等命令隐蔽自己的存在
  • 设置自己的/proc/xxx/的目录内容,欺骗排查人
  • 程序运行起来之后,马上delete自己,导致找不到实体病毒文件

下面给出一些手段:

恢复系统自带命令

一般 lsof ss netstat 命令都是 几十K,几百K的; 如果发现这几个命令大小接近,而且都是几M的,而且时间也是最近的,则非常可疑。

而且通过 ss netstat查找端口的时候,发现就是找不到挖矿端口,则怀疑被人替换了。

# 提前执行一次,很可能病毒设置了不准写入,先去掉保护
chattr -i /usr/bin/lsof   /usr/bin/ss   /usr/bin/netstat
# debian,ubuntu如此重装
apt install --reinstall -y lsof iproute2 net-tools
# centos 系列如此重装
yum reinstall -y lsof iproute net-tools

如果对抗非常激烈, 马上又被感染,还是使用 busybox好了, 使用busybox 进行排查;

使用审计功能,找到元凶

安装审计功能:

# 根据系统不同,自行选择
sudo apt install auditd
sudo yum install audit

我们选择一些内容监控 【使用完之后,记得关闭所有规则】

# 监控udp请求,主要是看 53端口的DNS请求; 后续可以通过 dns_udp 名称过滤
auditctl -a always,exit -F arch=b64 -S sendto -S sendmsg -k dns_udp

# 监控网络的连接流量,后续可以用 network_trace 过滤
auditctl -a always,exit -F arch=b64 -S connect -k network_trace

# 取消所有审计规则,用完都取消掉
auditctl -D

# 列出所有的审计规则
auditctl -l

# 搜索特定的审计规则内容
ausearch -k network_trace | grep "xxx"

# 搜索特定的ip地址的信息
ausearch -i --host 185.92.182.228

如下的内容,就是一段 挖矿软件的审计信息

/dev/shm/netools (deleted) 一个不存在的文件,进程号 4087120 , 尝试进行挖矿通信; 如果我们去 ls /proc/4087120 不要被骗了, /proc目录内容被改了,直接 kill -9 4087120

type=SYSCALL msg=audit(01/26/26 15:09:29.931:51660383) : arch=x86_64 syscall=connect success=no exit=EINPROGRESS(Operation now in progress) a0=0x15 a1=0x7fe11a13cb80 a2=0x10 a3=0x0 items=0 ppid=1 pid=4087120 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=95231 comm=netools exe=/dev/shm/netools (deleted) key=network_trace

评论

请输入您的评论. 可以使用维基语法:
 
linux/linux问题排查/linux-挖矿软件排查步骤.1769677876.txt.gz · 最后更改: 2026/01/29 09:11