CodeDoctorZyn/active-directory-lab
GitHub: CodeDoctorZyn/active-directory-lab
基于Wazuh的Active Directory攻击模拟实验室
Stars: 0 | Forks: 0
# Wazuh SOC 实验室 — 活动目录检测实验室
一个动手实践的安全运营中心(SOC)实验室,作为毕业项目构建,用于展示现实世界的威胁检测、SIEM 工程和活动目录攻击模拟技能。
## 架构
```
┌─────────────────────────────────────────────────────────────┐
│ MacBook Air M1 (Local) │
│ │
│ Docker Desktop │
│ ├── wazuh.manager — SIEM engine, correlation, alerting │
│ ├── wazuh.indexer — OpenSearch (event storage & search) │
│ └── wazuh.dashboard — Web UI for analysts (https://localhost)│
│ │
│ Tailscale IP: 100.105.7.6 │
└───────────────────────────┬─────────────────────────────────┘
│ Tailscale VPN (encrypted tunnel)
│ 18ms latency
┌───────────────────────────▼─────────────────────────────────┐
│ Azure Cloud — Australia East (B2as v2 Free Tier) │
│ │
│ dc01 — Windows Server 2025 (Domain Controller) │
│ ├── Active Directory Domain Services (soc.lab domain) │
│ ├── Sysmon v15.20 (SwiftOnSecurity config) │
│ └── Wazuh Agent 4.7.5 → reports to 100.105.7.6 │
│ │
│ Tailscale IP: 100.116.87.97 │
└─────────────────────────────────────────────────────────────┘
```
## 检测规则 — MITRE ATT&CK 映射
### Linux / SSH 规则(Ubuntu 受害端点)
| 规则 ID | 描述 | MITRE | 级别 |
|---------|-------------|-------|-------|
| 100001 | SSH 暴力破解检测(60秒内5次失败) | T1110 | 10 |
| 100002 | SSH 暴力破解成功(可能被入侵) | T1110 | 14 |
| 100003 | 创建了新的用户帐户 | T1136 | 8 |
| 100004 | 通过 sudo 提权 | T1548 | 9 |
| 100005 | /etc/passwd 或 /etc/shadow 被修改(FIM) | T1565 | 12 |
| 100006 | 检测到 Netcat 使用(可能的反向 shell) | T1059 | 11 |
| 100007 | 日志中检测到 Nmap 扫描 | T1046 | 8 |
### 活动目录规则(Windows Server 2025 / dc01)
| 规则 ID | 描述 | MITRE | 级别 |
|---------|-------------|-------|-------|
| 100010 | AD 暴力破解 — 多次失败的登录尝试 | T1110 | 10 |
| 100011 | **Kerberoasting** — 请求 RC4 TGS 票据(事件ID 4769) | T1558.003 | 12 |
| 100012 | **DCSync 攻击** — 访问目录复制权限(事件ID 4662) | T1003.006 | 15 |
| 100013 | **BloodHound 枚举** — 检测到 LDAP 查询(事件ID 1644) | T1069/T1087 | 9 |
| 100014 | **Pass-the-Hash** — NTLM 横向移动(事件ID 4624) | T1550.002 | 13 |
| 100015 | 用户被添加到域管理员组(事件ID 4728) | T1078 | 12 |
| 100016 | 创建了新的域帐户(事件ID 4720) | T1136.002 | 8 |
| 100017 | 在 DC 上执行凭证转储工具(Sysmon EID 1) | T1003 | 14 |
## 攻击模拟
### 活动目录攻击(dc01 PowerShell)
```
# 创建可Kerberoast的服务账户(T1136.002)
New-ADUser -Name "svc_backup" -AccountPassword (...) -Enabled $true
Set-ADUser -Identity "svc_backup" -ServicePrincipalNames @{Add="MSSQLSvc/dc01.soc.lab:1433"}
# Kerberoasting — 请求RC4 TGS票据(T1558.003)
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/dc01.soc.lab:1433"
# 暴力破解模拟 — 6次失败的登录(T1110)
# 权限提升 — 添加到域管理员(T1078)
Add-ADGroupMember -Identity "Domain Admins" -Members "john.doe"
```
### Linux / SSH 攻击(Ubuntu 受害端)
```
# SSH暴力破解(T1110)
bash attacks/brute-force-ssh.sh
# 文件完整性篡改(T1565)
bash attacks/fim-trigger.sh
```
## Windows 事件日志收集
Wazuh 管理器将集中式代理配置推送到所有 Windows 代理:
| 通道 | 收集的事件 |
|---------|-----------------|
| `Security` | 登录/注销、Kerberos、帐户更改、权限使用 |
| `Microsoft-Windows-Sysmon/Operational` | 进程创建、网络连接、注册表 |
| `Microsoft-Windows-PowerShell/Operational` | 脚本块日志记录 |
| `System` | 服务更改、系统事件 |
| `Application` | 应用程序错误和事件 |
FIM 监控:`C:\Windows\SYSVOL`、`C:\Windows\System32\config`、`C:\Windows\System32\GroupPolicy`
## 快速入门
### 1. 前提条件
- Docker Desktop(Apple Silicon)
- GitHub CLI (`gh`)
- Tailscale 账户
### 2. 启动 Wazuh 栈(Mac)
```
cd wazuh-server
# 生成SSL证书
docker compose -f generate-indexer-certs.yml run --rm generator
# 将所有配置加载到Docker卷(VirtioFS-safe)
bash prepare-certs.sh
# 启动堆栈
docker compose up -d
# 打开仪表板
open https://localhost # admin / SecretPassword
```
### 3. 在 Azure VM 上部署 Windows 代理
```
# 安装Sysmon
Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile "$env:TEMP\Sysmon.zip"
Expand-Archive "$env:TEMP\Sysmon.zip" -DestinationPath "$env:TEMP\Sysmon" -Force
& "$env:TEMP\Sysmon\Sysmon64.exe" -accepteula -i sysmon-config.xml
# 安装Wazuh Agent 4.7.5
msiexec.exe /i wazuh-agent-4.7.5-1.msi /q WAZUH_MANAGER="" WAZUH_AGENT_NAME="dc01"
NET START WazuhSvc
```
## 截图
| 截图 | 描述 |
|-----------|-------------|
| `screenshots/agents-dashboard.png` | Wazuh 中两个代理都处于活动状态 |
| `screenshots/dc01-overview.png` | dc01 MITRE 战术概述 |
| `screenshots/security-events.png` | 来自 dc01 的实时安全事件 |
| `screenshots/ad-alerts.png` | AD 攻击警报(Kerberoasting、提权) |
## 技术栈
| 工具 | 目的 |
|------|---------|
| [Wazuh 4.7.5](https://wazuh.com) | 开源 SIEM/XDR 平台 |
| [OpenSearch](https://opensearch.org) | 事件索引和搜索后端 |
| [Docker Desktop](https://docker.com) | 容器运行时(Apple Silicon M1) |
| [Sysmon v15.20](https://learn.microsoft.com/sysinternals/downloads/sysmon) | 增强的 Windows 遥测 |
| [Tailscale](https://tailscale.com) | 零配置 VPN 网状结构(云 → 本地) |
| [Azure 免费层](https://azure.microsoft.com) | Windows Server 2025 VM(dc01) |
| [Active Directory DS](https://learn.microsoft.com/windows-server/identity/ad-ds/) | 域:soc.lab |
| [MITRE ATT&CK](https://attack.mitre.org) | 检测规则框架 |
## 展示的技能
- **SIEM 工程师** — Wazuh 部署、配置、自定义规则编写
- **活动目录** — 域控制器设置、用户/组管理、SPN 配置
- **威胁检测** — 15 个自定义 MITRE ATT&CK 映射检测规则
- **云基础设施** — Azure VM 部署、NSG 配置
- **网络安全** — VPN 网状结构设计、云和本地之间的加密隧道
- **攻击模拟** — Kerberoasting、Pass-the-Hash、DCSync、BloodHound 枚举
- **Windows 取证** — Sysmon、Windows 事件日志分析、PowerShell 日志记录
- **Linux 安全** — SSH 强化、FIM、日志分析
- **DevOps** — Docker、docker-compose、shell 脚本、Git
*作为毕业项目构建,以展示动手实践的网络安全工程技能。*
标签:请求拦截