特洛伊挖矿病毒应急响应报告

特洛伊挖矿病毒应急响应报告

一、事件概述

项目内容
事件名称 特洛伊挖矿病毒安全事件
操作系统 Ubuntu 22.04 LTS
事件类型 挖矿病毒(特洛伊/蠕虫式传播)
发现方式 安全设备检出外联挖矿事件 + CPU使用率异常飙高告警
威胁等级 严重
感染途径 钓鱼网站(社会工程学攻击)
影响范围 系统核心命令被感染,挖矿程序持续驻留

靶场账号信息:

  • 用户名:root

  • 密码:P@sswOrd

二、排查过程

2.1 初步排查 —— 资源占用分析

登录系统后,首先使用 top 命令查看CPU资源占用情况。

top命令执行异常

异常现象: 执行 top 命令后回显为空。

排查思路:

  1. alias被篡改

  2. 环境变量劫持

  3. top程序被感染

排查结果:

alias排查结果

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

处置措施:

 unalias top

恢复top后查看进程

恢复别名后再次执行 top,发现 PID 363kworkerds 进程CPU占用率高达 30%,明显异常。

2.2 定位挖矿程序

使用 lsof -p 363 查找进程关联文件:

lsof定位进程链

发现:

  • 进程文件路径:/tmp/kworkerds

  • 进程名伪装为 kworkerds(仿Linux内核工作线程 kworker

查看文件内容(发现乱码),使用 strings 提取可读字符串:

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排查结果

执行 netstat -anlptnetstat -anlpu未发现异常外联IP

方式二:ss

ss排查结果

执行 ss -antup,结果同样为空。

方式三:lsof

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进程和删除文件失败

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

排查文件锁:

lsattr查看文件属性

lsattr 显示文件无特殊属性(无 ia 标志),排除文件锁。

使用busybox删除:

busybox删除挖矿程序

使用 busybox rm -rf /tmp/kworkerds 删除成功,但文件很快再次出现。

结论: 系统中存在 守护进程计划任务 在不断重生挖矿程序。

2.5 计划任务排查

计划任务排查1

crontab -l 未发现可疑任务。

计划任务排查2

检查 /etc/cron* 目录:

定时任务发现

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

查看守护脚本内容

文件内容:

 #!/bin/bash
 */1 * * * * root /usr/bin/.0guardian

stat命令被感染

查看 /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)查看病毒文件:

DIE分析病毒文件

结论: 程序未加壳,由 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>

最终清理1

最终清理2

4.3 最终验证

等待片刻后查看最终flag:

 cat /var/flag/2

本题Flag7:flag(081ce3688c6cd6e2946125081381087c)

五、结论与建议

5.1 事件总结

本次事件为典型的特洛伊挖矿病毒攻击案例。攻击者通过钓鱼网站诱导运维人员下载并执行带毒程序,病毒通过以下机制实现持久化驻留:

  1. 命令别名劫持:隐藏自身进程

  2. 系统命令感染:阻止删除和排查

  3. 双重守护机制:计划任务 + 守护进程脚本

  4. 心跳外联机制:规避网络连接检测

5.2 安全建议

序号建议优先级
1 加强安全意识培训,禁止从非官方渠道下载软件
2 部署终端安全软件(EDR),实时监测异常进程
3 定期排查计划任务(/etc/cron*crontab -l
4 定期检查系统命令完整性(使用 debsumsrpm -Va
5 使用 lsattr/chattr 监控关键文件属性变更
6 限制 /tmp 目录执行权限(noexec 挂载选项)
7 建立安全基线,定期审计 aliasPATH 环境变量

5.3 处置核心要点

重启无法解决问题。由于常用命令被感染加上计划任务的存在,即使重启,计划任务仍会调用被感染的 stat 文件使挖矿程序重生。正确的处置流程是:

  1. 使用 busybox 删除挖矿程序

  2. 删除计划任务和守护进程脚本

  3. 离线恢复被感染的系统命令

  4. 清除残留进程

重启不是目的,根除才是。

附录: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个被感染系统命令,彻底清除病毒并输出应急报告。

 
posted @ 2026-07-11 14:33  月初吖  阅读(8)  评论(0)    收藏  举报