HYDRAkid3/chainsaw-windows-event-log-triage
GitHub: HYDRAkid3/chainsaw-windows-event-log-triage
一个基于 Chainsaw 和 Sigma 规则对 Windows Sysmon EVTX 日志进行离线分诊的安全取证分析案例仓库。
Stars: 1 | Forks: 0
# 使用 Chainsaw 进行 Windows 事件日志分诊
在 Kali Linux 上使用 **Chainsaw**、**Sysmon Event Logs** 和 **Sigma** 检测规则,对可疑的 Windows 进程活动进行离线分析。
## 执行摘要
一个 Windows 终端被怀疑执行了可疑的 MSI 包。提供了一个 Sysmon EVTX 文件用于离线调查,以确定该安装是否产生了异常的子进程或执行后的发现活动。
手动进程分析识别出以下执行链:
```
msiexec.exe
└── MSI4FFD.tmp
└── cmd.exe
└── whoami.exe
```
Chainsaw 的内置规则未返回任何检测结果。然而,基于 Sigma 的狩猎将 `whoami.exe` 的执行识别为 **Local Accounts Discovery**。
`whoami` 命令本身并不具有内在的恶意性。其调查意义来自于周围的进程祖先:它是由 `cmd.exe` 启动的,而 `cmd.exe` 是通过 `msiexec.exe` 启动的一个临时可执行文件创建的。
## 调查场景
一个 Windows 工作站被怀疑执行了潜在的恶意 MSI 包。
提供了一个 Sysmon EVTX 文件用于离线分诊。调查重点在于识别:
- 记录活动期间创建的进程
- 父子进程关系
- 命令行执行
- 用户或账户发现活动
- Chainsaw 和 Sigma 检测结果
- 支持或反对升级的依据
在此次调查过程中,没有下载或执行任何恶意软件。仅分析了导出的 Windows 事件日志文件。
## 调查目标
该分析旨在回答以下问题:
1. 执行了哪些进程?
2. 哪个父进程启动了每个子进程?
3. 安装程序是否创建了可疑的临时可执行文件?
4. 临时可执行文件是否启动了命令行?
5. 命令行是否执行了发现命令?
6. Chainsaw 或 Sigma 是否检测到了该活动?
7. 现有证据是否证明升级是合理的?
## 工具与技术
| 组件 | 详情 |
|---|---|
| 分析平台 | Kali Linux |
| 主要工具 | Chainsaw 2.16.0 |
| 证据类型 | Windows 事件日志 (`.evtx`) |
| 事件提供者 | Microsoft-Windows-Sysmon |
| 事件通道 | Microsoft-Windows-Sysmon/Operational |
| 相关事件类型 | Sysmon Event ID 1 — Process Creation |
| 检测内容 | Chainsaw 内置规则和 SigmaHQ Windows 规则 |
| 框架 | MITRE ATT&CK |
## 证据信息
| 属性 | 值 |
|---|---|
| 证据文件 | `Exec_sysmon_meterpreter_reversetcp_msipackage.evtx` |
| 大小约 | 68 KB |
| 终端 | `IEWIN7` |
| 事件提供者 | Microsoft-Windows-Sysmon |
| 证据格式 | Microsoft Windows Event Log |
| SHA-256 | `328ec1b4b6c531af991a2de2221900ec93db1853f7446f61c7e3c9bf9bf052e3` |
该证据来源于公开的 [EVTX-ATTACK-SAMPLES](https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES) 仓库。
该 EVTX 文件本身不包含在此仓库中。提供了原始公开来源和 SHA-256 哈希值,以便可以独立定位和验证所分析的证据。
## 调查方法
分析遵循以下工作流程:
1. 确认证据的文件名、大小、格式和 SHA-256 哈希值。
2. 在 EVTX 文件中搜索 Sysmon Event ID 1 进程创建事件。
3. 查阅进程映像、命令行、用户、完整性级别和哈希值。
4. 将进程 ID 与父进程 ID 进行关联。
5. 重构执行链。
6. 运行 Chainsaw 的内置检测规则。
7. 通过 Chainsaw 运行 SigmaHQ Windows 规则。
8. 根据底层 Sysmon 事件验证 Sigma 告警。
9. 查阅匹配的 Sigma 规则元数据。
10. 将检测到的行为映射到 MITRE ATT&CK。
11. 记录误报考量和调查限制。
12. 得出分析师结论并建议响应措施。
## 调查时间线
| 时间戳 (UTC) | 事件 ID | 进程 | 父进程 | 分析师解读 |
|---|---:|---|---|---|
| 2019-04-30 22:48:59 | 1 | `VSSVC.exe` | `services.exe` | 似乎与正常的 Windows 卷影复制服务活动一致 |
| 2019-04-30 22:49:08 | 1 | `MSI4FFD.tmp` | `msiexec.exe` | 通过 Windows Installer 启动的临时可执行文件 |
| 2019-04-30 22:49:09 | 1 | `cmd.exe` | `MSI4FFD.tmp` | 临时安装程序可执行文件生成了命令行 |
| 2019-04-30 22:52:27 | 1 | `whoami.exe` | `cmd.exe` | 从命令行执行的用户发现命令 |
## 重构的进程链
```
C:\Windows\System32\msiexec.exe
└── C:\Windows\Installer\MSI4FFD.tmp
└── C:\Windows\System32\cmd.exe
└── C:\Windows\System32\whoami.exe
```
此进程链是根据 Sysmon 进程创建事件中的 `Image`、`ProcessId`、`ParentImage` 和 `ParentProcessId` 字段重构的。
## 手动事件分析
### 事件 1:Windows 服务活动
第一个事件显示:
```
services.exe → VSSVC.exe
```
`VSSVC.exe` 是 Microsoft 卷影复制服务可执行文件。现有字段未能将此事件与可疑的执行链联系起来,因此将其视为可能的正常服务活动。
### 事件 2:MSI 临时可执行文件
第二个事件显示:
```
msiexec.exe → C:\Windows\Installer\MSI4FFD.tmp
```
相关详情包括:
| 字段 | 值 |
|---|---|
| 时间戳 | `2019-04-30 22:49:08.604` |
| 进程 | `C:\Windows\Installer\MSI4FFD.tmp` |
| 命令行 | `"C:\Windows\Installer\MSI4FFD.tmp"` |
| 父进程 | `C:\Windows\System32\msiexec.exe` |
| 父进程命令行 | `C:\Windows\system32\msiexec.exe /V` |
| 用户 | `IEWIN7\IEUser` |
| 完整性级别 | High |
| 进程 ID | `3680` |
| 父进程 ID | `2080` |
在合法的 MSI 安装过程中可能会创建临时可执行文件。因此,仅凭文件位置并不能认定为恶意活动。需要进一步检查临时可执行文件的行为。
### 事件 3:命令行创建
第三个事件显示:
```
C:\Windows\Installer\MSI4FFD.tmp
→ C:\Windows\System32\cmd.exe
```
相关详情包括:
| 字段 | 值 |
|---|---|
| 时间戳 | `2019-04-30 22:49:09.276` |
| 进程 | `C:\Windows\System32\cmd.exe` |
| 命令行 | `cmd` |
| 父进程 | `C:\Windows\Installer\MSI4FFD.tmp` |
| 用户 | `IEWIN7\IEUser` |
| 完整性级别 | High |
| 进程 ID | `2892` |
| 父进程 ID | `3680` |
临时安装程序可执行文件生成命令行是不寻常的,这增加了该活动的调查意义。
### 事件 4:用户发现命令
第四个事件显示:
```
cmd.exe → whoami.exe
```
相关详情包括:
| 字段 | 值 |
|---|---|
| 时间戳 | `2019-04-30 22:52:27.588` |
| 进程 | `C:\Windows\System32\whoami.exe` |
| 命令行 | `whoami` |
| 父进程 | `C:\Windows\System32\cmd.exe` |
| 用户 | `IEWIN7\IEUser` |
| 完整性级别 | High |
| 进程 ID | `1372` |
| 父进程 ID | `2892` |
`whoami` 实用程序用于识别与当前执行上下文关联的用户。
它是一个合法的 Windows 命令,管理员、用户、脚本或安装软件都可以使用它。在后渗透发现阶段也经常观察到它,此时操作者或自动化 payload 会尝试确定当前会话的身份和权限。
## 自动化检测结果
### Chainsaw 内置规则
Chainsaw 使用其内置检测内容成功处理了 EVTX 证据。
| 结果 | 值 |
|---|---:|
| 已加载规则数 | 127 |
| 未加载规则数 | 1 |
| 处理的 EVTX 文件数 | 1 |
| 检测数 | 0 |
没有内置规则检测到威胁,但这并不能证明该活动是良性的。
手动审查仍然发现了一个不寻常的进程链。这说明了为什么分析师不应完全依赖单一的自动化检测源。
### 仅 Sigma 狩猎
Sigma 狩猎产生了一个检测结果。
| 结果 | 值 |
|---|---:|
| 加载的 Sigma 规则数 | 2,290 |
| 未加载的 Sigma 规则数 | 113 |
| 处理的 EVTX 文件数 | 1 |
| 检测数 | 1 |
### 结合 Chainsaw 和 Sigma 的联合狩猎
联合狩猎加载了 Chainsaw 内置规则和 SigmaHQ Windows 规则。
| 结果 | 值 |
|---|---:|
| 加载的检测规则数 | 2,417 |
| 未加载的检测规则数 | 114 |
| 处理的 EVTX 文件数 | 1 |
| 检测数 | 1 |
联合狩猎返回了与 `whoami.exe` 相关的同一个 Sigma 检测结果。
## Sigma 检测结果
| 字段 | 值 |
|---|---|
| 检测标题 | `Local Accounts Discovery` |
| 检测时间 | `2019-04-30 22:52:27` |
| 严重性 | Low |
| 事件提供者 | Microsoft-Windows-Sysmon |
| 事件 ID | 1 |
| 记录 ID | 10154 |
| 终端 | `IEWIN7` |
| 进程 | `C:\Windows\System32\whoami.exe` |
| 命令行 | `whoami` |
| 父进程 | `C:\Windows\System32\cmd.exe` |
| 用户 | `IEWIN7\IEUser` |
| 完整性级别 | High |
该 Sigma 规则匹配是因为 `whoami.exe` 可用于识别当前用户。
该检测被归类为低严重性,因为此命令经常出现在合法活动中。在本次调查中,其周围的父子进程关系增加了其重要性。
## Sigma 规则信息
| 属性 | 值 |
|---|---|
| 规则标题 | `Local Accounts Discovery` |
| Sigma 规则 ID | `502b42de-4306-40b4-9596-6f590c81f073` |
| 规则文件 | `proc_creation_win_susp_local_system_owner_account_discovery.yml` |
| 所检查 YAML 源码中的状态 | `test` |
| 严重性 | `low` |
| 创建时间 | `2019-10-21` |
| 修改时间 | `2025-10-20` |
| 作者 | Timur Zinniatullin, Daniil Yugoslavskiy, oscd.community |
该规则检测多种本地用户和系统所有者发现方法,包括:
- `whoami.exe`
- `quser.exe`
- `qwinsta.exe`
- WMI 用户账户查询
- `cmdkey.exe /l`
- `net user`
- 检查 Windows Users 目录的命令
### 规则元数据观察
Chainsaw 显示的规则状态为 `experimental`,而本地 Sigma 检出中的 YAML 规则显示为 `test`。
此元数据差异仅作记录,不作为调查发现处理。直接从 YAML 源码验证了规则标题、标识符、检测逻辑、严重性和 ATT&CK 标签。
## MITRE ATT&CK 映射
该 Sigma 规则包含以下 ATT&CK 标签:
| 战术 | 技术 | 技术 ID |
|---|---|---|
| Discovery | System Owner/User Discovery | `T1033` |
| Discovery | Account Discovery: Local Account | `T1087.001` |
对于观察到的 `whoami` 事件,**T1033 - System Owner/User Discovery** 是最直接适用的映射,因为该命令用于识别与当前会话关联的用户。
更广泛的 Sigma 规则还包括 **T1087.001 - Account Discovery: Local Account**,因为它能检测其他枚举本地账户的命令。
## 误报考量
`whoami` 命令本身并无恶意。
可能的合理解释包括:
- 管理员验证当前账户
- 用户检查其执行上下文
- 故障排除或安装脚本
- 授权的端点管理软件
- 资产清单或合规性自动化
该活动之所以变得可疑,是因为:
1. `whoami.exe` 是由 `cmd.exe` 启动的。
2 `cmd.exe` 是由一个临时可执行文件启动的。
3. 该临时可执行文件位于 `C:\Windows\Installer` 中。
4. 该临时可执行文件是由 `msiexec.exe` 启动的。
5. 进程以高完整性级别执行。
6. 发现命令发生在创建临时可执行文件和命令行之后。
这说明了为什么应该根据执行上下文而不是单凭命令名称来评估告警。
## 分析师评估
现有证据显示了一个不寻常的序列:
1. `msiexec.exe` 启动了一个临时可执行文件。
2. 该临时可执行文件启动了 `cmd.exe`。
3. 命令行执行了 `whoami.exe`。
4. Sigma 将最后的事件识别为用户或本地账户发现活动。
5. 记录的进程以高完整性级别执行。
仅凭 Sigma 检测结果无法确认系统被入侵。然而,临时可执行文件、命令行创建、发现活动以及可疑的父子进程关系的结合,足以证明升级调查是合理的。
该活动与可能的后渗透发现行为一致。
## 局限性
本次调查受到现有证据的限制:
- 仅分析了一个 EVTX 文件。
- 证据中仅包含四个 Sysmon 进程创建事件。
- 没有 Sysmon Event ID 3 网络连接事件可用。
- 没有 DNS、代理、防火墙或数据包捕获证据可用。
- 没有 Windows 安全身份验证日志可用。
- 没有 PowerShell 操作日志可用。
- 没有 Microsoft Defender 或 EDR 遥测数据可用。
- 原始 MSI 包不可用。
- 临时可执行文件不可用于静态或动态分析。
- Sigma 匹配识别出相符的行为,但无法独立证明其具有恶意意图。
- 现有证据无法确认活动的完整范围或影响。
## 建议的后续步骤
1. 从终端获取相关时间段的额外 Sysmon 事件。
2. 审查 Sysmon Event ID 3 网络连接活动。
3. 审查 DNS、代理、防火墙和数据包捕获证据。
4. 获取并分析原始 MSI 包。
5. 获取并分析 `C:\Windows\Installer\MSI4FFD.tmp`。
6. 计算并搜索 MSI 及临时文件的哈希值。
7. 审查 Microsoft Defender 或 EDR 告警和遥测数据。
8. 审查 `IEWIN7\IEUser` 的 Windows 身份验证事件。
9. 在其他终端中搜索相同的执行链。
10. 审查通过 `cmd.exe` 启动的其他命令。
11. 调查可能的服务、计划任务、文件或注册表持久性。
12. 确定终端是否与外部目标进行了通信。
## 调查证据
### 1. Chainsaw 版本
使用 Chainsaw 2.16.0 版进行离线 Windows 事件日志分析。

### 2. 证据完整性验证
在分析之前验证了证据的文件名、大约大小、SHA-256 哈希值和 Windows 事件日志格式。

### 3. MSI 临时可执行文件
Sysmon Event ID 1 显示 `msiexec.exe` 启动了临时可执行文件:
```
C:\Windows\Installer\MSI4FFD.tmp
```
事件还显示该进程在 `IEWIN7\IEUser` 下以高完整性级别执行。

### 4. 命令行创建
随后的 Sysmon Event ID 1 显示临时 MSI 可执行文件启动了:
```
C:\Windows\System32\cmd.exe
```
这种父子进程关系是该活动被视为可疑的主要原因之一。

### 5. Chainsaw 内置规则结果
Chainsaw 加载了 127 条内置检测规则,并成功处理了该 EVTX 文件。
内置规则返回了零检测结果,这表明缺少自动化告警并不一定意味着底层活动是良性的。

### 6. Sigma 检测摘要
联合狩猎识别出一个标题为 `Local Accounts Discovery` 的 Sigma 检测。
该检测与 `whoami.exe` 相关联,并被归类为低严重性。

### 7. Sigma 事件详情
详细的事件输出显示:
- 命令行:`whoami`
- 用户:`IEWIN7\IEUser`
- 完整性级别:High
- 父进程:`C:\Windows\System32\cmd.exe`
- 事件 ID:1
- 记录 ID:10154
这些字段将发现命令与可疑的执行链联系起来。

### 8. 最终调查结果摘要
最终的分析师摘要记录了证据、进程链、内置规则结果、Sigma 检测、ATT&CK 映射、结论和调查局限性。

## 使用的命令
### 验证 Chainsaw
```
chainsaw --version
```
### 验证证据完整性
```
ls -lh evidence/
sha256sum evidence/*.evtx
file evidence/*.evtx
```
### 搜索 Sysmon Event ID 1
```
chainsaw search \
-t 'Event.System.EventID: =1' \
evidence/
```
### 运行 Chainsaw 内置规则
```
chainsaw hunt evidence/ \
-r tools/chainsaw-src/rules/ \
--metadata \
--full
```
### 运行 SigmaHQ Windows 规则
```
chainsaw hunt evidence/ \
-s tools/sigma/rules/windows/ \
--mapping tools/chainsaw-src/mappings/sigma-event-logs-all.yml \
--metadata \
--full
```
### 运行联合狩猎
```
chainsaw hunt evidence/ \
-s tools/sigma/rules/windows/ \
--mapping tools/chainsaw-src/mappings/sigma-event-logs-all.yml \
-r tools/chainsaw-src/rules/ \
--metadata \
--full
```
### 定位匹配的 Sigma 规则
```
grep -Ril "title: Local Accounts Discovery" \
tools/sigma/rules/windows/
```
## 关键结论
- 必须根据底层事件验证自动化检测结果。
- 合法的 Windows 实用程序可能会因其执行上下文而变得可疑。
- 父子进程关系在终端分诊期间非常重要。
- 一个规则集返回零检测结果并不能证明活动是良性的。
- 应审查 Sigma 检测结果的严重性、状态、误报情况和 ATT&CK 映射。
- 不应在不考虑周围遥测数据的情况下解读检测严重性。
- 分析师的结论应将观察到的事实与假设区分开来。
- 证据有限时应得出审慎的评估结论,而不是提供毫无根据的被入侵声明。
## 仓库结构
```
chainsaw-windows-event-log-triage/
├── README.md
└── screenshots/
├── README.md
├── 01-chainsaw-version.png
├── 02-evidence-integrity.png
├── 03a-msi-temporary-executable.png
├── 03-sysmon-process-creation.png
├── 04a-chainsaw-built-in-rules.png
├── 04-chainsaw-sigma-detection1.png
├── 04-chainsaw-sigma-detection2.png
└── 05-findings-summary.png
```
## 参考
- [Chainsaw](https://github.com/WithSecureLabs/chainsaw)
- [SigmaHQ](https://github.com/SigmaHQ/sigma)
- [EVTX-ATTACK-SAMPLES](https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES)
- [MITRE ATT&CK T1033 — System Owner/User Discovery](https://attack.mitre.org/techniques/T1033/)
- [MITRE ATT&CK T1087.001 — Account Discovery: Local Account](https://attack.mitre.org/techniques/T1087/001/)
## 免责声明
本次调查是使用公开的 Windows 事件日志证据,出于教育和防御性安全目的而进行的。
在分析过程中没有执行任何恶意软件。
标签:Sysmon, 安全, 库, 应急响应, 数字取证, 自动化脚本, 超时处理