abhiramj092-stack/Threat-hunting-sysmon-lab
GitHub: abhiramj092-stack/Threat-hunting-sysmon-lab
基于 Sysmon 和 Metasploit 的威胁狩猎实验室,通过模拟 Reverse TCP 攻击链来演示 Windows 端点检测与 MITRE ATT&CK 映射的完整流程。
Stars: 0 | Forks: 0
# 威胁狩猎实验室 — 使用 Sysmon 检测 Reverse TCP
这是一个实操性的家庭实验室练习,通过 **Metasploit
(Kali Linux)** 模拟 Windows 系统被攻陷的场景,并使用
**Sysmon + Windows 事件查看器** 检测攻击者的后渗透活动。此仓库记录了完整的攻击链
以及相应的防御检测措施,并大致映射到
MITRE ATT&CK。
## 实验环境
| 组件 | 详情 |
|-------------------|-----------------------------------------------|
| 攻击者 | Kali Linux, Metasploit Framework v6.4.84-dev |
| 攻击者 IP | 192.168.190.141 |
| 受害者 | Windows 10 (Build 19045), 主机 `DESKTOP-H8MNLF7` |
| 受害者 IP | 192.168.190.144 |
| Payload | `windows/x64/meterpreter/reverse_tcp`,位于 LPORT 4444 |
| 日志记录 | Sysmon (Microsoft-Windows-Sysmon/Operational) |
## 攻击链摘要
1. 攻击者在 Metasploit 中配置并启动 `exploit/multi/handler`。
2. 受害者执行 `malware.exe`,与攻击者建立 Meterpreter 会话。
3. 攻击者进入 `shell`,确认访问权限 (`whoami`),并启动 `powershell`。
4. 攻击者对 PowerShell 命令进行 Base64 编码,并通过 `-EncodedCommand` 执行。
5. 每个阶段都在受害者端被 **Sysmon** 捕获,生成 Event ID
1 (Process Create)、3 (Network Connection) 和 11 (File Create)。
## 时间线与截图
### 1. Metasploit Handler 设置
攻击者启动 `msfconsole`,选择 `exploit/multi/handler`,设置
`windows/x64/meterpreter/reverse_tcp` payload 和 `LHOST`。

### 2. Exploit 启动与 Meterpreter 会话
`LPORT` 设置为 4444,handler 运行,从受害者 (192.168.190.144) 打开 Meterpreter 会话。
攻击者进入原生 `shell`,运行 `whoami`,并启动 `powershell`。

### 3. 检测:恶意进程执行 (Sysmon Event ID 1)
Sysmon 记录了从
`C:\Users\abh\Downloads\` 执行 `malware.exe` 的情况,包括文件哈希值 (MD5/SHA256/IMPHASH) —
这是分析师进行追踪的初始入侵痕迹。

### 4. 检测:出站网络连接 (Sysmon Event ID 3)
Sysmon Event ID 3 显示发起到 `192.168.190.144`
的 TCP 连接(反向通道)— 这是 C2 回调活动的证据。

### 5. Shell 访问确认
Meterpreter 到原生 shell 交互的特写,确认
`whoami` 返回 `desktop-h8mnlf7\abh`。

### 6. 检测:启动 PowerShell 进程 (Sysmon Event ID 1)
Sysmon 捕获到 `powershell.exe` 启动,其 `CommandLine` 值为纯文本的
`powershell` — 这是“靠山吃山(Living-off-the-Land)”活动的常见先兆。

### 7. 检测:创建脚本策略测试文件 (Sysmon Event ID 11)
在用户的 Temp 文件夹中创建了一个
`__PSScriptPolicyTest_*.ps1` 文件 —
这是 PowerShell 评估脚本执行策略时 Windows 生成的痕迹,通常在脚本/编码命令执行之前出现。

### 8. 攻击者执行 Base64 编码的 PowerShell 命令
在受害者 shell 上,攻击者将 `Write-Host "SOC Lab Test"`
命令编码为 Base64 并通过
`powershell.exe -EncodedCommand ` 运行 — 这是一种典型的混淆/规避
技术(MITRE ATT&CK **T1059.001** 和 **T1027**)。

### 9. 检测:Sysmon 捕获编码命令 (Event ID 1)
Sysmon 记录了完整的 `CommandLine`,包括 `-EncodedCommand` 标志
和 Base64 payload — 为防御者提供了确切的混淆命令,以便
进行解码和分类分析。

## MITRE ATT&CK 映射
| 技术 | ID | 证据 |
|---|---|---|
| 命令和脚本解释器:PowerShell | T1059.001 | 截图 6, 8, 9 |
| 混淆文件或信息 | T1027 | 截图 8, 9 |
| 应用层协议 / Reverse Shell | T1071 / T1219 | 截图 2, 4 |
| 入口工具传输 / 恶意文件执行 | T1204 / T1105 | 截图 3 |
## 检测要点
- 编码的 PowerShell(`-EncodedCommand` / `-enc`)应始终被解码
并进行审查 — Sysmon Event ID 1 保留了执行此操作所需的
完整命令行。
- `%TEMP%` 中的 `__PSScriptPolicyTest*.ps1` 文件是一个有用的低噪音
指标,表明刚刚发生了 PowerShell 脚本执行。
- 将 Event ID 1 (Process Create) 与 Event ID 3 (Network Connect) 关联起来,
可以快速将可疑的二进制文件与其 C2 目标联系起来。
## 免责声明
本练习完全在一个隔离的个人所有
实验室环境中进行,仅用于教育/蓝队培训目的。未针对任何外部
或生产系统进行操作。
标签:AI合规, DNS 反向解析, OpenCanary, Sysmon, 安全实验, 攻击模拟, 网络信息收集, 驱动签名利用