逆向工程实战手册 第 82 章

第 82 章 日志分析与溯源(EVTX / Sysmon / 时间线)

溯源 = 从日志把"攻击者的每一步"还原成完整故事。这是 IR(第 81 章)的核心分析环节,也是蓝队最重要的技能。本章覆盖日志源、Windows 事件日志(EVTX)、Sysmon、以及时间线构建方法。

📍 知识点地图 | 主题:日志溯源 | 前置:第50章 | 后续:第81章 | 核心概念:EVTX、Sysmon、时间线、Hayabusa

82.1 日志源地图(哪里能找到真相)

系统层:
  Windows: 安全日志(4624/4625 登录)、系统日志、应用程序日志
  Sysmon: 进程创建/网络连接/文件创建(增强!)
  Linux: /var/log/auth.log、syslog、journald
应用层:
  Web: 访问日志(Nginx/Apache/IIS)
  数据库: 查询日志/审计日志
  中间件: 认证日志(ADFS/Exchange)
  云: 云审计日志(CloudTrail/Azure AD)
网络层:
  防火墙/DNS/代理日志
  流量镜像(PCAP)
终端层:
  EDR 事件(进程/网络/文件/注册表)
  AMSI(脚本执行)

82.2 Windows 安全日志核心事件(速查)

事件 ID 含义 溯源价值
4624 登录成功 谁/何时/从哪登录
4625 登录失败 爆破痕迹
4634/4647 注销 会话时间线
4688 进程创建 执行了什么(需审计策略)
4698-4702 计划任务 持久化
4720-4760 账户管理 建用户/改密码
4732/4728 加入组 提权到 admin 组
4740 账户锁定 爆破
1102 日志清除! 攻击者反取证(最高嫌疑)
7045 服务安装 持久化

第一嫌疑信号:日志被清除(1102)+ 大量 4625 + 非工作时间登录。

82.3 Sysmon(Windows 日志增强之王)

Sysmon = 微软官方的详细系统监控驱动(日志事件比默认多得多)

关键事件:
  1   进程创建(完整命令行!)
  3   网络连接(源/目标/端口)
  5   进程终止
  6   驱动加载
  7/8 镜像加载
  11  文件创建
  13  注册表值修改
  22  DNS 查询(溯源 C2 的利器!)

部署(事前):
  Sysmon64.exe -accepteula -i sysmonconfig.xml
  # 配置: SwiftOnSecurity 或微软官方基线配置

溯源中的 Sysmon 用法

□ 进程 1 事件: 还原完整命令行(攻击者的工具/参数)
□ DNS 22 事件: C2 域名查询记录
□ 网络 3 事件: 连接目标(内网横向/外带)
□ 文件 11 事件: 落地的恶意文件
□ 时间线: 所有事件按时间排序 = 攻击过程

82.4 日志分析工具

# Hayabusa(EVTX 快速狩猎,首选)
./hayabusa.exe csv-timeline -d <log_dir> -o timeline.csv
./hayabusa.exe hunt -d <log_dir>         # 规则匹配(检测攻击)
# 规则库: Sigma(第 50 章)→ Hayabusa 直接吃

# chainsaw(EVTX 狩猎)
chainsaw hunt -d logs/ -s sigma/rules/ --mapping mappings/sigma-event-log-all.yml

# 大规模/SIEM:
#   Splunk/ELK(部署型)
#   KQL(Microsoft 365 Defender 查询)
#   jq 等文本工具处理导出的日志

82.5 时间线构建(把事件变成故事)

方法: 把多源日志合并 → 按时间排序 → 标注攻击阶段

关键时间锚点:
  □ 首次恶意活动(初始访问)
  □ 凭据获取时刻(横向起点)
  □ 持久化建立时刻
  □ 数据外带时刻
  □ 日志清除时刻(最后活动)

实战技巧:
  □ 统一时区(所有日志转 UTC)
  □ 以"首次异常"为起点向前看 24-48 小时(潜伏期)
  □ 关联多源(登录日志 + 进程 + 网络 → 同一事件多视角)
  □ 时间线工具: Timeline Explorer / plaso(自动化)

82.6 溯源实战(从告警到完整故事)

场景: 收到"异常登录"告警

1. 4624 登录日志: 谁/从哪 IP/何时/登录类型
   (网络登录 3/10 = 横向;本地 2 = 有立足)
2. 该用户的其他活动: 4688 进程/访问的文件
3. 回查更早: 该用户首次出现在系统的时间(初始访问)
4. 横向: 该凭据在其他机器的登录记录
5. 外带: 登录后的大流量/异常连接(Sysmon 3/22)
6. 持久化: 服务/计划任务/注册表变更
7. 输出: 完整时间线 + 攻击路径

82.7 常见攻击的日志特征(模式库)

攻击 日志特征
密码喷洒 大量 4625(不同用户同一密码)+ 少量 4624
PtH 横向 同一账户多机 4624(登录类型 3)+ 4768/4769
持久化服务 7045 服务安装 + Sysmon 1(svchost 异常)
计划任务 4698 + Sysmon 1(进程参数)
日志清除 1102 + 安全日志时间断档
C2 通信 Sysmon 22(陌生域名)+ 3(异常端口)
数据外带 大流量 + 异常协议 + 非工作时间

82.8 溯源检查清单

□ 日志源盘点(系统/应用/网络/云)
□ EVTX/Sysmon 提取
□ 核心事件扫描(登录/进程/计划任务/服务)
□ 可疑信号(1102/爆破/异常时间)
□ 时间线构建(多源合并)
□ 攻击路径还原(入口→横向→持久化→外带)
□ IOC 提取(IP/哈希/域名)
□ 报告: 完整故事+证据链

动手练习

  1. 在测试机安装 Sysmon(标准配置),执行几个"攻击模拟"命令(计划任务/新服务/网络连接),然后用 Hayabusa 分析。
  2. 导出一段 Windows 安全日志(含 4624/4625/1102),用时间线工具构建攻击过程。
  3. 用 Sysmon 的 DNS 事件溯源一个 C2 域名查询序列。
  4. 写一份"日志特征模式库"(对照 82.7 表,补充你实验中的观察)。

深入阅读

  • 仓库:CTF-Sandbox-Orchestrator/competition-forensic-timeline/(取证时间线 CTF)
  • 仓库:skills/malware-analysis/references/yara-sigma-rules.md(Sigma 规则=日志检测)
  • 仓库:CTF-Sandbox-Orchestrator/competition-identity-windows/(Windows 身份证据)
  • 仓库:skills/attack-chain/(攻击链=溯源的地图)
  • 外部: Sysmon 配置基线、Hayabusa 文档、SANS 日志分析课程