pranavsf54/purple-team-detection-lab
GitHub: pranavsf54/purple-team-detection-lab
一个完全隔离的 Active Directory 紫队检测实验室,覆盖从攻击模拟到 SIEM 检测规则编写与调优的完整安全工程闭环。
Stars: 0 | Forks: 0
# Purple Team Active Directory 检测实验室

一个完全隔离、进行网络分段的 Active Directory 实验室,用于针对受监控的 Windows 域练习完整的 **攻击 -> 检测 -> 调优** 周期。每个主机都构建在 KVM/libvirt 上,通过带有 Suricata IDS 的 pfSense 防火墙进行分段,并由 Wazuh SIEM 进行监控。我们故意植入配置错误,从 Kali 设备发起攻击,然后将其转化为检测规则——从而端到端地展示每项技术,从攻击者的行为到捕获该行为的警报。
## 本项目展示的内容
- 虚拟化和基础设施:KVM/QEMU/libvirt、隔离网络、主机调优 (KSM)、快照驱动的工作流。
- 网络工程:具有单一路由/IDS 关键节点的四区域网络分段。
- 检测工程:SIEM 部署、日志流水线、映射到 MITRE ATT&CK 的检测。
- 进攻性安全:执行并深入理解 Active Directory 攻击链(Kerberos 滥用、凭据窃取、ACL 滥用),而不仅仅是运行工具。
- 基础设施即代码和文档规范:可复现的构建、决策记录。
## 架构
pfSense 是唯一在各个区域之间以及与互联网之间进行路由的设备,这迫使所有跨段和出口流量都经过防火墙和 Suricata。
| 网络 | CIDR | 角色 | 主机 |
|---|---|---|---|
| `lab-corp` | 192.168.10.0/24 | 企业 LAN | DC01, WS01, LINTGT01 |
| `lab-mgmt` | 192.168.56.0/24 | 监控平面 | WAZUH01 |
| `lab-dmz` | 192.168.20.0/24 | DMZ(未来阶段) | — |
| `lab-attacker` | 192.168.100.0/24 | 攻击者 | KALI01 |
pfSense 在每个区域(`.1`)上都有一个网关接口,并在 libvirt 的 NAT 网络上有一个 WAN 接口用于出口。完整编址请参见 `docs/03-build/00-networks.md`。
## 组件
| 主机 | 角色 | 平台 |
|---|---|---|
| pfSense | 防火墙、路由器、DHCP/DNS/NTP、Suricata IDS | pfSense CE |
| WAZUH01 | SIEM、HIDS、FIM、漏洞扫描器 | Ubuntu 22.04 LTS 上的 Wazuh 4.14.5 |
| DC01 | 域控制器,`corp.lab.lan` | Windows Server 2022(2016 功能级别) |
| KALI01 | 攻击发起平台 | Kali Linux 2026.1 |
| WS01 | 域工作站 | Windows 11(已加入域) |
| LINTGT01 | Linux 域目标 | Ubuntu 22.04(已加入域,DVWA) |
## 方法论
该实验室运行 Purple Team 循环,每次处理一个配置错误:
1. **植入**:向域中植入一个真实的弱点。
2. **攻击**:以低权限用户身份从 KALI01 发起攻击,生成真实的攻击者遥测数据。
3. **检测**:通过编写或调优规则(Wazuh/Sigma)来捕获该遥测数据。
4. **调优**:消除 BadBlood 生成的背景噪音带来的误报。
BadBlood 使用大约 2,500 名用户、数百个组和随机化的 ACL 填充域,因此检测规则必须找到植入的“针”,而不会对良性账户产生警报。
## 预植入攻击面(第 4 阶段攻击链)
这些弱点是故意的,仅存在于隔离的实验室中。凭据故意设置为弱密码,严禁在任何其他地方重复使用。
| # | 配置错误 | 账户 / 对象 | MITRE ATT&CK |
|---|---|---|---|
| 1 | 可被 Kerberoasting 的服务账户 | `sqlsvc`(设置了 SPN) | T1558.003 |
| 2 | 可被 AS-REP Roasting 的账户 | `jsmith`(无预身份验证) | T1558.004 |
| 3 | SYSVOL 中的 GPP 明文密码 | `corp\backup-svc` | T1552.006 |
| 4 | 弱 ACL (GenericWrite) | HOLLIE_MANN -> BUDDY_MCCARTY | T1098 |
## 阶段路线图
| 阶段 | 范围 | 状态 |
|---|---|---|
| 0 | 隔离 libvirt 网络、仓库、图表 | 已完成 |
| 1 | 基础设施构建(pfSense、Wazuh、DC01、WS01、Kali、LINTGT01)+ 预植入配置错误 | 已完成 |
| 2 | Wazuh agent、通过 GPO 部署的 Sysmon、PowerShell 日志记录、审计策略、基线、首次检测试运行、CI 测试框架 | 进行中 |
| 3 | Atomic Red Team 攻击演练,检测并调优 15+ 项技术 | 计划中 |
| 4 | 完整的 Active Directory 攻击链(AS-REP Roasting、Kerberoasting、ACL 滥用、DCSync、Golden Ticket) | 计划中 |
| 5 | 威胁狩猎、阶段性事件、NIST 800-61 报告、Volatility 3 内存捕获 | 计划中 |
| 5.5 | 云端切片:Microsoft Sentinel 试用、KQL 检测、Entra ID 身份检测 | 计划中 |
| 6 | Python 自动化(扩充、覆盖率报告、微型 SOAR + AI 阶段)、Ansible | 计划中 |
| 7 | README 润色、PDF 评估报告、演练视频、博客文章 | 计划中 |
| 8 | 完整云阶段、完整身份覆盖 | 计划中 |
## 仓库结构
```
docs/
03-build/
00-networks.md
01-pfsense.md
02-wazuh.md
03-domain-controller.md
04-workstation-ws01.md
05-attacker-kali.md
06-linux-target-lintgt01.md
13-troubleshooting-playbook.md
ansible/
inventories/networks/
lab-attacker.xml
lab-corp.xml
lab-dmz.xml
lab-mgmt.xml
playbooks/
roles/
diagrams/
raw/
sigma-rules/
linux/
network/
windows/
tests/
README.md
sample-events/
scripts/
coverage-reporter/
enrichment/
mini-soar/
reports/
README.md
LICENSE
```
## 重建实验室
1. 从 `ansible/inventories/networks/` 定义并启动四个隔离的网络。
2. 部署 pfSense,为每个区域连接一个接口,应用 `01-pfsense.md` 中的规则。
3. 根据构建说明构建 WAZUH01、DC01、WS01、KALI01 和 LINTGT01。
4. 使用 veth 对将宿主机修补到隔离网段,以便访问 Web UI(请参见 `00-networks.md`)。
## 安全与范围
该实验室是完全隔离的:除了通过 pfSense,没有任何实验室虚拟机会触及互联网,并且攻击者区域无法到达监控平面。本仓库中的所有凭据都是故意设置的弱实验室值,用于预植入的配置错误。没有提交任何真实的机密信息——主机密码、Wazuh 管理员密码、API 密钥或 Ansible vault 材料;请参见 `.gitignore`。
## 状态
第 1 阶段已完成:构建了全部六台虚拟机,提升了 `corp.lab.lan` 域,运行了 BadBlood,并植入和记录了四个配置错误。第 2 阶段正在进行中:Wazuh agent 已注册并正在报告,Sysmon 已通过 GPO 使用 sysmon-modular 配置部署,并且其事件已到达 Wazuh,PowerShell Script Block 和 Module Logging 已启用,并且针对第 4 阶段 DCSync 检测的“Audit Directory Service Access”策略以及域根 SACL 已到位。正在进行 48 小时的基线周期,以捕获任何攻击之前的正常噪音基准。剩余的第 2 阶段项目:完成基线噪音基准报告,将首次检测作为试运行进行端到端开发,以及建立 CI 规则测试框架。
## 关于
由 Pranav Fangoo 构建,https://ca.linkedin.com/in/pranav-fangoo。
标签:Active Directory, Metaprompt, Plaso, Web报告查看器, 模拟器, 系统提示词, 紫队, 网络靶场, 逆向工具