特洛伊挖矿病毒应急响应报告
特洛伊挖矿病毒应急响应报告
| 项目 | 内容 |
|---|---|
| 事件名称 | 特洛伊挖矿病毒安全事件 |
| 操作系统 | Ubuntu 22.04 LTS |
| 事件类型 | 挖矿病毒(特洛伊/蠕虫式传播) |
| 发现方式 | 安全设备检出外联挖矿事件 + CPU使用率异常飙高告警 |
| 威胁等级 | 严重 |
| 感染途径 | 钓鱼网站(社会工程学攻击) |
| 影响范围 | 系统核心命令被感染,挖矿程序持续驻留 |
靶场账号信息:
-
用户名:
root -
密码:
P@sswOrd
二、排查过程
2.1 初步排查 —— 资源占用分析
登录系统后,首先使用 top 命令查看CPU资源占用情况。

异常现象: 执行 top 命令后回显为空。
排查思路:
-
alias被篡改
-
环境变量劫持
-
top程序被感染
排查结果:

通过 alias 命令发现 top 被修改了别名,执行 top 实际被重定向到 echo 空值。
处置措施:
unalias top

恢复别名后再次执行 top,发现 PID 363 的 kworkerds 进程CPU占用率高达 30%,明显异常。
2.2 定位挖矿程序
使用 lsof -p 363 查找进程关联文件:

发现:
-
进程文件路径:
/tmp/kworkerds -
进程名伪装为
kworkerds(仿Linux内核工作线程kworker)
查看文件内容(发现乱码),使用 strings 提取可读字符串:

关键发现:
/tmp/kworkerds.pid
{"id": 1, "method": "login", "params": {"login": "%s", "pass": "x", "agent": "%s"}}
结论: 确认 /tmp/kworkerds 为挖矿程序本体。
本题Flag1:
flag(/tmp/kworkerds)
2.3 挖矿文件外联IP与端口排查
方式一:netstat

执行 netstat -anlpt 和 netstat -anlpu,未发现异常外联IP。
方式二:ss

执行 ss -antup,结果同样为空。
方式三:lsof

执行 lsof -p 363 后发现:
kworkerd 365 root 4u IPv4 46485 0t0 TCP 192.168.32.181:47524 -> 104.21.6.99:10235 (SYN_SENT)
分析结论: 两次命令执行结果不一致,说明该挖矿程序存在 心跳机制(每隔一段时间外联一次),规避 netstat/ss 的实时检测。
外联IP与端口:
-
IP:
104.21.6.99 -
端口:
10235
本题Flag2:
flag(104.21.6.99:10235)
2.4 守护进程脚本排查
尝试停止进程并删除文件

执行 kill 停止进程后,进程以新PID重生;执行 rm 删除文件提示 "Operation not permitted"。
排查文件锁:

lsattr 显示文件无特殊属性(无 i 或 a 标志),排除文件锁。
使用busybox删除:

使用 busybox rm -rf /tmp/kworkerds 删除成功,但文件很快再次出现。
结论: 系统中存在 守护进程 或 计划任务 在不断重生挖矿程序。
2.5 计划任务排查

crontab -l 未发现可疑任务。

检查 /etc/cron* 目录:

发现可疑文件: /etc/cron.d/0guardian

文件内容:

查看 /usr/bin/.0guardian 脚本内容,发现其调用 stat 命令检查挖矿程序状态,但 stat 已被感染,无法正常显示文件信息(存在"白名单"机制)。
守护进程工作链:
计划任务(每分钟) → 调用 /usr/bin/.0guardian → 调用stat命令 → 检查挖矿程序/进程
↓
若存在 → 退出
↓
若不存在 → 释放挖矿程序并启动进程
本题Flag3:
flag(/usr/bin/.0guardian)
2.6 溯源分析 —— 钓鱼网站
根据守护进程脚本线索及安全分析思路,使用环境内浏览器访问:
http://chat.internal-dev.net:8081

获取关键线索:
"工具是在哪里下载的?官网吗?" "不是,当时比较急,就在Google搜的第一个结果,网站地址好像是 www.superlog-pro.com。"

访问 www.superlog-pro.com,页面伪装为正常软件下载站,实际为钓鱼网站。
下载文件后用 strings 查看,确认其为病毒母体文件。
本题Flag4:
flag(http://www.superlog-pro.com)
2.7 病毒文件分析 —— 被感染程序列表
使用 DIE(Detect It Easy)查看病毒文件:

结论: 程序未加壳,由 C语言 编写。
从 strings 输出中提取被感染的程序列表:

被感染程序清单:
/bin/ls
/bin/ps
/bin/cat
/bin/rm
/bin/ss
/usr/bin/stat
/usr/bin/top
/usr/bin/wget
/usr/bin/whoami
计算MD5(按病毒文件中顺序):
本题Flag5:
flag(dac48e98a53b81b0218e2156e364f7ba)
三、事件根因分析
3.1 攻击链条
1. 开发人员安全意识薄弱
↓
2. 通过Google搜索下载"官方工具"
↓
3. 访问钓鱼网站 www.superlog-pro.com
↓
4. 下载并运行带毒安装包
↓
5. 病毒释放挖矿程序 /tmp/kworkerds
↓
6. 创建守护脚本 /usr/bin/.0guardian
↓
7. 写入计划任务 /etc/cron.d/0guardian(每分钟执行)
↓
8. 感染系统核心命令(ls, ps, cat, rm, top, stat, wget, ss, whoami等)
↓
9. 挖矿程序不断重生 → CPU持续占用 → 安全设备告警
3.2 病毒技术特征
| 特征 | 技术手段 |
|---|---|
| 命令隐藏 | 篡改 alias,使 top 无回显 |
| 进程伪装 | 进程名伪装为 kworkerds(仿内核线程) |
| 持久化 | 计划任务 + 守护进程脚本双重保障 |
| 程序保护 | 感染系统命令(rm无法删除、stat被篡改) |
| 逃避检测 | 心跳机制(间歇性外联,规避netstat/ss) |
| 传播方式 | 特洛伊式感染(感染其他系统程序) |
四、处置措施
4.1 文件完整性恢复
系统处于断网状态,使用 /deb_final 目录下的 deb 包进行离线恢复:
cd /deb_final
dpkg -i --force-overwrite *.deb
恢复的软件包:
| 包名 | 说明 |
|---|---|
coreutils_9.4-3ubuntu6.1_amd64.deb |
核心工具(ls, cat, rm等) |
iproute2_6.1.0-1ubuntu6.2_amd64.deb |
网络工具(ss等) |
procps_2:4.0.4-4ubuntu3.2_amd64.deb |
进程工具(ps, top等) |
sudo_1.9.15p5-3ubuntu5.24.04.1_amd64.deb |
sudo命令 |
vim-tiny_2:9.1.0016-1ubuntu7.9_amd64.deb |
vim编辑器 |
wget_1.21.4-1ubuntu4.1_amd64.deb |
wget下载工具 |
恢复验证:
cat /var/flag/1
# 输出: flag{e510c5fca680b1b4bd5c9d8db3f4bdc}
本题Flag6:
flag{e510c5fca680b1b4bd5c9d8db3f4bdc}
4.2 清除恶意文件与任务
1)删除挖矿程序
busybox rm -rf /tmp/kworkerds
2)删除守护进程脚本
rm -f /usr/bin/.0guardian
3)删除计划任务
rm -f /etc/cron.d/0guardian
4)清除挖矿进程
kill -9 <PID>


4.3 最终验证
等待片刻后查看最终flag:
cat /var/flag/2
本题Flag7:
flag(081ce3688c6cd6e2946125081381087c)
五、结论与建议
5.1 事件总结
本次事件为典型的特洛伊挖矿病毒攻击案例。攻击者通过钓鱼网站诱导运维人员下载并执行带毒程序,病毒通过以下机制实现持久化驻留:
-
命令别名劫持:隐藏自身进程
-
系统命令感染:阻止删除和排查
-
双重守护机制:计划任务 + 守护进程脚本
-
心跳外联机制:规避网络连接检测
5.2 安全建议
| 序号 | 建议 | 优先级 |
|---|---|---|
| 1 | 加强安全意识培训,禁止从非官方渠道下载软件 | 高 |
| 2 | 部署终端安全软件(EDR),实时监测异常进程 | 高 |
| 3 | 定期排查计划任务(/etc/cron*、crontab -l) |
中 |
| 4 | 定期检查系统命令完整性(使用 debsums 或 rpm -Va) |
中 |
| 5 | 使用 lsattr/chattr 监控关键文件属性变更 |
中 |
| 6 | 限制 /tmp 目录执行权限(noexec 挂载选项) |
中 |
| 7 | 建立安全基线,定期审计 alias 和 PATH 环境变量 |
低 |
5.3 处置核心要点
重启无法解决问题。由于常用命令被感染加上计划任务的存在,即使重启,计划任务仍会调用被感染的
stat文件使挖矿程序重生。正确的处置流程是:
使用
busybox删除挖矿程序删除计划任务和守护进程脚本
离线恢复被感染的系统命令
清除残留进程
重启不是目的,根除才是。
附录:Flag汇总
| 题号 | 内容 | Flag |
|---|---|---|
| 01 | 挖矿文件绝对路径 | flag(/tmp/kworkerds) |
| 02 | 外联IP与端口 | flag(104.21.6.99:10235) |
| 03 | 守护进程脚本绝对路径 | flag(/usr/bin/.0guardian) |
| 04 | 钓鱼网站地址 | flag(http://www.superlog-pro.com) |
| 05 | 感染程序MD5 | flag(dac48e98a53b81b0218e2156e364f7ba) |
| 06 | 修复完成Flag | flag(e510c5fca680b1b4bd5c9d8db3f4bdc) |
| 07 | 最终清理Flag | flag(081ce3688c6cd6e2946125081381087c) |
报告生成时间:2026年7月10日
项目经验
项目名称:Linux挖矿病毒应急响应处置
在Ubuntu 22.04服务器上处置特洛伊挖矿病毒事件。解除top命令别名劫持定位异常进程;通过lsof捕获心跳外联IP;追踪持久化源头,清除恶意计划任务及守护脚本;离线恢复ls、top、rm等9个被感染系统命令,彻底清除病毒并输出应急报告。

浙公网安备 33010602011771号