extracting-windows-event-logs-artifacts
使用 Chainsaw、Hayabusa 和 EvtxECmd 提取、解析和分析 Windows 事件日志(EVTX),以检测横向移动、持久化和权限提升。
Best use case
extracting-windows-event-logs-artifacts is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 Chainsaw、Hayabusa 和 EvtxECmd 提取、解析和分析 Windows 事件日志(EVTX),以检测横向移动、持久化和权限提升。
Teams using extracting-windows-event-logs-artifacts should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/extracting-windows-event-logs-artifacts/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How extracting-windows-event-logs-artifacts Compares
| Feature / Agent | extracting-windows-event-logs-artifacts | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用 Chainsaw、Hayabusa 和 EvtxECmd 提取、解析和分析 Windows 事件日志(EVTX),以检测横向移动、持久化和权限提升。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 提取 Windows 事件日志制品
## 适用场景
- 通过事件日志分析调查 Windows 系统上的安全事件时
- 检测横向移动、权限提升和持久化机制时
- 在 Windows 事件日志数据中进行威胁狩猎时
- 在需要审查身份验证和访问事件的合规审计中
- 从 Windows 系统活动构建取证时间线时
## 前置条件
- 来自取证镜像或实时系统的 Windows 事件日志文件(EVTX 格式)
- Chainsaw、Hayabusa 或 EvtxECmd 用于解析和检测
- Sigma 规则用于自动化威胁检测
- 了解关键 Windows 事件 ID
- 安装 python-evtx 或 evtx 库的 Python,用于自定义解析
- PowerShell 用于实时系统分析(如适用)
## 工作流程
### 步骤 1:收集 Windows 事件日志文件
```bash
# 从取证镜像提取 EVTX 文件
mount -o ro,loop,offset=$((2048*512)) /cases/case-2024-001/images/evidence.dd /mnt/evidence
mkdir -p /cases/case-2024-001/evtx/
cp /mnt/evidence/Windows/System32/winevt/Logs/*.evtx /cases/case-2024-001/evtx/
# 需要优先处理的关键事件日志:
# Security.evtx - 身份验证、授权、审计事件
# System.evtx - 系统服务、驱动程序、硬件事件
# Microsoft-Windows-Sysmon%4Operational.evtx - 详细的进程/网络监控
# Microsoft-Windows-PowerShell%4Operational.evtx - PowerShell 活动
# Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx - RDP 会话
# Microsoft-Windows-TaskScheduler%4Operational.evtx - 计划任务
# 哈希验证
sha256sum /cases/case-2024-001/evtx/*.evtx > /cases/case-2024-001/evtx/evtx_hashes.txt
```
### 步骤 2:使用 Chainsaw 进行基于 Sigma 的检测
```bash
# 使用内置 Sigma 规则运行 Chainsaw
/opt/chainsaw/chainsaw hunt /cases/case-2024-001/evtx/ \
-s /opt/chainsaw/sigma/rules/ \
--mapping /opt/chainsaw/mappings/sigma-event-logs-all.yml \
--output /cases/case-2024-001/analysis/chainsaw_results.txt
# 使用 CSV 输出方便分析
/opt/chainsaw/chainsaw hunt /cases/case-2024-001/evtx/ \
-s /opt/chainsaw/sigma/rules/ \
--mapping /opt/chainsaw/mappings/sigma-event-logs-all.yml \
--csv --output /cases/case-2024-001/analysis/chainsaw_results/
# 搜索特定关键词
/opt/chainsaw/chainsaw search /cases/case-2024-001/evtx/ \
-s "mimikatz" --json
# 搜索特定事件 ID
/opt/chainsaw/chainsaw search /cases/case-2024-001/evtx/ \
-e 4688 --json | head -100
```
### 步骤 3:使用 Hayabusa 快速生成时间线
```bash
# 生成包含所有检测规则的 CSV 时间线
/opt/hayabusa/hayabusa csv-timeline \
-d /cases/case-2024-001/evtx/ \
-o /cases/case-2024-001/analysis/hayabusa_timeline.csv \
-p verbose
# 仅使用严重和高危严重性检测运行
/opt/hayabusa/hayabusa csv-timeline \
-d /cases/case-2024-001/evtx/ \
-o /cases/case-2024-001/analysis/hayabusa_critical.csv \
-p verbose --min-level critical
# 生成登录摘要
/opt/hayabusa/hayabusa logon-summary \
-d /cases/case-2024-001/evtx/ \
-o /cases/case-2024-001/analysis/logon_summary.csv
```
### 步骤 4:解析特定关键事件 ID
```bash
pip install evtx
python3 << 'PYEOF'
import json
from evtx import PyEvtxParser
parser = PyEvtxParser("/cases/case-2024-001/evtx/Security.evtx")
# 关键事件 ID 映射
critical_events = {
'4624': '成功登录',
'4625': '登录失败',
'4634': '注销',
'4648': '显式凭据登录',
'4672': '分配了特殊权限',
'4688': '进程已创建',
'4697': '服务已安装',
'4698': '计划任务已创建',
'4720': '用户账户已创建',
'1102': '审计日志已清除',
}
results = {eid: [] for eid in critical_events}
for record in parser.records_json():
data = json.loads(record['data'])
event_id = str(data['Event']['System']['EventID'])
if event_id in critical_events:
event_data = data['Event'].get('EventData', {})
results[event_id].append({
'timestamp': data['Event']['System']['TimeCreated']['#attributes']['SystemTime'],
'event_id': event_id,
'description': critical_events[event_id],
'data': event_data
})
for eid, events in results.items():
if events:
print(f"\n[{eid}] {critical_events[eid]}:{len(events)} 个事件")
for e in events[:3]:
print(f" {e['timestamp']}:{json.dumps(e['data'], default=str)[:200]}")
with open('/cases/case-2024-001/analysis/critical_events.json', 'w') as f:
json.dump(results, f, indent=2, default=str)
PYEOF
```
### 步骤 5:检测特定攻击模式
```bash
# 检测哈希传递(Logon Type 9 + NTLM)
python3 << 'PYEOF'
import json
from evtx import PyEvtxParser
parser = PyEvtxParser("/cases/case-2024-001/evtx/Security.evtx")
print("=== 哈希传递指标 ===")
print("查找条件:事件 4624,Logon Type 9,NTLM 身份验证\n")
for record in parser.records_json():
data = json.loads(record['data'])
if str(data['Event']['System']['EventID']) == '4624':
event_data = data['Event'].get('EventData', {})
logon_type = str(event_data.get('LogonType', ''))
auth_package = str(event_data.get('AuthenticationPackageName', ''))
if logon_type == '9' and 'NTLM' in auth_package:
timestamp = data['Event']['System']['TimeCreated']['#attributes']['SystemTime']
target = event_data.get('TargetUserName', 'Unknown')
source_ip = event_data.get('IpAddress', 'N/A')
print(f" [{timestamp}] PtH:用户={target},IP={source_ip},认证方式={auth_package}")
PYEOF
# 检测日志清除/反取证行为
python3 << 'PYEOF'
import json
from evtx import PyEvtxParser
for log_file in ['Security.evtx', 'System.evtx']:
path = f"/cases/case-2024-001/evtx/{log_file}"
try:
parser = PyEvtxParser(path)
for record in parser.records_json():
data = json.loads(record['data'])
event_id = str(data['Event']['System']['EventID'])
if event_id in ('1102', '104'): # 安全日志清除、系统日志清除
timestamp = data['Event']['System']['TimeCreated']['#attributes']['SystemTime']
print(f"日志已清除:[{timestamp}] 事件 ID {event_id} 在 {log_file} 中")
except Exception as e:
print(f"解析 {log_file} 时出错:{e}")
PYEOF
```
## 关键概念
| 概念 | 描述 |
|------|------|
| EVTX 格式 | Vista/Server 2008 引入的基于二进制 XML 的 Windows 事件日志格式 |
| 事件 ID | 特定事件类型的数字标识符(例如,4624 = 成功登录) |
| 登录类型(Logon types) | 身份验证方法的分类(2=交互式,3=网络,10=RDP) |
| Sigma 规则 | 映射到特定 SIEM/日志查询的通用检测签名 |
| Sysmon | 提供详细进程和网络事件的 Microsoft 系统监控驱动程序 |
| 审计策略 | 控制 Windows 记录哪些事件的 GPO 设置 |
| 事件转发(WEF) | 用于集中事件日志收集的 Windows 机制 |
## 工具与系统
| 工具 | 用途 |
|------|------|
| Chainsaw | 基于 Sigma 的 EVTX 分析和威胁狩猎工具 |
| Hayabusa | 快速 Windows 事件日志取证时间线生成器 |
| EvtxECmd | Eric Zimmerman 的命令行 EVTX 解析器,支持 CSV/JSON 输出 |
| python-evtx | 用于 EVTX 文件解析的 Python 库 |
| Event Log Explorer | 用于浏览和分析 EVTX 文件的 GUI 工具 |
| KAPE | 包含事件日志的自动化分类收集工具 |
| Velociraptor | 具有 EVTX 收集和狩猎制品的端点 Agent |
## 常见场景
**场景 1:横向移动检测**
过滤 Logon Type 3(网络)和 Type 10(RDP)的事件 4624,识别异常的源-目标对,检查表示哈希传递的事件 4648(显式凭据),与目标系统上的进程创建事件(4688)相关联。
**场景 2:权限提升检测**
搜索意外用户的事件 4672(分配了特殊权限),检查将用户添加到管理员组的事件 4728/4732(组成员变更),查找表示新系统级访问的事件 4697(服务安装),与账户创建(4720)相关联。
**场景 3:PowerShell 攻击检测**
分析 PowerShell 操作日志中的脚本块日志记录(事件 4104),在事件 4688 中搜索编码命令,检测 AMSI 绕过尝试,识别下载执行器和已知攻击工具的调用。
**场景 4:勒索软件事件重建**
从初始访问开始构建时间线(来自外部 IP 的 4624),通过组成员变更追踪权限提升,识别用于持久化的服务安装,查找加密可执行文件的进程创建事件,检测系统日志中的卷影副本删除。Related Skills
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
investigating-ransomware-attack-artifacts
识别、收集和分析勒索软件攻击制品,以确定变种、初始访问向量、加密范围和恢复选项。
implementing-network-intrusion-prevention-with-suricata
使用自定义规则、Emerging Threats 规则集和内联流量检测部署和配置 Suricata 作为网络入侵防御系统,实现实时威胁阻断。
implementing-code-signing-for-artifacts
本技能涵盖为构建产物实施代码签名,以确保软件供应链中的完整性和真实性。 内容包括使用 GPG、Sigstore 和平台专用签名工具对二进制文件、软件包和容器进行签名, 建立信任链,以及在部署管道中验证签名。
hunting-for-persistence-mechanisms-in-windows
系统性地狩猎 Windows 终端中的攻击者持久化机制,涵盖注册表、服务、启动文件夹和 WMI 事件订阅。
hunting-for-lolbins-execution-in-endpoint-logs
通过分析终端进程创建日志,识别合法 Windows 系统二进制文件(LOLBin)被用于恶意目的的可疑执行模式,狩猎攻击者的 LOLBin 滥用行为。
hardening-windows-endpoint-with-cis-benchmark
使用 CIS(互联网安全中心)Benchmark 建议对 Windows 端点进行加固, 以减少攻击面、执行安全基线并满足合规要求。适用于部署新 Windows 工作站或服务器、 修复审计发现或为组织建立全面安全基线的场景。适用于涉及 Windows 加固、 CIS Benchmark、GPO 安全基线或端点配置合规的请求。
extracting-memory-artifacts-with-rekall
使用 Rekall 内存取证框架分析内存转储,检测进程空洞化(process hollowing)、通过 VAD 异常注入的代码、隐藏进程和 rootkit。应用 pslist、psscan、vadinfo、malfind 和 dlllist 等插件从 Windows 内存镜像中提取取证工件。适用于应急响应内存分析场景。
extracting-iocs-from-malware-samples
从恶意软件样本中提取攻陷指标(IoC),包括文件哈希、网络指标(IP、域名、URL)、 主机痕迹(文件路径、注册表键、互斥锁)以及行为模式,用于威胁情报共享和检测规则创建。 适用于 IoC 提取、威胁指标采集、恶意软件指标收集或从样本构建检测内容等请求场景。
extracting-credentials-from-memory-dump
使用 Volatility 和 Mimikatz 从内存转储中提取缓存的凭据、密码哈希、Kerberos 票据和身份验证令牌,用于取证调查。
extracting-config-from-agent-tesla-rat
从 Agent Tesla RAT 样本中提取嵌入的配置信息,包括 SMTP/FTP/Telegram 数据泄露凭据、键盘记录器设置和 C2 端点,使用 .NET 反编译和内存分析技术。
extracting-browser-history-artifacts
从 Chrome、Firefox 和 Edge 中提取并分析浏览器历史记录、Cookie、缓存、下载记录和书签,以获取用户网络活动的取证证据。