Toshi-hub834/active-directory-purple-team-lab

GitHub: Toshi-hub834/active-directory-purple-team-lab

在隔离环境中模拟真实 Active Directory 攻击并编写自定义 Wazuh SIEM 检测规则,实现从攻击到告警再到加固的完整紫队闭环。

Stars: 0 | Forks: 0

# Active Directory 紫队实验室攻击与检测 这是一个我自建的、隔离的 Active Directory 实验室。我在其中故意引入了常见的错误配置,从 Kali Linux 对它们发起了真实攻击,并设计了**自定义 SIEM 检测规则**来捕获每一次攻击。 该项目展示了完整的紫队闭环: ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/043f4b31e7112139.svg) ## 目标 构建一个真实的 AD 环境以: 1. 实践核心的 Active Directory 攻击技术。 2. 了解每次攻击在域控上生成的**遥测数据**。 3. 编写**自定义检测规则**,将原始、嘈杂的日志转化为高保真告警,这正是 SOC / 检测工程师的实际工作。 ## 实验室环境 | 主机 | 角色 | 操作系统 | IP | |------|------|----|----| | `DC01` | 域控制器 (`corp.lab`) | Windows Server 2022 | `10.0.0.10` | | `SIEM` | Wazuh 4.14 (indexer + server + dashboard) | Ubuntu Server 22.04 LTS | `10.0.0.20` | | `kali` | 攻击者 | Kali Linux | `10.0.0.50` | **网络:** 隔离的 host-only 网段 `10.0.0.0/24`,在攻击期间没有互联网暴露。基于 VMware Workstation Pro 构建。遥测数据通过 Wazuh agent 从 DC 发送到 Wazuh,并使用 **Sysmon** 进行丰富。 ## 预置的错误配置 每个弱点都映射到一条真实的攻击路径。 | 错误配置 | 启用的攻击 | MITRE ATT&CK | |------------------|-------------------|--------------| | 服务账户 `svc-sql` 具有 SPN + 弱密码 | Kerberoasting | [T1558.003](https://attack.mitre.org/techniques/T1558/003/) | | 用户 `jsmith` 禁用了 Kerberos 预身份验证 | AS-REP Roasting | [T1558.004](https://attack.mitre.org/techniques/T1558/004/) | | `jsmith` 被授予对 `backupadmin` 的 `GenericAll` 权限 | ACL 滥用 / 权限提升 | [T1098](https://attack.mitre.org/techniques/T1098/) | ## 攻击 ### AS-REP Roasting 因为 `jsmith` 不需要 Kerberos 预身份验证,所以可以**在没有任何凭据的情况下**请求 TGT,并且该响应可以被离线破解。 ``` impacket-GetNPUsers corp.lab/ -usersfile users.txt -no-pass -dc-ip 10.0.0.10 -format hashcat ``` ![AS-REP Roasting 攻击输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7fcabaf34e112144.png) *提取出 `jsmith` 的 `$krb5asrep$` 哈希。其余账户正确报告需要预身份验证。* ### Kerberoasting 任何经过身份验证的域用户都可以请求具有 SPN 的账户的服务票据(Service Ticket)。该票据使用服务账户的密码哈希加密,并可以被离线破解。 ``` impacket-GetUserSPNs corp.lab/jsmith:'Summer2024!' -dc-ip 10.0.0.10 -request ``` ![Kerberoasting 攻击输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a14a822945112149.png) *通过 `MSSQLSvc` SPN 检索到 `svc-sql` 服务账户的 `$krb5tgs$` 哈希。* ### 3. 破解票据 捕获到的 Kerberoast 哈希使用 Hashcat 进行离线破解,恢复了明文的服务账户密码。 ``` hashcat -m 13100 kerb.hash /usr/share/wordlists/rockyou.txt ``` ![Hashcat 破解 Kerberoast 哈希](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/425fd124a1112154.png) *`svc-sql` 的密码在几秒钟内被恢复——从攻击到获取明文,服务账户遭到了全面沦陷。* ## 检测工程 默认情况下,Wazuh 会记录 **level 0** 的 Kerberos 事件 (4768 / 4769) —— 它们太常见了,无法用于告警。关键技术在于从噪音中分离出*攻击签名*: - **AS-REP Roasting** 请求具有 **pre-auth type `0`** 的 TGT (4768)。 - **Kerberoasting** 请求具有 **RC4 加密 (`0x17`)** 的服务票据 (4769),以便可以离线破解该票据。 我在 `/var/ossec/etc/rules/local_rules.xml` 中编写了两条自定义规则,以将完全匹配这些模式的事件提升为高危告警: ``` windows ^4769$ ^0x17$ Kerberoasting detected: RC4 service ticket (4769) requested for $(win.eventdata.serviceName) T1558.003 windows ^4768$ ^0$ AS-REP Roasting detected: TGT (4768) for $(win.eventdata.targetUserName) with pre-auth disabled T1558.004 ``` 在重新加载管理器并重新运行攻击后,两者均作为 **level-12 告警** 触发,并填充了相关的账户 / 服务信息: ![自定义 Wazuh 告警触发](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c139338226112159.png) *过滤到这两条自定义规则——噪音消失了,只剩下具名的检测。* ## 防御建议 | 发现 | 补救措施 | |---------|-------------| | 可被 Kerberoasting 的服务账户 | 使用具有长且自动轮换密码的 **Group Managed Service Accounts (gMSA)**;强制使用 AES;移除不必要的 SPN | | 可被 AS-REP Roasting 的用户 | 从所有账户中移除“Do not require Kerberos pre-authentication”;强制使用强密码 | | 危险的 ACL (`GenericAll`) | 审计并修复过分的对象权限;保护 Tier-0 资产 | | 检测盲区 | 对使用 RC4 加密的 4769 和使用 pre-auth type 0 的 4768 发出告警;建立正常 Kerberos 行为的基线 | ## 展示的技能 - Active Directory 架构与攻击路径 (Kerberos, ACLs) - 进攻工具:**Impacket**、**Hashcat** - SIEM 部署与 agent 管理 (**Wazuh** + **Sysmon**) - 映射到 **MITRE ATT&CK** 的**自定义检测规则编写** - 紫队方法论:攻击、观察、检测、补救 ## 仓库结构 ``` . ├── README.md ├── docs/ │ └── architecture.svg ├── detection-rules/ │ └── local_rules.xml └── screenshots/ ├── 01-asrep-attack.png ├── 02-kerberoast-attack.png ├── 03-hashcat-crack.png └── 04-wazuh-alerts.png ``` ## 免责声明 此实验室运行在一个**隔离的、仅主机的网络**上,没有互联网暴露。所有目标均为我个人拥有并为教育目的而构建的系统。这些技术的演示严格仅用于防御性学习和授权测试。
标签:AS-REP Roasting, Kerberoasting, Wazuh, Windows Server, 主动目录, 紫队