# Performing Windows Artifact Analysis With Eric Zimmerman Tools

> 使用 Eric Zimmerman 的开源 EZ Tools 套件（包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer）执行全面的 Windows 取证制品分析，解析注册表 hive、预取文件、事件日志和文件系统元数据。

- Skill: `killvxk/performing-windows-artifact-analysis-with-eric-zimmerman-too` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/performing-windows-artifact-analysis-with-eric-zimmerman-too`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/performing-windows-artifact-analysis-with-eric-zimmerman-too/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/performing-windows-artifact-analysis-with-eric-zimmerman-too

---


# 使用 Eric Zimmerman 工具执行 Windows 制品分析

## 概述

Eric Zimmerman 的 EZ Tools 套件是一组开源取证工具，已成为 Windows 数字取证调查的全球标准。这些工具最初由一位前 FBI 特工（现任 SANS 讲师）开发，用于解析和分析关键 Windows 制品，包括主文件表（Master File Table，$MFT）、注册表 hive、预取文件（Prefetch）、事件日志、快捷方式（LNK）文件和跳转列表（Jump List）。该套件与 KAPE（Kroll Artifact Parser and Extractor）集成，实现制品的自动化收集和处理，生成结构化 CSV 输出，可导入 Timeline Explorer 进行可视化分析。EZ Tools 被全球各地的执法机构、企业事件响应人员和取证顾问广泛使用。

## 前置条件

- Windows 10/11 或 Windows Server 2016+ 分析工作站
- 已安装 .NET 6 运行时（EZ Tools v2.x+ 必需）
- 分析工作站上的管理员权限
- 目标系统的取证磁盘镜像或分类采集数据
- 至少 8 GB 内存（大型数据集建议 16 GB）
- 熟悉 NTFS 文件系统结构和 Windows 内部机制

## 工具套件组件

### KAPE（Kroll Artifact Parser and Extractor）

KAPE 是主要的编排工具，通过配置文件（.tkape 和 .mkape）自动化制品收集（Targets）和处理（Modules），定义要收集的制品以及要对其运行的 EZ Tools。

**安装和设置：**

```powershell
# 从 https://www.kroll.com/en/services/cyber-risk/incident-response-litigation-support/kroll-artifact-parser-extractor-kape 下载 KAPE
# 解压到 C:\Tools\KAPE

# 更新 KAPE Targets 和 Modules
C:\Tools\KAPE\gkape.exe  # GUI 版本
C:\Tools\KAPE\kape.exe   # CLI 版本

# 同步最新 EZ Tools 二进制文件
C:\Tools\KAPE\Get-KAPEUpdate.ps1
```

**运行 KAPE 收集和处理：**

```powershell
# 从挂载的取证镜像 E: 盘收集制品并使用 EZ Tools 处理
kape.exe --tsource E: --tdest C:\Cases\Case001\Collection --target KapeTriage --mdest C:\Cases\Case001\Processed --module !EZParser

# 收集特定制品类别
kape.exe --tsource E: --tdest C:\Cases\Case001\Collection --target FileSystem,RegistryHives,EventLogs --mdest C:\Cases\Case001\Processed --module MFTECmd,RECmd,EvtxECmd

# 实时系统分类采集（以管理员身份运行）
kape.exe --tsource C: --tdest D:\LiveTriage\Collection --target KapeTriage --mdest D:\LiveTriage\Processed --module !EZParser --vhdx LiveTriageImage
```

### MFTECmd - 主文件表解析器

MFTECmd 将 NTFS $MFT、$J（USN 日志）、$Boot、$SDS 和 $LogFile 解析为人类可读的 CSV 格式。

```powershell
# 解析 $MFT 文件
MFTECmd.exe -f "C:\Cases\Evidence\$MFT" --csv C:\Cases\Output --csvf MFT_output.csv

# 解析 USN 日志（$J）
MFTECmd.exe -f "C:\Cases\Evidence\$J" --csv C:\Cases\Output --csvf USNJournal_output.csv

# 解析 $Boot 获取卷信息
MFTECmd.exe -f "C:\Cases\Evidence\$Boot" --csv C:\Cases\Output --csvf Boot_output.csv

# 解析 $SDS 获取安全描述符
MFTECmd.exe -f "C:\Cases\Evidence\$SDS" --csv C:\Cases\Output --csvf SDS_output.csv
```

**MFT 输出关键字段：**

| 字段 | 描述 |
|------|------|
| EntryNumber | MFT 记录编号 |
| ParentEntryNumber | 父目录 MFT 记录 |
| InUse | 记录是否处于活跃或已删除状态 |
| FileName | 文件或目录名称 |
| Created0x10 | $STANDARD_INFORMATION 创建时间戳 |
| Created0x30 | $FILE_NAME 创建时间戳 |
| LastModified0x10 | $STANDARD_INFORMATION 修改时间戳 |
| IsDirectory | 布尔值，指示目录或文件 |
| FileSize | 逻辑文件大小（字节） |
| Extension | 文件扩展名 |

### PECmd - 预取文件解析器

PECmd 解析 Windows 预取文件（.pf），提供程序执行证据，包括运行次数和时间戳。

```powershell
# 解析目录中所有预取文件
PECmd.exe -d "C:\Cases\Evidence\Windows\Prefetch" --csv C:\Cases\Output --csvf Prefetch_output.csv

# 解析单个预取文件并输出详细信息
PECmd.exe -f "C:\Cases\Evidence\Windows\Prefetch\CMD.EXE-4A81B364.pf" --json C:\Cases\Output

# 使用关键词过滤解析预取文件
PECmd.exe -d "C:\Cases\Evidence\Windows\Prefetch" -k "powershell,cmd,wscript,cscript,mshta" --csv C:\Cases\Output --csvf SuspiciousExec.csv
```

### RECmd - 注册表资源管理器命令行

RECmd 使用批处理文件处理 Windows 注册表 hive，批处理文件定义要提取的键和值。

```powershell
# 使用默认批处理文件处理所有注册表 hive
RECmd.exe --bn C:\Tools\KAPE\Modules\bin\RECmd\BatchExamples\RECmd_Batch_MC.reb -d "C:\Cases\Evidence\Registry" --csv C:\Cases\Output --csvf Registry_output.csv

# 处理单个 NTUSER.DAT hive
RECmd.exe -f "C:\Cases\Evidence\Users\suspect\NTUSER.DAT" --bn C:\Tools\KAPE\Modules\bin\RECmd\BatchExamples\RECmd_Batch_MC.reb --csv C:\Cases\Output

# 处理 SYSTEM hive 获取 USB 设备历史
RECmd.exe -f "C:\Cases\Evidence\Registry\SYSTEM" --bn C:\Tools\KAPE\Modules\bin\RECmd\BatchExamples\RECmd_Batch_MC.reb --csv C:\Cases\Output
```

### EvtxECmd - Windows 事件日志解析器

EvtxECmd 将 Windows 事件日志（.evtx）文件解析为结构化 CSV 格式，支持可定制的事件 ID 映射。

```powershell
# 解析目录中所有事件日志
EvtxECmd.exe -d "C:\Cases\Evidence\Windows\System32\winevt\Logs" --csv C:\Cases\Output --csvf EventLogs_output.csv

# 解析单个事件日志
EvtxECmd.exe -f "C:\Cases\Evidence\Security.evtx" --csv C:\Cases\Output --csvf Security_output.csv

# 使用自定义映射增强字段提取
EvtxECmd.exe -d "C:\Cases\Evidence\Logs" --csv C:\Cases\Output --maps C:\Tools\KAPE\Modules\bin\EvtxECmd\Maps
```

### LECmd 和 JLECmd - 快捷方式和跳转列表解析器

```powershell
# 解析 Recent 目录中的 LNK 文件
LECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Cases\Output --csvf LNK_output.csv

# 解析跳转列表（自动目标）
JLECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Cases\Output --csvf JumpLists_auto.csv

# 解析跳转列表（自定义目标）
JLECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Cases\Output --csvf JumpLists_custom.csv
```

### SBECmd - ShellBag 资源管理器命令行

```powershell
# 从注册表 hive 目录解析 ShellBag
SBECmd.exe -d "C:\Cases\Evidence\Registry" --csv C:\Cases\Output --csvf Shellbags_output.csv

# 从实时系统解析 ShellBag（需要管理员权限）
SBECmd.exe --live --csv C:\Cases\Output --csvf LiveShellbags_output.csv
```

### Timeline Explorer - 可视化分析

Timeline Explorer 是用于分析所有 EZ Tools CSV 输出的 GUI 工具，支持过滤、排序、列分组和条件格式化。

```powershell
# 启动 Timeline Explorer 并打开 CSV 输出
TimelineExplorer.exe "C:\Cases\Output\MFT_output.csv"
```

**Timeline Explorer 关键功能：**
- 支持正则表达式的列级过滤
- 时间戳异常的条件格式化
- 用于时间顺序分析的多列排序
- 将过滤结果导出为新 CSV 文件
- 对感兴趣的行添加书签

## 调查工作流程

### 步骤 1：使用 KAPE 收集制品

```powershell
# 从挂载在 E: 的取证镜像进行完整分类采集
kape.exe --tsource E: --tdest C:\Cases\Case001\Collected --target KapeTriage --vhdx TriageImage --zv false
```

### 步骤 2：使用 EZ Tools 处理制品

```powershell
# 处理所有已收集的制品
kape.exe --msource C:\Cases\Case001\Collected --mdest C:\Cases\Case001\Processed --module !EZParser
```

### 步骤 3：时间线分析

1. 在 Timeline Explorer 中打开已处理的 CSV 文件
2. 按时间戳列排序以建立时间顺序
3. 按特定文件扩展名、路径或事件 ID 过滤
4. 交叉参考 MFT 时间戳与事件日志条目
5. 通过比较 $SI 和 $FN 时间戳识别时间戳篡改（Timestomping）
6. 使用书签和导出的过滤视图记录发现

### 步骤 4：时间戳篡改检测

```powershell
# 在 Timeline Explorer 中比较以下列：
# Created0x10（$STANDARD_INFORMATION）vs Created0x30（$FILE_NAME）
# 若 Created0x10 < Created0x30，则表明存在时间戳篡改
# $FILE_NAME 时间戳比 $STANDARD_INFORMATION 更难被篡改
```

## 取证制品参考

| 工具 | 制品 | 位置 |
|------|------|------|
| MFTECmd | $MFT | NTFS 卷根目录 |
| MFTECmd | $J（USN 日志） | $Extend\$UsnJrnl:$J |
| PECmd | 预取文件 | C:\Windows\Prefetch\*.pf |
| RECmd | NTUSER.DAT | C:\Users\{user}\NTUSER.DAT |
| RECmd | SYSTEM hive | C:\Windows\System32\config\SYSTEM |
| RECmd | SAM hive | C:\Windows\System32\config\SAM |
| RECmd | SOFTWARE hive | C:\Windows\System32\config\SOFTWARE |
| EvtxECmd | 事件日志 | C:\Windows\System32\winevt\Logs\*.evtx |
| LECmd | LNK 文件 | C:\Users\{user}\AppData\Roaming\Microsoft\Windows\Recent\ |
| JLECmd | 跳转列表 | C:\Users\{user}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\ |
| SBECmd | ShellBag | NTUSER.DAT 和 UsrClass.dat 注册表 hive |

## 常见调查场景

### 恶意软件执行证据
1. 使用 PECmd 解析预取文件以识别已执行的二进制文件
2. 与 MFT 交叉参考以获取文件创建时间戳
3. 使用 RECmd 检查 Amcache.hve 获取可执行文件的 SHA1 哈希值
4. 与事件日志中的进程创建条目关联（事件 ID 4688）

### 数据渗出调查
1. 使用 MFTECmd 解析 USN 日志以获取文件重命名/删除操作
2. 使用 LECmd 分析 LNK 文件以获取最近访问的文档
3. 使用 SBECmd 审查 ShellBag 以获取目录浏览活动
4. 使用 RECmd 检查 SYSTEM 注册表中的 USB 设备连接记录

### 横向移动检测
1. 使用 EvtxECmd 解析 Security.evtx 获取登录事件（4624、4625）
2. 分析 RDP 相关事件日志（Microsoft-Windows-TerminalServices）
3. 与 SMB 日志中的网络共享访问交叉参考
4. 审查计划任务和服务以发现持久化机制

## 输出格式与集成

所有 EZ Tools 生成的 CSV 输出均可：
- 在 Timeline Explorer 中进行可视化调查分析
- 导入 Splunk、Elastic 或其他 SIEM 平台
- 通过 Python/PowerShell 脚本进行自动化分析
- 使用 log2timeline/Plaso 整合为超级时间线

## 参考资料

- Eric Zimmerman 工具：https://ericzimmerman.github.io/
- KAPE 文档：https://ericzimmerman.github.io/KapeDocs/
- SANS EZ Tools 培训：https://www.sans.org/tools/ez-tools
- SANS FOR508：高级事件响应与威胁狩猎
- SANS FOR498：战场取证与数据采集

