事件日志分析工具
前置说明
Windows EVTX 日志是二进制格式,需要专用工具解析和分析
本页覆盖从单机 CLI 到企业级威胁狩猎的全栈工具链
推荐工作流:收集 EVTX → EvtxECmd 解析 → Hayabusa 狩猎 → Timeline Explorer 可视化
关联页面:03-事件日志分析 | 32-Sysmon部署与规则编写 | 28-日志分析工具
一、EvtxECmd — Eric Zimmerman EVTX 解析器 1.1 概述 Eric Zimmerman 开发的命令行 EVTX 解析工具,是 EZ Tools 套件的核心组件之一
将 EVTX 二进制日志转换为 CSV/JSON 格式,便于后续分析
核心优势: Maps 系统可以将 EventData 中的原始字段映射为人类可读的列
下载:https://ericzimmerman.github.io/#!index.md
1.2 基本用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 EvtxECmd.exe -f "C:\Evidence\Security.evtx" --csv C:\Evidence\parsed\ --csvf security_parsed.csv EvtxECmd.exe -d "C:\Evidence\evtx_files\" --csv C:\Evidence\parsed\ --csvf all_events.csv EvtxECmd.exe -d "C:\Evidence\evtx_files\" --json C:\Evidence\parsed\ --jsonf all_events.json EvtxECmd.exe -f "C:\Evidence\Security.evtx" --csv C:\Evidence\parsed\ --csvf filtered.csv ` --sd "2025-01-01 00:00:00" --ed "2025-01-31 23:59:59" EvtxECmd.exe -d "C:\Evidence\evtx_files\" --csv C:\Evidence\parsed\ --csvf mapped.csv --maps C:\Tools\EvtxECmd\Maps\
1.3 Maps 系统 Maps 是 YAML 格式的映射文件,将 EventData 中的 XML 字段提取到标准 CSV 列
1 2 3 4 5 6 7 8 9 10 EvtxECmd.exe --sync
有了 Maps,CSV 输出中会包含如 UserName、LogonType、SourceIP 等直观列
没有 Maps 时,EventData 会作为原始 XML 字符串存储在 Payload 列中
1.4 输出字段说明
字段
说明
TimeCreated
事件时间(UTC)
EventId
事件 ID
Level
级别(Info/Warning/Error/Critical)
Provider
事件来源
Channel
日志通道
Computer
计算机名
MapDescription
Maps 映射描述
UserName
用户名(Maps 提取)
PayloadData1-6
Maps 提取的关键字段
Payload
原始 EventData XML
二、Hayabusa — 快速 EVTX 威胁狩猎 2.1 概述 Yamato Security 开发的高速多线程 EVTX 分析器
使用 Rust 编写,速度极快
内置 Sigma 规则支持 + 自定义 Hayabusa 规则
GitHub: https://github.com/Yamato-Security/hayabusa
2.2 主要功能 csv-timeline : 生成时间线 CSV(最常用)
json-timeline : 生成 JSON 时间线
logon-summary : 登录活动汇总
eid-metrics : 事件 ID 统计
pivot-keywords-list : 提取可疑关键词列表
search : 关键词搜索
computer-metrics : 按计算机名统计
2.3 实战用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 hayabusa.exe csv-timeline -d "C:\Evidence\evtx_files\" -o C:\Evidence\hayabusa_timeline.csv hayabusa.exe csv-timeline -d "C:\Evidence\evtx_files\" -o C:\Evidence\high_alerts.csv -m high hayabusa.exe json-timeline -d "C:\Evidence\evtx_files\" -o C:\Evidence\hayabusa_timeline.jsonl hayabusa.exe logon-summary -d "C:\Evidence\evtx_files\" -o C:\Evidence\logon_summary.csv hayabusa.exe eid-metrics -d "C:\Evidence\evtx_files\" -o C:\Evidence\eid_metrics.csv hayabusa.exe search -d "C:\Evidence\evtx_files\" -k "mimikatz" -o C:\Evidence\search_results.csv hayabusa.exe search -d "C:\Evidence\evtx_files\" -k "powershell -enc" -o C:\Evidence\search_encoded_ps.csv hayabusa.exe pivot-keywords-list -d "C:\Evidence\evtx_files\" -o C:\Evidence\pivot_keywords.txt hayabusa.exe csv-timeline -d "C:\Evidence\evtx_files\" -o C:\Evidence\custom_rules.csv ` -r C:\Tools\sigma-rules \ hayabusa.exe update-rules
2.4 输出分析 Hayabusa CSV 输出的关键列:
Timestamp: 事件时间
RuleTitle: 触发的规则名称
Level: 告警级别(info/low/med/high/crit)
Computer: 计算机名
Channel: 日志通道
EventID: 事件 ID
Details: 事件摘要
MitreTactics / MitreTags: MITRE ATT&CK 映射
建议用 Timeline Explorer 或 Excel 打开 CSV,按 Level 降序排列
2.5 与 Sigma 规则的关系 Hayabusa 内置了大量 Sigma 规则(来自 SigmaHQ 仓库)
Sigma 是日志检测规则的通用格式,类似安全界的 “YARA for logs”
Hayabusa 将 Sigma 规则编译为高效的检测引擎
可以添加自定义 Sigma 规则到 rules/ 目录
三、Chainsaw — Sigma 规则扫描器 3.1 概述 WithSecure(原 F-Secure)开发的快速 EVTX 分析工具
Rust 编写,专注于使用 Sigma 规则和自定义规则扫描日志
GitHub: https://github.com/WithSecureLabs/chainsaw
3.2 使用方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 chainsaw.exe hunt "C:\Evidence\evtx_files\" ` -s "C:\Tools\sigma\rules\windows\" ` --mapping "C:\Tools\chainsaw\mappings\sigma-event-logs-all.yml" chainsaw.exe hunt "C:\Evidence\evtx_files\" ` -r "C:\Tools\chainsaw\rules\" chainsaw.exe hunt "C:\Evidence\evtx_files\" ` -s "C:\Tools\sigma\rules\windows\" ` --mapping "C:\Tools\chainsaw\mappings\sigma-event-logs-all.yml" ` --csv --output C:\Evidence\chainsaw_results.csv chainsaw.exe hunt "C:\Evidence\evtx_files\" ` -s "C:\Tools\sigma\rules\windows\" ` --mapping "C:\Tools\chainsaw\mappings\sigma-event-logs-all.yml" ` --json --output C:\Evidence\chainsaw_results.json chainsaw.exe search "C:\Evidence\evtx_files\" -s "mimikatz" chainsaw.exe search "C:\Evidence\evtx_files\" -s "192.168.1.100" chainsaw.exe hunt "C:\Evidence\evtx_files\" ` -s "C:\Tools\sigma\rules\" ` --mapping "C:\Tools\chainsaw\mappings\sigma-event-logs-all.yml" ` --from "2025-01-01T00:00:00" --to "2025-01-31T23:59:59"
3.3 Chainsaw vs Hayabusa
特性
Chainsaw
Hayabusa
开发者
WithSecure
Yamato Security
语言
Rust
Rust
Sigma 支持
外部加载
内置 + 外部
自有规则
Chainsaw rules
Hayabusa rules
时间线生成
基础
丰富(多种格式)
登录分析
无
logon-summary
统计功能
无
eid-metrics, computer-metrics
输出格式
Table/CSV/JSON
CSV/JSON/JSONL
速度
快
快
建议:两者都运行一次,交叉验证结果
四、LogParser 与 LogParser Studio 4.1 LogParser 概述 Microsoft 出品的日志查询工具,使用类 SQL 语法查询各种日志格式
支持:EVTX、CSV、TSV、XML、W3C(IIS)、Registry、ETL 等
下载:Microsoft Download Center 搜索 “Log Parser 2.2”
4.2 常用查询示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 LogParser.exe "SELECT TimeGenerated, EXTRACT_TOKEN(Strings, 5, '|') AS TargetUser, EXTRACT_TOKEN(Strings, 10, '|') AS FailureReason, EXTRACT_TOKEN(Strings, 19, '|') AS SourceIP FROM 'C:\Evidence\Security.evtx' WHERE EventID = 4625 ORDER BY TimeGenerated DESC" -i :EVT -o :CSV > C:\Evidence\failed_logons.csvLogParser.exe "SELECT TimeGenerated, EXTRACT_TOKEN(Strings, 0, '|') AS ServiceName, EXTRACT_TOKEN(Strings, 1, '|') AS ImagePath, EXTRACT_TOKEN(Strings, 4, '|') AS StartType FROM 'C:\Evidence\System.evtx' WHERE EventID = 7045 ORDER BY TimeGenerated DESC" -i :EVT -o :CSV > C:\Evidence\new_services.csvLogParser.exe "SELECT QUANTIZE(TimeGenerated, 86400) AS Day, COUNT(*) AS EventCount FROM 'C:\Evidence\Security.evtx' GROUP BY Day ORDER BY Day" -i :EVT -o :CSVLogParser.exe "SELECT TimeGenerated, EventID, SourceName, Message FROM 'C:\Evidence\Security.evtx' WHERE TimeGenerated > '2025-01-15 08:00:00' AND TimeGenerated < '2025-01-15 20:00:00' ORDER BY TimeGenerated" -i :EVT -o :CSV > C:\Evidence\timerange.csvLogParser.exe "SELECT TOP 10 EXTRACT_TOKEN(Strings, 19, '|') AS SourceIP, COUNT(*) AS LoginCount FROM 'C:\Evidence\Security.evtx' WHERE EventID = 4624 AND EXTRACT_TOKEN(Strings, 8, '|') = '10' GROUP BY SourceIP ORDER BY LoginCount DESC" -i :EVT
4.3 LogParser Studio LogParser 的 GUI 前端,提供:
可视化查询编辑器
预置查询模板库(含常见 IR 查询)
图表输出(柱状图、饼图、折线图)
多数据源联合查询
适合不熟悉命令行的分析师使用
下载:Microsoft Download Center 搜索 “Log Parser Studio”
五、DeepBlueCLI — PowerShell 威胁狩猎 5.1 概述 SANS 开发的 PowerShell 脚本,专门用于 Windows 事件日志威胁狩猎
GitHub: https://github.com/sans-blue-team/DeepBlueCLI
无需安装,直接运行 PowerShell 脚本
5.2 使用方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .\DeepBlue.ps1 -log Security .\DeepBlue.ps1 -log System .\DeepBlue.ps1 -log "Microsoft-Windows-PowerShell/Operational" .\DeepBlue.ps1 "C:\Evidence\Security.evtx" .\DeepBlue.ps1 "C:\Evidence\System.evtx" .\DeepBlue.ps1 "C:\Evidence\Microsoft-Windows-PowerShell%4Operational.evtx" .\DeepBlue.ps1 "C:\Evidence\Security.evtx" | Export-Csv C:\Evidence\deepblue_results.csv -NoTypeInformation
5.3 检测能力
检测项
数据源
暴力破解(多次登录失败)
Security 4625
Password Spray
Security 4625
用户添加到管理员组
Security 4732
新服务安装
System 7045
可疑的服务命令行
System 7045
PowerShell 混淆命令
PowerShell 4104
PowerShell 下载 cradle
PowerShell 4104
Mimikatz 使用
Security 4624 (LogonType 9)
日志清除
Security 1102
六、APT-Hunter 6.1 概述 自动化 Windows 事件日志分析工具,专注于 APT 攻击检测
GitHub: https://github.com/ahmedkhlief/APT-Hunter
Python 编写,支持离线 EVTX 分析
6.2 使用方法 1 2 3 4 5 6 7 8 python APT-Hunter .py -p "C:\Evidence\evtx_files\" -o C:\Evidence\apthunter_output\ -allreport python APT-Hunter .py -p "C:\Evidence\evtx_files\" -o C:\Evidence\apthunter_output\ -t Security python APT-Hunter .py -p "C:\Evidence\evtx_files\" -o C:\Evidence\apthunter_output\ -allreport --excel
6.3 特点 内置 APT 攻击模式检测(不依赖 Sigma)
自动生成 HTML 报告
按风险等级分类告警
支持 MITRE ATT&CK 映射
适合快速获取全面的分析报告
七、Timeline Explorer — CSV 可视化分析 7.1 概述 Eric Zimmerman 开发的 CSV 可视化分析工具
专为大型 CSV 文件设计(百万行级别也能流畅)
支持过滤、排序、搜索、列重排等操作
7.2 使用方法 直接打开 EvtxECmd、Hayabusa、KAPE 等工具生成的 CSV 文件
关键功能:
列过滤器: 右键列标题 → Filter → 输入过滤条件
搜索高亮: Ctrl+F 搜索关键词
排序: 点击列标题排序
时间线视图: 按时间排列所有事件
导出筛选结果: File → Export 导出过滤后的数据
IR 工作流:
打开 Hayabusa 或 EvtxECmd 的 CSV 输出
按 Level/Severity 降序排列
过滤关注的时间范围
搜索特定 IP、用户名或进程名
导出筛选结果用于报告
7.3 性能特点 基于 .NET WPF 开发
使用虚拟化渲染,即使打开百万行 CSV 也很流畅
支持 Excel-like 的列操作
远优于 Excel 处理大型 CSV(Excel 有 1,048,576 行限制)
八、EvtxExplorer — GUI 浏览器 8.1 概述 GUI 工具,用于直观浏览 EVTX 文件内容
提供树形结构、事件详情面板、XML 视图
适合手动检查特定事件的完整 XML 数据
8.2 适用场景 需要查看事件的完整 XML 结构时
调试 Maps 映射或 Sigma 规则时
手动分析单个可疑事件时
不适合大规模分析(此时应使用 Hayabusa/EvtxECmd)
九、工具对比总结 9.1 功能对比表
工具
类型
速度
Sigma 支持
输出格式
上手难度
最佳场景
EvtxECmd
CLI 解析器
快
否(Maps)
CSV/JSON
低
EVTX → CSV 转换
Hayabusa
CLI 威胁狩猎
极快
是
CSV/JSON
低
大规模威胁狩猎
Chainsaw
CLI 规则扫描
极快
是
CSV/JSON/Table
低
Sigma 规则扫描
LogParser
CLI SQL 查询
中
否
CSV/Table/Chart
中
灵活的自定义查询
DeepBlueCLI
PowerShell
慢
否
PowerShell 对象
极低
快速本地检查
APT-Hunter
Python 分析器
中
否
HTML/Excel
低
自动化报告生成
Timeline Explorer
GUI 可视化
快
否
-
极低
CSV 浏览与过滤
EvtxExplorer
GUI 浏览器
中
否
-
极低
单事件详情查看
9.2 推荐工具组合 最小化工具包(U 盘 IR):
EvtxECmd + Hayabusa + Timeline Explorer
全面分析工具包:
EvtxECmd + Hayabusa + Chainsaw + Timeline Explorer + DeepBlueCLI
自动化管线:
KAPE (收集) → EvtxECmd (解析) → Hayabusa (狩猎) → Timeline Explorer (可视化)
十、实战工作流 10.1 完整分析管线 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 robocopy "\\target\C$ \Windows\System32\winevt\Logs" "C:\Evidence\evtx\" *.evtx /MT:4 EvtxECmd.exe -d "C:\Evidence\evtx\" --csv "C:\Evidence\parsed\" --csvf all_events.csv hayabusa.exe csv-timeline -d "C:\Evidence\evtx\" -o "C:\Evidence\hayabusa_timeline.csv" hayabusa.exe csv-timeline -d "C:\Evidence\evtx\" -o "C:\Evidence\high_alerts.csv" -m high hayabusa.exe logon-summary -d "C:\Evidence\evtx\" -o "C:\Evidence\logon_summary.csv" chainsaw.exe hunt "C:\Evidence\evtx\" -s sigma_rules\windows\ ` --mapping mappings\sigma-event-logs-all .yml --csv --output "C:\Evidence\chainsaw_results.csv" .\DeepBlue.ps1 "C:\Evidence\evtx\Security.evtx" | Export-Csv "C:\Evidence\deepblue_security.csv" -NoTypeInformation .\DeepBlue.ps1 "C:\Evidence\evtx\System.evtx" | Export-Csv "C:\Evidence\deepblue_system.csv" -NoTypeInformation
10.2 自动化脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 param ( [Parameter (Mandatory =$true )] [string ]$EvtxDir , [string ]$OutputDir = "C:\Evidence\Analysis_$ (Get-Date -Format 'yyyyMMdd_HHmmss')" ) $toolsDir = "C:\Tools" New-Item -ItemType Directory -Path $OutputDir -Force | Out-Null Write-Host "[*] Starting automated EVTX analysis pipeline..." -ForegroundColor CyanWrite-Host "[*] Input: $EvtxDir " -ForegroundColor CyanWrite-Host "[*] Output: $OutputDir " -ForegroundColor CyanWrite-Host "[+] Phase 1: Parsing with EvtxECmd..." & "$toolsDir \EvtxECmd\EvtxECmd.exe" -d $EvtxDir --csv $OutputDir --csvf "evtxecmd_parsed.csv" Write-Host "[+] Phase 2: Threat hunting with Hayabusa..." & "$toolsDir \hayabusa\hayabusa.exe" csv-timeline -d $EvtxDir -o "$OutputDir \hayabusa_timeline.csv" & "$toolsDir \hayabusa\hayabusa.exe" csv-timeline -d $EvtxDir -o "$OutputDir \hayabusa_high.csv" -m high & "$toolsDir \hayabusa\hayabusa.exe" logon-summary -d $EvtxDir -o "$OutputDir \logon_summary.csv" & "$toolsDir \hayabusa\hayabusa.exe" eid-metrics -d $EvtxDir -o "$OutputDir \eid_metrics.csv" Write-Host "[+] Phase 3: Sigma scanning with Chainsaw..." & "$toolsDir \chainsaw\chainsaw.exe" hunt $EvtxDir ` -s "$toolsDir \sigma\rules\windows\" ` --mapping "$toolsDir \chainsaw\mappings\sigma-event-logs-all.yml" ` --csv --output "$OutputDir \chainsaw_results.csv" Write-Host "[*] Analysis complete!" -ForegroundColor GreenWrite-Host "[*] Results in: $OutputDir " -ForegroundColor GreenGet-ChildItem $OutputDir -File | Format-Table Name, @ {N='SizeMB' ;E={[math ]::Round($_ .Length/1 MB,2 )}} -AutoSize
参考链接 Eric Zimmerman Tools
Hayabusa GitHub
Chainsaw GitHub
SigmaHQ Rules
DeepBlueCLI
APT-Hunter
关联页面:03-事件日志分析 | 32-Sysmon部署与规则编写 | 28-日志分析工具