Yogesh-sharda/SOC-Lab
GitHub: Yogesh-sharda/SOC-Lab
基于Wazuh SIEM和Active Directory构建的完整SOC实验室环境,通过模拟内网攻击场景来教学威胁检测与日志分析的完整流程。
Stars: 0 | Forks: 0
# 🛡️ Wazuh SOC 实验室 — Active Directory 威胁检测环境
## 📌 项目概述
本项目构建于 **第 6 学期 — 网络安全与区块链 B.Tech (Hons.)** 期间。
场景设定:*攻击者已获取内网工作站的访问权限。在此基础上,对内部网络进行枚举,跨系统进行横向移动,并演示关键系统如何被攻陷 —— 同时由 SIEM 实时监控并检测所有操作。*
本实验室涵盖:
- 从受控工作站进行内网枚举
- 跨域加入系统的横向移动模拟
- 使用 **Wazuh SIEM** 进行实时威胁检测
- MITRE ATT&CK 技术映射
- Windows 安全事件日志分析(事件 ID 4625, 4720, 4732, 4104, 4672)
## 🏗️ 实验室架构
```
┌──────────────────────────────────────────────────────────────────────┐
│ HOST MACHINE │
│ Fedora Linux (QEMU/KVM) │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Windows Server │ │ Windows 10 │ │ Kali Linux │ │
│ │ 2019 │ │ (Victim / │ │ (Attacker) │ │
│ │ Domain │ │ Endpoint) │ │ │ │
│ │ Controller │ │ │ │ Nmap, CME, │ │
│ │ DNS + AD DS │ │ Wazuh Agent │ │ Enum4Linux, │ │
│ │ 192.168.122.10 │ │ 192.168.122.20 │ │ SMBClient │ │
│ └────────┬─────────┘ └────────┬────────┘ └──────────────────┘ │
│ │ │ │
│ └──────────┬──────────┘ │
│ virbr0 NAT Network (192.168.122.0/24) │
└──────────────────────────────────────────────────────────────────────┘
│
Internet (AWS EC2)
│
▼
┌────────────────────────────┐
│ AWS EC2 Ubuntu │
│ Wazuh v4.7.5 │
│ Manager + Dashboard │
│ + Indexer │
└────────────────────────────┘
```
查看完整拓扑图 → [`architecture/lab-topology.md`](lab-topology.md)
## 🖥️ 虚拟机
| 机器 | 角色 | 操作系统 | 内存 | 存储 |
|---|---|---|---|---|
| Windows Server 2019 | Active Directory DC + DNS | Windows Server 2019 | 4 GB | 50 GB |
| Windows 10 | 受害端点 (Wazuh Agent) | Windows 10 | 4 GB | 40 GB |
| Kali Linux | 攻击机 | Kali Linux 2024 | 3 GB | 30 GB |
| AWS EC2 | Wazuh SIEM 服务器 | Ubuntu 22.04 | 4 GB | 50 GB |
## 🛠️ 使用的技术
| 类别 | 工具 |
|---|---|
| 虚拟化 | QEMU/KVM, Virtual Machine Manager (Fedora) |
| SIEM | Wazuh v4.7.5 (Manager + Dashboard + Indexer) |
| 域服务 | Active Directory Domain Services (AD DS) |
| 攻击工具 | Nmap, CrackMapExec, Enum4Linux, SMBClient, PowerShell |
| 端点日志记录 | Windows 安全事件, Wazuh Agent |
| 云平台 | AWS EC2 (Ubuntu 22.04) |
| 框架 | MITRE ATT&CK |
## 📋 项目阶段
| 阶段 | 描述 | 状态 |
|---|---|---|
| 1 | Fedora 宿主机 + 虚拟机设置 | ✅ 已完成 |
| 2 | Active Directory + 域控制器 | ✅ 已完成 |
| 3 | Windows 10 加入域 | ✅ 已完成 |
| 4 | 在 AWS EC2 上部署 Wazuh SIEM | ✅ 已完成 |
| 5 | 在 Windows 10 上部署 Wazuh Agent | ✅ 已完成 |
| 6 | 从 Kali 进行攻击模拟 | ✅ 已完成 |
| 7 | 在 Wazuh 中进行检测与分析 | ✅ 已完成 |
## 🎯 检测摘要
| 攻击行为 | 使用工具 | 事件 ID | Wazuh 告警 | MITRE 技术 |
|---|---|---|---|---|
| 网络主机发现 | Nmap | — | 连接尝试 | T1046 |
| SMB 共享枚举 | crackmapexec, smbclient | 4624 / 4625 | SMB 认证事件 | T1135, T1021.002 |
| 暴力破解模拟 | crackmapexec | 4625 | ✅ 已检测 | T1110 |
| 后门账户创建 | net user | 4720 | ✅ 已检测 | T1136.001 |
| 权限提升 | net localgroup | 4732 | ✅ 已检测 | T1078 |
| PowerShell 滥用 | PowerShell | 4104 | ✅ 已检测 | T1059.001 |
| 禁用 Defender 尝试 | Set-MpPreference | 5001 | ✅ 已检测 | T1562.001 |
## 📂 仓库结构
```
wazuh-soc-lab/
│
├── README.md ← You are here
│
├── screenshots/
│ └── README.md ← Screenshot index & descriptions
│
├── architecture/
│ └── lab-topology.md ← Full network diagram & IP table
│
├── configs/
│ ├── ossec-agent.conf ← Sanitized Wazuh agent config
│ └── sysmon-config.xml ← Sysmon config (future)
│
├── reports/
│ └── SOC-Lab-Report.md ← Full project report
│
├── attack-simulations/
│ ├── 01-network-recon.md ← Nmap reconnaissance
│ ├── 02-smb-enumeration.md ← SMB enumeration
│ ├── 03-brute-force.md ← Failed login simulation
│ ├── 04-privilege-escalation.md ← Account creation & escalation
│ └── 05-powershell-abuse.md ← PowerShell attack detection
│
└── docs/
├── setup-guide.md ← Full beginner setup guide
├── troubleshooting.md ← Every error & fix documented
└── event-id-reference.md ← Windows Event ID cheat sheet
```
## 🚧 遇到的问题与解决方案
| 问题 | 根本原因 | 解决方法 |
|---|---|---|
| 虚拟机 ping 被阻止(100% 丢包) | Windows 防火墙默认阻止 ICMP | 在 Windows Defender 防火墙中启用 Echo Request (ICMPv4-In) 规则 |
| 提升为域控制器后域登录失败 | 账户范围更改为 `YOG\Administrator` | 登录时使用带有域前缀的格式 |
| 加入域后无法访问互联网 | DC DNS 不转发互联网查询 | 在 Windows 10 上添加 `8.8.8.8` 作为备用 DNS |
| Wazuh Agent 状态为 "Never Connected" | AWS 安全组中端口 1514/1515 未开放 | 在 EC2 中添加 TCP 1514 和 TCP 1515 的入站规则 |
| Agent 版本不匹配错误 | Agent v4.13/4.14 版本高于 Manager v4.7.5 | 安装完全匹配的 Agent 版本 4.7.5 |
| KVM 网络配置混淆 | 期望使用 VMware 风格的网络;KVM 使用 `virbr0` | 使用默认的 KVM NAT 网络 |
| 遗忘 Wazuh Dashboard 密码 | 凭据仅在安装期间显示一次 | 在 EC2 上通过 `wazuh-passwords-tool.sh` 重置 |
| `agent-auth.exe` PowerShell 错误 | 带参数的带引号路径需要 `&` 运算符 | 使用 `& "path\agent-auth.exe" -m -A ` |
完整的故障排除日志 → [`docs/troubleshooting.md`](troubleshooting.md)
## 🔮 未来改进方向
- [ ] 集成 Sysmon 以获取更丰富的进程遥测数据
- [ ] Mimikatz 凭据转储检测
- [ ] 在 Wazuh 中使用自定义 Sigma 规则
- [ ] Pass-the-Hash 攻击模拟
- [ ] BloodHound Active Directory 枚举
- [ ] 用于自动化响应的 SOAR 剧本
- [ ] 用于欺骗的 SMB 蜜罐共享
- [ ] Wazuh 邮件告警
## 截图索引
| 文件名 | 描述 | 阶段 |
|---|---|---|
|
| Kali ping DC (192.168.122.10) — 8 个数据包,0% 丢包,平均 0.480ms;以及 ping Win10 (192.168.122.20) — 6 个数据包,0% 丢包 | 阶段 3 |
|
| 对 192.168.122.20 进行 Nmap `-sV` 扫描 — 开放端口: 135/tcp msrpc, 139/tcp netbios-ssn, 445/tcp microsoft-ds;操作系统: Windows;MAC: 52:54:00:2F:23:AB | 阶段 6 |
|
| CrackMapExec SMB 枚举 — DESKTOP-1KOOU1K, Win10/Server 2019 Build 19041 x64, 域: yog.local, SMBv1: False, signing: False | 阶段 6 |
|
| 使用 `-u users.txt -p passwords.txt` 进行 CrackMapExec 暴力破解 — 结果: STATUS_LOGON_FAILURE | 阶段 6 |
|
| PowerShell (管理员): `Invoke-WebRequest http://example.com` — StatusCode 200, Content-Type text/html, 可见 CF-RAY 头 | 阶段 6 |
|
| PowerShell (管理员): `net user hacker Password123! /add` — "The command completed successfully" | 阶段 6 |
| `
| PowerShell (管理员): `net localgroup administrations hacker /add` — 系统错误 1376, 组不存在 (拼写错误: 应为 `administrators`) | 阶段 6 |
|
| Wazuh 安全事件列表 — T1078 登录成功/失败, T1098 用户账户已创建 (规则 60109), T1484 用户组已更改 (规则 60170), T1531 登录失败 (规则 60122) | 阶段 6–7 |
|
| Wazuh 安全事件仪表板 — 68 条告警总计,0 个严重,4 次认证失败,24 次认证成功;告警演变趋势和前 5 名饼图 | 阶段 5–7 |
## 🎓 展示的技能
`SIEM 工程` `Active Directory` `威胁检测` `Windows 安全` `日志分析`
`Linux 管理` `云部署 (AWS)` `网络安全` `端点监控`
`MITRE ATT&CK` `蓝队行动` `PowerShell` `Nmap` `CrackMapExec`
## 📰 完整文章
阅读完整的 Medium 文章:
[我从零开始搭建了一个家庭 SOC 实验室 — 以下是我遇到的所有波折(与成功)](https://medium.com/@yogesh.sharda2004/i-built-a-home-soc-lab-from-scratch-heres-everything-that-went-wrong-and-right-51dde76295be)
## 👤 作者
**Yogesh Sharda** — 网络安全与区块链 B.Tech (Hons.)
## 📄 许可证
本项目采用 [MIT 许可证](LICENSE) 授权。
| Kali ping DC (192.168.122.10) — 8 个数据包,0% 丢包,平均 0.480ms;以及 ping Win10 (192.168.122.20) — 6 个数据包,0% 丢包 | 阶段 3 |
|
| 对 192.168.122.20 进行 Nmap `-sV` 扫描 — 开放端口: 135/tcp msrpc, 139/tcp netbios-ssn, 445/tcp microsoft-ds;操作系统: Windows;MAC: 52:54:00:2F:23:AB | 阶段 6 |
|
| CrackMapExec SMB 枚举 — DESKTOP-1KOOU1K, Win10/Server 2019 Build 19041 x64, 域: yog.local, SMBv1: False, signing: False | 阶段 6 |
|
| 使用 `-u users.txt -p passwords.txt` 进行 CrackMapExec 暴力破解 — 结果: STATUS_LOGON_FAILURE | 阶段 6 |
|
| PowerShell (管理员): `Invoke-WebRequest http://example.com` — StatusCode 200, Content-Type text/html, 可见 CF-RAY 头 | 阶段 6 |
|
| PowerShell (管理员): `net user hacker Password123! /add` — "The command completed successfully" | 阶段 6 |
| `
| PowerShell (管理员): `net localgroup administrations hacker /add` — 系统错误 1376, 组不存在 (拼写错误: 应为 `administrators`) | 阶段 6 |
|
| Wazuh 安全事件列表 — T1078 登录成功/失败, T1098 用户账户已创建 (规则 60109), T1484 用户组已更改 (规则 60170), T1531 登录失败 (规则 60122) | 阶段 6–7 |
|
| Wazuh 安全事件仪表板 — 68 条告警总计,0 个严重,4 次认证失败,24 次认证成功;告警演变趋势和前 5 名饼图 | 阶段 5–7 |
## 🎓 展示的技能
`SIEM 工程` `Active Directory` `威胁检测` `Windows 安全` `日志分析`
`Linux 管理` `云部署 (AWS)` `网络安全` `端点监控`
`MITRE ATT&CK` `蓝队行动` `PowerShell` `Nmap` `CrackMapExec`
## 📰 完整文章
阅读完整的 Medium 文章:
[我从零开始搭建了一个家庭 SOC 实验室 — 以下是我遇到的所有波折(与成功)](https://medium.com/@yogesh.sharda2004/i-built-a-home-soc-lab-from-scratch-heres-everything-that-went-wrong-and-right-51dde76295be)
## 👤 作者
**Yogesh Sharda** — 网络安全与区块链 B.Tech (Hons.)
## 📄 许可证
本项目采用 [MIT 许可证](LICENSE) 授权。标签:AD安全, AI合规, AMSI绕过, BurpSuite集成, Cloudflare, CTI, DNS 反向解析, MITRE ATT&CK, OPA, OpenCanary, PE 加载器, SOC实验室, Terraform 安全, Wazuh, Windows Server 2019, 企业安全架构, 内部威胁, 域名控制器, 威胁检测, 安全教育, 安全运营中心, 插件系统, 横向移动, 活动目录, 红队行动, 编程规范, 网络安全, 网络安全实验, 网络映射, 网络枚举, 虚拟化安全, 速率限制, 隐私保护, 靶场