第 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/哈希/域名)
□ 报告: 完整故事+证据链
动手练习
- 在测试机安装 Sysmon(标准配置),执行几个"攻击模拟"命令(计划任务/新服务/网络连接),然后用 Hayabusa 分析。
- 导出一段 Windows 安全日志(含 4624/4625/1102),用时间线工具构建攻击过程。
- 用 Sysmon 的 DNS 事件溯源一个 C2 域名查询序列。
- 写一份"日志特征模式库"(对照 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 日志分析课程