====== 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