关于 performing-windows-artifact-analysis-with-eric-zimmerman-tools
面向数字取证人员和事件响应团队的 Windows 痕迹分析技能,介绍使用 EZ Tools 与 KAPE 收集、解析并可视化系统工件。输出的 CSV 可用于时间线调查及 SIEM 分析。
主要功能
- 01通过 KAPE 自动收集与处理工件
- 02解析 NTFS、注册表与事件日志
- 03分析 Prefetch、快捷方式和跳转列表
- 04以 CSV 输出结构化结果
- 05在 Timeline Explorer 中筛选时间线
适用场景
- 01调查恶意软件执行证据
- 02分析数据外泄相关活动
- 03排查横向移动与登录事件
- 04比较时间戳以识别时间篡改
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-windows-artifact-analysis-with-eric-zimmerman-tools安装后在 Claude Code 中输入/performing-windows-artifact-analysis-with-eric-zimmerman-tools确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py详细介绍
使用 Eric Zimmerman 工具进行 Windows 痕迹分析
概述
Eric Zimmerman 的 EZ Tools 套件是一组开源取证实用工具,已成为 Windows 数字取证调查的全球标准。这些工具最初由一位前 FBI 特工、现任 SANS 讲师开发,用于解析和分析关键的 Windows 痕迹,包括主文件表($MFT)、注册表配置单元、prefetch 文件、事件日志、快捷方式(LNK)文件以及跳转列表。该套件可与 KAPE(Kroll Artifact Parser and Extractor)集成,实现痕迹的自动化收集与处理,生成结构化 CSV 输出,可导入 Timeline Explorer 进行可视化分析。EZ Tools 被全球执法机构、企业事件响应人员和取证顾问广泛使用。
何时使用
- 当开展涉及使用 Eric Zimmerman 工具进行 Windows 痕迹分析的安全评估时
- 当遵循针对相关安全事件的事件响应流程时
- 当执行计划内的安全测试或审计活动时
- 当通过动手测试验证安全控制措施时
前置条件
- Windows 10/11 或 Windows Server 2016+ 分析工作站
- 已安装 .NET 6 Runtime(EZ Tools v2.x+ 所需)
- 分析工作站上的管理员权限
- 来自目标系统的取证磁盘镜像或分类采集数据
- 至少 8 GB RAM(处理大型数据集建议 16 GB)
- 熟悉 NTFS 文件系统结构和 Windows 内部机制
工具套件组件
KAPE(Kroll Artifact Parser and Extractor)
KAPE 是主要的编排工具,可自动化痕迹收集(Targets)和处理(Modules)。它使用配置文件(.tkape 和 .mkape)定义要收集哪些痕迹以及针对这些痕迹运行哪些 EZ Tools。
安装与设置:
# Download KAPE from https://www.kroll.com/en/services/cyber-risk/incident-response-litigation-support/kroll-artifact-parser-extractor-kape
# Extract to C:\Tools\KAPE
# Update KAPE targets and modules
C:\Tools\KAPE\gkape.exe # GUI version
C:\Tools\KAPE\kape.exe # CLI version
# Sync latest EZ Tools binaries
C:\Tools\KAPE\Get-KAPEUpdate.ps1
运行 KAPE 收集与处理:
# Collect artifacts from E: drive (mounted forensic image) and process with EZ Tools
kape.exe --tsource E: --tdest C:\Cases\Case001\Collection --target KapeTriage --mdest C:\Cases\Case001\Processed --module !EZParser
# Collect specific artifact categories
kape.exe --tsource E: --tdest C:\Cases\Case001\Collection --target FileSystem,RegistryHives,EventLogs --mdest C:\Cases\Case001\Processed --module MFTECmd,RECmd,EvtxECmd
# Live system triage collection (run as administrator)
kape.exe --tsource C: --tdest D:\LiveTriage\Collection --target KapeTriage --mdest D:\LiveTriage\Processed --module !EZParser --vhdx LiveTriageImage
MFTECmd - 主文件表解析器
MFTECmd 将 NTFS $MFT、$J(USN Journal)、$Boot、$SDS 和 $LogFile 解析为人类可读的 CSV 格式。
# Parse the $MFT file
MFTECmd.exe -f "C:\Cases\Evidence\$MFT" --csv C:\Cases\Output --csvf MFT_output.csv
# Parse the USN Journal ($J)
MFTECmd.exe -f "C:\Cases\Evidence\$J" --csv C:\Cases\Output --csvf USNJournal_output.csv
# Parse $Boot for volume information
MFTECmd.exe -f "C:\Cases\Evidence\$Boot" --csv C:\Cases\Output --csvf Boot_output.csv
# Parse $SDS for security descriptors
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 - Prefetch 文件解析器
PECmd 解析 Windows Prefetch 文件(.pf),以提供程序执行的证据,包括运行次数和时间戳。
# Parse all prefetch files from a directory
PECmd.exe -d "C:\Cases\Evidence\Windows\Prefetch" --csv C:\Cases\Output --csvf Prefetch_output.csv
# Parse a single prefetch file with verbose output
PECmd.exe -f "C:\Cases\Evidence\Windows\Prefetch\CMD.EXE-4A81B364.pf" --json C:\Cases\Output
# Parse prefetch with keyword filtering
PECmd.exe -d "C:\Cases\Evidence\Windows\Prefetch" -k "powershell,cmd,wscript,cscript,mshta" --csv C:\Cases\Output --csvf SuspiciousExec.csv
RECmd - 注册表资源管理器命令行
RECmd 使用定义要提取哪些键和值的批处理文件处理 Windows 注册表配置单元。
# Process all registry hives with the default batch file
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
# Process a single 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
# Process SYSTEM hive for USB device history
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 映射。
# Parse all event logs from a directory
EvtxECmd.exe -d "C:\Cases\Evidence\Windows\System32\winevt\Logs" --csv C:\Cases\Output --csvf EventLogs_output.csv
# Parse a single event log
EvtxECmd.exe -f "C:\Cases\Evidence\Security.evtx" --csv C:\Cases\Output --csvf Security_output.csv
# Parse with custom maps for enhanced field extraction
EvtxECmd.exe -d "C:\Cases\Evidence\Logs" --csv C:\Cases\Output --maps C:\Tools\KAPE\Modules\bin\EvtxECmd\Maps
LECmd 和 JLECmd - 快捷方式与跳转列表解析器
# Parse LNK files from Recent directory
LECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Cases\Output --csvf LNK_output.csv
# Parse Jump Lists (automatic destinations)
JLECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Cases\Output --csvf JumpLists_auto.csv
# Parse Jump Lists (custom destinations)
JLECmd.exe -d "C:\Cases\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Cases\Output --csvf JumpLists_custom.csv
SBECmd - Shellbag 资源管理器命令行
# Parse shellbags from a directory of registry hives
SBECmd.exe -d "C:\Cases\Evidence\Registry" --csv C:\Cases\Output --csvf Shellbags_output.csv
# Parse shellbags from a live system (requires admin)
SBECmd.exe --live --csv C:\Cases\Output --csvf LiveShellbags_output.csv
Timeline Explorer - 可视化分析
Timeline Explorer 是用于分析所有 EZ Tools 生成的 CSV 输出的 GUI 工具。它支持筛选、排序、列分组和条件格式。
# Launch Timeline Explorer and open CSV output
TimelineExplorer.exe "C:\Cases\Output\MFT_output.csv"
Timeline Explorer 的主要功能:
- 使用正则表达式进行列级筛选
- 针对时间戳异常的条件格式
- 用于时间线分析的多列排序
- 将筛选结果导出为新的 CSV 文件
- 为关注的行动添加书签
调查工作流
第 1 步:使用 KAPE 收集痕迹
# Full triage collection from forensic image mounted at E:
kape.exe --tsource E: --tdest C:\Cases\Case001\Collected --target KapeTriage --vhdx TriageImage --zv false
第 2 步:使用 EZ Tools 处理痕迹
# Process all collected artifacts
kape.exe --msource C:\Cases\Case001\Collected --mdest C:\Cases\Case001\Processed --module !EZParser
步骤 3:时间线分析
- 在 Timeline Explorer 中打开已处理的 CSV 文件
- 按时间戳列排序,建立时间顺序
- 筛选特定的文件扩展名、路径或事件 ID
- 将 MFT 时间戳与事件日志条目交叉比对
- 通过比较 $SI 和 $FN 时间戳来识别时间戳篡改
- 使用书签记录发现结果,并导出筛选后的视图
步骤 4:时间戳篡改检测
# In Timeline Explorer, compare these columns:
# Created0x10 ($STANDARD_INFORMATION) vs Created0x30 ($FILE_NAME)
# If Created0x10 < Created0x30, timestomping is indicated
# $FILE_NAME timestamps are harder to manipulate than $STANDARD_INFORMATION
取证痕迹参考
| 工具 | 痕迹 | 位置 |
|---|---|---|
| MFTECmd | $MFT | NTFS 卷根目录 |
| MFTECmd | $J(USN Journal) | $Extend$UsnJrnl:$J |
| PECmd | Prefetch 文件 | C:\Windows\Prefetch*.pf |
| RECmd | NTUSER.DAT | C:\Users{user}\NTUSER.DAT |
| RECmd | SYSTEM 配置单元 | C:\Windows\System32\config\SYSTEM |
| RECmd | SAM 配置单元 | C:\Windows\System32\config\SAM |
| RECmd | SOFTWARE 配置单元 | 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 | Shellbags | NTUSER.DAT 和 UsrClass.dat 注册表配置单元 |
常见调查场景
恶意软件执行证据
- 使用 PECmd 解析 Prefetch,识别已执行的二进制文件
- 与 MFT 交叉比对,获取文件创建时间戳
- 使用 RECmd 检查 Amcache.hve,获取可执行文件的 SHA1 哈希值
- 与进程创建的事件日志条目关联(事件 ID 4688)
数据外泄调查
- 使用 MFTECmd 解析 USN Journal,查找文件重命名/删除操作
- 使用 LECmd 分析 LNK 文件,查找最近访问的文档
- 使用 SBECmd 查看 Shellbags,了解目录浏览活动
- 使用 RECmd 检查 SYSTEM 注册表中的 USB 设备连接记录
横向移动检测
- 使用 EvtxECmd 解析 Security.evtx,查找登录事件(4624、4625)
- 分析与 RDP 相关的事件日志(Microsoft-Windows-TerminalServices)
- 与 SMB 日志中的网络共享访问记录交叉比对
- 检查计划任务和服务,查找持久化机制
输出格式与集成
所有 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:战场取证与数据采集