00 - 学习路线与方法论
本页是 Windows 应急响应系列的起点,涵盖方法论、核心差异、学习计划和环境准备。
前置阅读:Windows应急响应(系列总索引)
Linux 对照:00-学习路线
一、PDCERF 模型在 Windows 环境中的应用
1.1 PDCERF 模型回顾
PDCERF 是 NIST SP 800-61 推荐的事件响应六阶段模型,同样适用于 Linux应急响应:
1 | ┌──────────┐ ┌──────────┐ ┌──────────┐ |
| 阶段 | 英文 | 核心目标 |
|---|---|---|
| P | Preparation(准备) | 工具就绪、基线建立、预案制定 |
| D | Detection(检测) | 发现入侵迹象、确认事件 |
| C | Containment(遏制) | 隔离受影响系统、阻止扩散 |
| E | Eradication(根除) | 清除恶意代码和持久化机制 |
| R | Recovery(恢复) | 系统恢复上线、验证安全性 |
| F | Follow-up(跟踪) | 复盘总结、加固防御 |
1.2 各阶段的 Windows 特殊考量
P - 准备阶段
基线采集(Baseline Collection)
Windows 的基线比 Linux 复杂得多,需要记录:
正常的自启动项(Autoruns 基线导出)
正常的计划任务列表
正常的服务列表及其对应的 ServiceDLL
注册表关键路径的初始状态
正常的网络连接模式
推荐使用 KAPE 定期采集基线快照
1 | # 导出 Autoruns 基线(需 Sysinternals Autoruns) |
Sysmon 部署 — 在准备阶段就应部署 Sysmon,否则事件发生后无日志可查
详见 → Windows应急响应/32-Sysmon部署与分析
日志策略配置
默认 Windows 审计策略记录的事件极少,必须通过组策略增强:
1 | # 启用命令行审计(记录进程创建时的完整命令行) |
D - 检测阶段
Windows 检测的信息源远多于 Linux:
| 信息源 | 说明 | 对应 Linux |
|---|---|---|
| Security.evtx | 登录、账户管理、权限使用 | auth.log / secure |
| System.evtx | 服务安装、驱动加载、系统错误 | syslog / kern.log |
| PowerShell Operational | PS 脚本执行、模块加载 | 无直接对应 |
| Sysmon | 进程/网络/文件/注册表变更 | auditd |
| Windows Defender Operational | 恶意软件检测事件 | ClamAV 日志 |
| Task Scheduler Operational | 计划任务创建/执行/失败 | cron.log |
| WMI-Activity Operational | WMI 查询和事件订阅 | 无对应 |
| Prefetch / Amcache / ShimCache | 程序执行历史 | 无对应 |
| $MFT / $UsnJrnl | 文件系统变更记录 | inotify (实时) |
快速检测命令:
1 | # 快速扫描最近 24h 的安全事件中的登录失败 |
C - 遏制阶段
Windows 遏制操作与 Linux 有显著差异:
1 | # 网络隔离 — 禁用所有网卡(慎用,远程管理将中断) |
域环境遏制的额外操作:
禁用被攻陷的域账户
重置 krbtgt 密码(两次,间隔 > 10 小时)
检查并清理 GPO 中的恶意配置
隔离被攻陷的域控(极端情况)
E - 根除阶段
Windows 根除的难点在于持久化位置众多:
注册表 Run Keys → Windows应急响应/18-Registry-Run-Keys
计划任务 → 19-计划任务后门
服务 → Windows应急响应/20-服务后门
WMI → Windows应急响应/21-WMI持久化
DLL 劫持 → Windows应急响应/22-DLL劫持
COM 劫持 → 23-COM劫持
更多 → 30-持久化综合Checklist
推荐使用 Autoruns 进行全量自启动项审计
1 | # 使用 Autoruns 命令行版本导出全部自启动项 |
R - 恢复阶段
Windows 恢复的特殊考量:
系统还原点(System Restore) — 可用于快速回滚配置变更
卷影副本(Volume Shadow Copy) — 可能包含被加密/删除的文件
Windows 备份 — WBADMIN 工具
1 | # 列出可用的系统还原点 |
恢复后验证清单:
[ ] 所有已知持久化机制已清除
[ ] 防火墙规则恢复正常策略
[ ] 安全日志审计策略已增强
[ ] Sysmon 已部署/更新
[ ] 所有受影响的密码/凭据已重置
[ ] 补丁已更新到最新
F - 跟踪阶段
编写事件报告,至少包含:
事件时间线(Timeline)
攻击向量(Initial Access)
受影响范围(Scope)
持久化方式(Persistence)
数据泄露评估(Data Exfiltration)
修复与加固措施(Remediation)
经验教训(Lessons Learned)
二、Windows IR vs Linux IR 核心差异详解
这是全系列最重要的对照参考之一。来自 Linux IR 的经验需要映射到对应的 Windows 概念。
2.1 日志系统:evtx vs syslog
| 特性 | Windows Event Log | Linux syslog/journald |
|---|---|---|
| 格式 | 二进制 evtx(结构化 XML) | 纯文本 / 二进制 journal |
| 存储位置 | C:\Windows\System32\winevt\Logs\ |
/var/log/ |
| 查看工具 | Event Viewer / wevtutil / Get-WinEvent | cat / grep / journalctl |
| 通道数量 | 300+ 个通道 | ~20 个主要文件 |
| 日志轮转 | 按大小覆盖(默认 20MB) | logrotate |
| 远程收集 | Windows Event Forwarding (WEF) | rsyslog / syslog-ng |
| 关键日志 | Security, System, Application, PowerShell | auth.log, syslog, kern.log |
| 时间格式 | UTC(SystemTime 字段) | 本地时区(取决于配置) |
Windows 事件日志的独特挑战:
默认日志大小太小(Security 默认 20MB),高频事件场景下可能在数小时内被覆盖
日志通道名称冗长且分散:Microsoft-Windows-PowerShell/Operational vs 简单的 /var/log/auth.log
需要记忆大量 Event ID(Security 日志有 100+ 个常用 ID)
攻击者可以清除单条日志记录(需要 Event ID 1102 监控)
1 | # 查看所有日志通道 |
2.2 持久化机制:注册表 vs crontab/systemd
| Windows 持久化位置 | Linux 等价物 | 攻击复杂度 |
|---|---|---|
HKLM\...\Run |
/etc/crontab |
低 |
HKCU\...\Run |
用户 crontab -e |
低 |
| Task Scheduler | cron / systemd timer | 中 |
| Windows Service | systemd service | 中 |
| WMI Event Subscription | 无直接对应 | 高 |
| DLL Search Order Hijack | LD_PRELOAD / rpath | 高 |
| COM Object Hijack | 无对应 | 高 |
| IFEO (Image File Execution) | 无对应 | 中 |
| AppInit_DLLs | /etc/ld.so.preload | 高 |
| Winlogon Helper | PAM module | 高 |
| Boot/Logon Script (GPO) | /etc/profile.d/ | 中 |
| Security Support Provider | PAM module | 高 |
| Print Monitor | 无对应 | 高 |
| LSA Authentication Package | 无对应 | 高 |
Windows 的持久化位置超过 60 个(参见 30-持久化综合Checklist),而 Linux 主要集中在 10 个左右。
这意味着 Windows 根除阶段的工作量远大于 Linux。
2.3 进程模型:Token vs UID
| 特性 | Windows | Linux |
|---|---|---|
| 进程标识 | PID + PPID | PID + PPID |
| 权限来源 | Access Token(SID + 特权列表) | UID + GID + Capabilities |
| 权限提升 | Token 提升(UAC) / Token 窃取 | sudo / SUID / Capabilities |
| 进程树根 | System (PID 4) → smss → csrss → … | init/systemd (PID 1) |
| 关键守护进程 | svchost.exe, lsass.exe, csrss.exe | sshd, cron, rsyslog |
| 伪装检测 | 验证签名 + 路径 + 父进程 | 对比 /proc 与 which |
Windows 进程树正常结构(重要 — 偏离此结构即为异常):
1 | System (PID 4) |
异常信号示例:
svchost.exe 的父进程不是 services.exe
lsass.exe 有多个实例
csrss.exe 从用户目录运行而非 System32
explorer.exe 产生 cmd.exe → powershell.exe 链
2.4 认证协议:NTLM/Kerberos vs PAM
| 特性 | Windows (域环境) | Linux |
|---|---|---|
| 本地认证 | NTLM (SAM) | PAM (/etc/shadow) |
| 域/集中认证 | Kerberos (AD) | LDAP / Kerberos (可选) |
| 凭据缓存 | lsass.exe 内存中 | 无默认缓存 |
| Hash 传递 | Pass-the-Hash (NTLM) | 无直接等价 |
| 票据传递 | Pass-the-Ticket (Kerberos) | 理论可行但罕见 |
| 黄金票据 | Golden Ticket (krbtgt) | 无等价 |
| 单点登录 | AD Kerberos SSO | 无原生 SSO |
Windows 认证的最大风险:
lsass.exe 进程内存中缓存了 NTLM Hash 和 Kerberos 票据
攻击者使用 Mimikatz 等工具可直接从 lsass 提取凭据
这在 Linux 中没有直接等价物(Linux 不会在内存中长期缓存密码 Hash)
1 | # 检查 lsass.exe 是否被异常访问(需 Sysmon Event ID 10) |
2.5 远程访问:RDP vs SSH
| 特性 | RDP (Windows) | SSH (Linux) |
|---|---|---|
| 默认端口 | 3389/TCP | 22/TCP |
| 协议 | RDP (图形界面) | SSH (命令行) |
| 认证方式 | NLA + NTLM/Kerberos | 密码 / 密钥 / 证书 |
| 暴破日志 | Event ID 4625 (Security) | /var/log/auth.log |
| 成功登录日志 | Event ID 4624 Type 10 | /var/log/auth.log Accepted |
| 会话记录 | 无原生录屏 | 无原生录屏 |
| 关键风险 | BlueKeep, 弱密码, NLA 绕过 | 弱密码, 密钥泄露 |
RDP 完整日志链(排查暴破的关键):
Security.evtx → Event ID 4625 (失败) / 4624 (成功)
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational → Event ID 21 (登录成功) / 24 (断开) / 25 (重连)
Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational → 连接源 IP
详见 → Windows应急响应/11-RDP暴力破解
2.6 文件系统:NTFS vs ext4
| 特性 | NTFS | ext4 |
|---|---|---|
| 备用数据流 (ADS) | 支持(可隐藏数据) | 不支持 |
| 主文件表 | $MFT(记录所有文件元数据) | inode 表 |
| 变更日志 | $UsnJrnl | 无原生等价 |
| 文件权限 | DACL (ACL) | rwx (user/group/other) |
| 时间戳 | MACE (Modified/Accessed/Created/Entry) | MAC (Modified/Accessed/Changed) |
| 加密 | EFS (文件级) / BitLocker (卷级) | LUKS (卷级) |
| 预读取 | Prefetch 文件 | 无 |
NTFS ADS 是 Windows 取证的关键知识点:
1 | :: 查看文件的备用数据流 |
1 | # PowerShell 检测 ADS |
三、技能树
3.1 基础技能(Week 1-2)
[ ] 理解 Windows 目录结构和关键系统文件
[ ] 掌握注册表五大根键和 Hive 文件
[ ] 熟练使用 net 命令族排查用户和组
[ ] 掌握 netstat、tasklist 等基础排查命令
[ ] 理解 Event Log 结构和 Event Viewer 使用
[ ] 记忆 20 个核心 Event ID
[ ] 能使用 Get-WinEvent 查询和过滤日志
[ ] 了解 Prefetch 和 Amcache 的作用
3.2 进阶技能(Week 3-5)
[ ] 能独立排查 RDP 暴力破解事件
[ ] 能分析 IIS/SQL Server 入侵
[ ] 掌握全部常见持久化机制的检测方法
[ ] 能使用 Autoruns 进行全量自启动项审计
[ ] 能使用 Process Explorer 分析可疑进程
[ ] 掌握 PowerShell ScriptBlock 日志分析
[ ] 能使用 KAPE 进行自动化取证采集
[ ] 能使用 Hayabusa/Chainsaw 快速扫描 evtx
3.3 高级技能(Week 6-8)
[ ] 能分析横向移动(PsExec/WMI/DCOM/WinRM)
[ ] 能检测 Golden Ticket / Silver Ticket
[ ] 能使用 Volatility 进行内存取证
[ ] 能进行恶意软件初步静态分析
[ ] 能部署和调优 Sysmon 配置
[ ] 能使用 Velociraptor 进行远程取证
[ ] 能编写 YARA 规则检测恶意文件
[ ] 能独立完成跨平台(Windows + Linux)综合事件调查
四、8 周学习计划
Week 1:系统基础
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | 本页学习路线 + 环境搭建 | 00-学习路线 | 3h |
| Day 2 | Windows 目录结构 + 注册表基础 | 01-系统基础与注册表 | 3h |
| Day 3 | 注册表深入 + SID + 安全模型 | 01-系统基础与注册表 | 3h |
| Day 4 | CMD 排查命令实操 | 02-排查命令速查 | 2h |
| Day 5 | PowerShell 排查命令实操 | 02-排查命令速查 | 2h |
| Day 6-7 | 复习 + 实操练习 | — | 3h |
Week 2:日志与取证
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | Event Log 结构 + Event Viewer | 03-事件日志分析 | 3h |
| Day 2 | Security 日志关键 Event ID | 03-事件日志分析 | 3h |
| Day 3 | PowerShell / Sysmon / 其他日志 | 03-事件日志分析 | 2h |
| Day 4 | Prefetch + Amcache + ShimCache | 04-取证制品分析 | 3h |
| Day 5 | SRUM + $MFT + Jumplist + LNK | 04-取证制品分析 | 3h |
| Day 6-7 | 复习 + CyberDefenders 练习 | — | 4h |
Week 3:入侵排查(上)
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | 账户安全排查 | 05-账户安全排查 | 2h |
| Day 2 | 进程排查 | Windows应急响应/06-进程与网络排查 | 3h |
| Day 3 | 网络排查 | Windows应急响应/06-进程与网络排查 | 2h |
| Day 4 | 文件取证排查 | Windows应急响应/07-文件取证排查 | 2h |
| Day 5 | 计划任务与服务排查 | Windows应急响应/08-计划任务与服务排查 | 2h |
| Day 6-7 | 复习 + 综合实操 | — | 3h |
Week 4:入侵排查(下)
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | 注册表持久化排查 | Windows应急响应/09-注册表持久化排查 | 3h |
| Day 2 | PowerShell 日志分析 | Windows应急响应/10-PowerShell日志分析 | 2h |
| Day 3-4 | RDP 暴破实战 | Windows应急响应/11-RDP暴力破解 | 4h |
| Day 5 | IIS 入侵排查 | Windows应急响应/12-IIS入侵排查 | 3h |
| Day 6-7 | 复习 + HackTheBox Sherlock | — | 4h |
Week 5:实战场景
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | SQL Server 入侵 | Windows应急响应/13-SQL-Server入侵 | 2h |
| Day 2 | 钓鱼邮件分析 | Windows应急响应/14-钓鱼邮件分析 | 2h |
| Day 3 | 横向移动检测 | 15-横向移动检测 | 3h |
| Day 4 | 勒索病毒响应 | Windows应急响应/16-勒索病毒响应 | 3h |
| Day 5 | 挖矿木马排查 | Windows应急响应/17-挖矿木马排查 | 2h |
| Day 6-7 | 综合场景实操 | — | 4h |
Week 6:持久化后门(上)
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | Registry Run Keys | Windows应急响应/18-Registry-Run-Keys | 2h |
| Day 2 | 计划任务后门 | 19-计划任务后门 | 2h |
| Day 3 | 服务后门 | Windows应急响应/20-服务后门 | 2h |
| Day 4 | WMI 持久化 | Windows应急响应/21-WMI持久化 | 2h |
| Day 5 | DLL 劫持 + COM 劫持 | Windows应急响应/22-DLL劫持 + 23-COM劫持 | 4h |
| Day 6-7 | 复习 + 实操 | — | 3h |
Week 7:持久化后门(下)
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | 启动文件夹 + IFEO | Windows应急响应/24-启动文件夹后门 + Windows应急响应/25-IFEO镜像劫持 | 3h |
| Day 2 | PS Profile + 辅助功能 | 26-PowerShell-Profile后门 + 27-辅助功能后门 | 2h |
| Day 3 | AD Golden/Silver Ticket | Windows应急响应/28-AD-Golden-Silver-Ticket | 3h |
| Day 4 | Print Spooler / BITS | Windows应急响应/29-Print-Spooler-BITS滥用 | 2h |
| Day 5 | 持久化综合 Checklist | 30-持久化综合Checklist | 2h |
| Day 6-7 | 全量持久化排查实操 | — | 4h |
Week 8:工具精通
| 天 | 内容 | 页面 | 预计时长 |
|---|---|---|---|
| Day 1 | Sysinternals 全套实操 | 31-Sysinternals套件 | 3h |
| Day 2 | Sysmon 部署与配置 | Windows应急响应/32-Sysmon部署与分析 | 3h |
| Day 3 | 日志工具(Hayabusa/Chainsaw/LogParser) | Windows应急响应/33-日志收集与分析工具 | 2h |
| Day 4 | Volatility 内存取证 | Windows应急响应/34-Volatility内存取证 | 3h |
| Day 5 | 恶意软件初步分析 | Windows应急响应/35-恶意软件初步分析 | 3h |
| Day 6 | KAPE + Velociraptor | Windows应急响应/36-KAPE与Velociraptor | 3h |
| Day 7 | 综合复习 + 跨平台对比 | — | 3h |
五、Windows IR 通用排查 Checklist
以下是一份通用的 Windows 应急排查清单,分为 CMD 和 PowerShell 两个版本。
在实际事件中按顺序执行,并记录每一步的输出。
5.1 CMD 版本
1 | @echo off |
5.2 PowerShell 版本
1 | #Requires -RunAsAdministrator |
六、工具准备清单
6.1 必备工具
| 工具 | 下载方式 | 用途 |
|---|---|---|
| Sysinternals Suite | winget install sysinternals 或微软官网 |
进程分析、自启动审计、网络监控 |
| Sysmon | Sysinternals 套件内含 | 增强系统日志(需配合配置文件) |
| SwiftOnSecurity Sysmon Config | GitHub: SwiftOnSecurity/sysmon-config | Sysmon 社区最佳配置 |
| EZ Tools (Eric Zimmerman) | GitHub: EricZimmerman/Get-ZimmermanTools | 注册表/Prefetch/MFT/ShimCache 解析 |
| KAPE | kroll.com (免费注册下载) | 自动化取证制品采集 |
| Hayabusa | GitHub: Yamato-Security/hayabusa | evtx 快速威胁扫描 |
| Chainsaw | GitHub: WithSecureLabs/chainsaw | evtx 快速搜索(Sigma 规则) |
6.2 推荐工具
| 工具 | 用途 |
|---|---|
| Velociraptor | 远程取证与端点调查 |
| Volatility 3 | 内存取证 |
| PE-bear | PE 文件结构分析 |
| Detect It Easy (DIE) | 恶意软件快速识别(壳、编译器) |
| YARA | 恶意文件特征匹配 |
| Wireshark | 网络流量分析 |
| CyberChef | 数据编解码瑞士军刀 |
| x64dbg | 动态调试(高级) |
| LogParser | 微软官方日志查询工具(SQL 语法) |
| Timeline Explorer | EZ Tools 出品的 CSV 时间线查看器 |
6.3 一键安装脚本
1 | # 使用 winget 安装可直接获取的工具 |
七、实验环境搭建指南
7.1 Apple Silicon Mac 用户(UTM)
Apple Silicon 不支持 VirtualBox,需使用 UTM(免费)或 Parallels
UTM 使用 QEMU 模拟 x86_64 架构运行 Windows ARM 或通过 Rosetta 转译
步骤:
从 Mac App Store 或 GitHub 安装 UTM
下载 Windows 11 ARM64 VHDX(推荐)或 Windows 10 x86_64 ISO
在 UTM 中创建虚拟机:
Architecture: ARM64(原生性能)或 x86_64(完全兼容但慢)
RAM: 4-8 GB
Disk: 64 GB+
- 安装 SPICE Guest Tools 以获取剪贴板共享和动态分辨率
注意:ARM 版 Windows 可通过 x86 兼容层运行大部分安全工具,但 Volatility 等工具可能有兼容问题
7.2 Intel Mac / Windows / Linux 用户(VirtualBox)
步骤:
安装 VirtualBox 7.x
下载 Windows 10 Enterprise Evaluation ISO
创建 VM:4GB RAM / 2 vCPU / 60GB 动态磁盘
安装完成后立即创建快照
Clean-Install安装工具后创建快照
Tools-Ready
7.3 域环境搭建(可选但推荐)
用于学习 AD 相关章节(15-横向移动检测、Windows应急响应/28-AD-Golden-Silver-Ticket)
最小域环境配置:
DC01 — Windows Server 2019/2022,Active Directory Domain Services
WS01 — Windows 10,加入域的工作站
推荐使用 DetectionLab 自动化部署:
GitHub: clong/DetectionLab
包含 DC + Workstation + Splunk + Fleet
Vagrant + VirtualBox 一键部署
导航
返回总索引 → Windows应急响应
下一页 → 01-系统基础与注册表
Linux 对照 → 00-学习路线
| 上一章 | 目录 | 下一章 |
|---|---|---|
| Windows应急响应 | 01-系统基础与注册表 |