# Extracting Windows Event Logs Artifacts

> 使用 Chainsaw、Hayabusa 和 EvtxECmd 提取、解析和分析 Windows 事件日志（EVTX），以检测横向移动、持久化和权限提升。

- Skill: `killvxk/extracting-windows-event-logs-artifacts` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/extracting-windows-event-logs-artifacts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/extracting-windows-event-logs-artifacts/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/extracting-windows-event-logs-artifacts

---


# 提取 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），通过组成员变更追踪权限提升，识别用于持久化的服务安装，查找加密可执行文件的进程创建事件，检测系统日志中的卷影副本删除。

