L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

extracting-windows-event-logs-artifacts

extracting-windows-event-logs-artifacts

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: extracting-windows-event-logs-artifacts description: 使用 Chainsaw、Hayabusa 和 EvtxECmd 提取、解析和分析 Windows 事件日志(EVTX),以检测横向移动、持久化和权限提升。 domain: cybersecurity subdomain: digital-forensics tags: [forensics, windows-event-logs, evtx, chainsaw, hayabusa, sigma-rules, incident-response] version: "1.0" author: mahipal license: Apache-2.0

提取 Windows 事件日志制品

适用场景

  • 通过事件日志分析调查 Windows 系统上的安全事件时
  • 检测横向移动、权限提升和持久化机制时
  • 在 Windows 事件日志数据中进行威胁狩猎时
  • 在需要审查身份验证和访问事件的合规审计中
  • 从 Windows 系统活动构建取证时间线时

前置条件

  • 来自取证镜像或实时系统的 Windows 事件日志文件(EVTX 格式)
  • Chainsaw、Hayabusa 或 EvtxECmd 用于解析和检测
  • Sigma 规则用于自动化威胁检测
  • 了解关键 Windows 事件 ID
  • 安装 python-evtx 或 evtx 库的 Python,用于自定义解析
  • PowerShell 用于实时系统分析(如适用)

工作流程

步骤 1:收集 Windows 事件日志文件

# 从取证镜像提取 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 的检测

# 使用内置 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 快速生成时间线

# 生成包含所有检测规则的 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

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:检测特定攻击模式

# 检测哈希传递(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 事件日志取证时间线生成器
EvtxECmdEric 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),通过组成员变更追踪权限提升,识别用于持久化的服务安装,查找加密可执行文件的进程创建事件,检测系统日志中的卷影副本删除。

Skills enregistrées