ixsecure/TryHackMe-Threat-Hunting-Simulator-Danger-pour-la-sant-
GitHub: ixsecure/TryHackMe-Threat-Hunting-Simulator-Danger-pour-la-sant-
这是一份 TryHackMe 平台上威胁狩猎模拟实验的详细记录,通过 Splunk 和 Sysmon 分析一次恶意 npm 包供应链攻击,完整展示了从日志查询到攻击链重建的威胁狩猎流程。
Stars: 0 | Forks: 0
# TryHackMe — Threat Hunting Simulator : Danger pour la santé
**平台:** TryHackMe
**类别:** Threat Hunting
**难度:** 中级
**日期:** 2026年5月
**作者:** Richmond Delmas K.
## 摘要
本 writeup 记录了在 TryHackMe 上进行的一次威胁狩猎调查。目标是识别通过恶意 npm 包发起的供应链攻击,重建完整的攻击链,并识别攻击者建立的持久化机制。
## 背景
Tom Whiskers 是一家初创公司的联合创始人,他在按照教程构建公司的第一个网站。在安装 npm 依赖项后,系统中出现了一个可疑文件夹。最初的假设是攻击者入侵了一个第三方包,以获取初始访问权限并建立静默持久化。
## 使用工具
- **Splunk 8.2.6** — 用于日志分析的 SIEM
- **Sysmon** — Windows 日志源 (EventCodes)
- **TryHackMe Threat Intel** — 妥协指标
## 妥协指标
### 基于主机的 IoC
| 类型 | 值 |
|---|---|
| NPM 包 | `healthchk-lib@1.0.1` |
| 注册表路径 | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` |
| 注册表值名称 | `Windows Update Monitor` |
| 注册表值数据 | `powershell.exe -NoP -W Hidden -EncodedCommand ` |
| 下载文件路径 | `%APPDATA%\SystemHealthUpdater.exe` |
| PowerShell 命令 | `Invoke-WebRequest -Uri ... -OutFile ...` |
| 脚本工件 | 在 `package.json` 的 `postinstall` 中找到 |
### 基于网络的 IoC
| 类型 | 值 |
|---|---|
| 下载 URL | `http://global-update.wlndows.thm/SystemHealthUpdater.exe` |
| C2 域名 | `global-update.wlndows.thm` |
| 协议 | HTTP (未加密) |
| 端口 | 80 |
## 调查 — 使用的 Splunk 查询
```
# 搜索恶意软件包
healthchk-lib
# 搜索 npm 进程
*npm*
# 搜索 postinstall 脚本
postinstall.ps1
# 搜索编码的 PowerShell 命令
EncodedCommand
# 搜索 AppData 中创建的文件
APPDATA ComputerName="paw-tom" EventCode=11
# 搜索到 C2 服务器的连接
global-update.wlndows.thm
# 搜索网络连接
EventCode=3 ComputerName="paw-tom"
```
## 重建的攻击链
### 步骤 1 — 初始入侵
**时间戳:** 2025-06-21 10:58:04
**MITRE 战术:** Initial Access
**技术:** Supply Chain Compromise (T1195)
Tom 通过 npm 安装了 `healthchk-lib@1.0.1`。这个看似合法的包在 `package.json` 文件的 `postinstall` 键下声明了一个恶意脚本。
```
EventCode: 1 (création de processus)
Image: C:\Program Files\nodejs\node.exe
ComputerName: paw-tom
CurrentDirectory: C:\Développement\
```
### 步骤 2 — 恶意脚本执行
**时间戳:** 2025-06-21 10:58:27
**MITRE 战术:** Execution
**技术:** Command and Scripting Interpreter — PowerShell (T1059.001)
脚本 `postinstall.ps1` 在包安装期间被自动创建并执行。
```
EventCode: 11 (création de fichier)
TargetFilename: C:\Development\node_modules\healthchk-lib\scripts\postinstall.ps1
Image: C:\Program Files\nodejs\node.exe
ComputerName: paw-tom
```
### 步骤 3 — 通过注册表键建立持久化
**时间戳:** 2025-06-21 10:58:29
**MITRE 战术:** Persistence
**技术:** Boot or Logon Autostart Execution — Registry Run Keys (T1547.001)
PowerShell 在 `CurrentVersion\Run` 中创建了一个名为 `Windows Update Monitor` 的注册表键,包含 Base64 编码的命令,以在重启后存活。
```
EventCode: 13 (modification du registre)
RuleName: T1060, RunKey
TargetObject: HKU\...\Software\Microsoft\Windows\CurrentVersion\Run\Windows Update Monitor
Détails: powershell.exe -NoP -W Hidden -EncodedCommand UwB0A...
ComputerName: paw-tom
```
### 步骤 4 — 与 C2 服务器联系
**时间戳:** 2025-06-21 10:58:29
**MITRE 战术:** Command and Control
**技术:** Application Layer Protocol — DNS (T1071.004)
PowerShell 向 C2 域名 `global-update.wlndows.thm` 发出 DNS 查询,以下载最终的有效载荷 `SystemHealthUpdater.exe`。
```
EventCode: 22 (requête DNS)
QueryName: global-update.wlndows.thm
Résultat: ::ffff:127.0.0.1
Image: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ComputerName: paw-tom
```
## 受影响的系统和用户
| 元素 | 值 |
|---|---|
| 受感染机器 | `paw-tom` |
| 用户 | `itadmin-tom` |
| 工作目录 | `C:\Développement\` |
| 攻击时间段 | 2025-06-21 10:58:04 至 10:58:29 之间 |
## 假设验证
✅ **假设已验证** — 攻击者确实使用了受损的 npm 包 (`healthchk-lib@1.0.1`) 通过供应链攻击获取初始访问权限。他们通过注册表 Run 键建立了持久化,并尝试联系 C2 服务器以下载第二阶段有效载荷。
## 经验教训
- 在安装前始终检查 npm 包中的 `postinstall` 脚本
- 供应链攻击难以检测,因为它们滥用了合法进程
- 域名仿冒是欺骗受害者的常用技术
- Sysmon 是追踪 Windows 上恶意活动的强大工具
- 需要监控的关键 EventCodes:1 (进程), 11 (文件), 13 (注册表), 22 (DNS)
## 参考资料
- [MITRE ATT&CK T1195 — Supply Chain Compromise](https://attack.mitre.org/techniques/T1195/)
- [MITRE ATT&CK T1059.001 — PowerShell](https://attack.mitre.org/techniques/T1059/001/)
- [MITRE ATT&CK T1547.001 — Registry Run Keys](https://attack.mitre.org/techniques/T1547/001/)
- [MITRE ATT&CK T1071.004 — DNS](https://attack.mitre.org/techniques/T1071/004/)
- [TryHackMe](https://tryhackme.com)
标签:AI合规, Base64编码, C2通信, IOCs, IPv6, OpenCanary, PowerShell, Sysmon, Threat Hunting, TryHackMe, 供应链攻击, 初始访问, 后门, 威胁情报, 安全运营, 库, 应急响应, 开发者工具, 恶意NPM包, 扫描框架, 攻击链分析, 数字取证, 暗色界面, 注册表持久化, 混淆命令, 网络信息收集, 网络安全, 自动化脚本, 隐私保护, 靶场Writeup