atharva-acharya/AD-SOC-Detection-Lab
GitHub: atharva-acharya/AD-SOC-Detection-Lab
该项目构建了一个四虚拟机的 Active Directory 实验环境,模拟七种企业级攻击场景并通过 Elastic SIEM 和 KQL 规则实现检测,为 SOC 分析师提供端到端的实战训练。
Stars: 0 | Forks: 0
# Active Directory SOC 检测实验室
## 概述
这是一个模拟企业 Active Directory 环境的家庭实验室,用于 SOC 分析师的实操培训。该实验室部署了真实的攻击场景,并使用 Elastic SIEM 构建映射到 MITRE ATT&CK 的检测规则。
## 目标
- 模拟 7 种企业级 AD 攻击
- 为每种攻击编写 KQL 检测规则
- 将调查过程记录为正式的 SOC 报告
- 将所有检测映射到 MITRE ATT&CK 框架
## 实验室架构
```
Kali Linux (Attacker) ──────────────────────────────────────────┐
▼
Windows 10 (Victim) ──► Sysmon ──► Winlogbeat ──────────────────┐
▼
Windows Server 2022 (DC01) ──► Sysmon ──► Winlogbeat ──► Ubuntu Server (Elastic SIEM)
Elasticsearch + Kibana
```
## 网络配置
| 虚拟机 (VM) | 角色 | IP |
|----|------|----|
| Kali Linux 2026.1 | 攻击者 | 10.0.0.4 |
| Ubuntu Server 22.04 | Elastic SIEM | 10.0.0.5 |
| Windows Server 2022 | 域控 (DC01) | 10.0.0.10 |
| Windows 10 | 受害者终端 (WIN10-Victim) | 10.0.0.20 |
- **网络:** VirtualBox NAT Network — SOC-Lab
- **网段:** 10.0.0.0/24
- **Hypervisor:** Oracle VirtualBox 7.1
## 技术栈
| 组件 | 工具 | 版本 |
|-----------|------|---------|
| Hypervisor | VirtualBox | 7.1 |
| SIEM | Elasticsearch | 8.19.16 |
| 可视化 | Kibana | 8.19.16 |
| 遥测数据 | Sysmon (Olaf Hartong config) | v15.20 |
| 日志转发 | Winlogbeat | 8.19.16 |
| 攻击者 OS | Kali Linux | 2026.1 |
| 受害者 OS | Windows 10 Pro | 评估版 |
| 域控 | Windows Server 2022 | 评估版 |
## Active Directory 配置
- **域名:** corp.local
- **域控:** DC01.corp.local
- **域 NetBIOS 名称:** CORP
### 已创建用户
| 姓名 | 用户名 | 部门 | 权限 |
|------|----------|------------|------------|
| John Smith | jsmith | IT | Domain Admin |
| Sarah Johnson | sjohnson | HR | 标准用户 |
| Mike Davis | mdavis | Finance | 标准用户 |
| Emma Wilson | ewilson | IT | 标准用户 |
| Tom Brown | tbrown | Finance | 标准用户 |
### 组织单位
```
corp.local
└── Corp Users
├── IT
├── HR
└── Finance
```
## 攻击场景

| # | 攻击 | MITRE 技术 | 关键事件 ID | 状态 |
| --- | -------------------------- | --------------- | --------------------- | ---------- |
| 1 | Password Spraying | T1110.003 | Event ID 4625 | ✅ 已完成 |
| 2 | Kerberoasting | T1558.003 | Event ID 4769 | ✅ 已完成 |
| 3 | DCSync | T1003.006 | Event ID 4662 | ✅ 已完成 |
| 4 | LSASS Dump | T1003.001 | Sysmon Event 10 | ✅ 已完成 |
| 5 | PsExec 横向移动 | T1021.002 | Sysmon Event 1 + 7045 | ✅ 已完成 |
| 6 | Pass-the-Hash | T1550.002 | Event ID 4624 Type 3 | ✅ 已完成 |
| 7 | 计划任务持久化 | T1053.005 | Event ID 4698 | ✅ 已完成 |
## 构建进度
### 阶段 1 — 基础设施 ✅ 已完成
- [x] VirtualBox NAT Network 创建完成 — SOC-Lab (10.0.0.0/24)
- [x] Kali Linux 2026.1 导入并连接到 SOC-Lab — 10.0.0.4
- [x] Kali 安装了 Guest Additions
- [x] Ubuntu Server 22.04 安装完成 — 静态 IP 10.0.0.5
- [x] Elasticsearch 8.19.16 已安装并运行
- [x] Kibana 8.19.16 已安装,可通过 http://127.0.0.1:5601 访问
- [x] SSH 端口转发配置完成 — 宿主机端口 2222 → 虚拟机端口 22
- [x] Elastic 超级用户密码已生成并保存
### 阶段 2 — Active Directory ✅ 已完成
- [x] Windows Server 2022 (Desktop Experience) 安装完成
- [x] DC01 重命名并分配静态 IP — 10.0.0.10
- [x] Active Directory Domain Services 安装完成
- [x] 林提升完成 — corp.local
- [x] DNS 配置完成 — DC01 作为主 DNS 服务器
- [x] OU 结构创建完成 — Corp Users > IT, HR, Finance
- [x] 跨部门创建了 5 个域用户
- [x] jsmith 被添加到 Domain Admins 以进行 DCSync 模拟
### 阶段 3 — 遥测 ✅ 已完成
**DC01 — 已完成 ✅**
- [x] DC01 上安装了 Sysmon v15.20 — Olaf Hartong sysmonconfig.xml
- [x] DC01 上安装并配置了 Winlogbeat 8.19.16
- [x] Winlogbeat ingest pipelines 已加载到 Elasticsearch
- [x] Winlogbeat index templates 和 Kibana dashboards 已加载
- [x] 确认日志已流入 Kibana — 已验证 4,724+ 条文档
- [x] Elasticsearch 中的 winlogbeat-8.19.16 数据流处于活动状态
- [x] 在 Kibana Discover 中创建了 winlogbeat-* 数据视图
**WIN10-Victim — ✅ 已完成**
- [x] Windows 10 Pro 安装完成 — WIN10-Victim (静态 IP 10.0.0.20)
- [x] WIN10-Victim 已加入 corp.local 域
- [x] 安装了 Sysmon v15.20 — Olaf Hartong sysmonconfig.xml
- [x] Winlogbeat 8.19.16 下载并解压完成
- [x] WIN10-Victim 上的 Winlogbeat 配置完成
- [x] WIN10-Victim 上的 Winlogbeat 服务已安装并启动
- [x] 确认 WIN10-Victim 日志已流入 Kibana — 已验证 19,927+ 条文档
### 阶段 4 — 攻击模拟 + 检测 ✅ 已完成
- [x] Password Spraying — 已模拟并检测
- [x] Kerberoasting — 已模拟并检测
- [x] DCSync — 已模拟并检测
- [x] LSASS Dump — 已模拟并检测
- [x] PsExec 横向移动 — 已模拟并检测
- [x] Pass-the-Hash — 已模拟并检测
- [x] 计划任务持久化 — 已模拟并检测
### 阶段 5 — 文档 + GitHub ✅ 已完成
- [x] KQL 检测规则 — 7 个文件,每种攻击一个
- [x] MITRE ATT&CK Navigator 层导出 (v19)
- [x] SOC 调查报告 — IR-001 至 IR-007
- [x] 设置指南 — 记录了 4 个阶段
- [x] GitHub 仓库已发布
## Winlogbeat 事件日志源
Winlogbeat 配置为在 DC01 和 WIN10-Victim 上收集以下事件日志:
| 日志源 | 用途 |
|------------|---------|
| Application | 应用程序错误和警告 |
| System | OS 级别事件 |
| Security | 身份验证、登录、权限事件 |
| Microsoft-Windows-Sysmon/Operational | 进程创建、网络、文件事件 |
| Windows PowerShell | PowerShell 活动 (events 400, 403, 600, 800) |
| Microsoft-Windows-PowerShell/Operational | 脚本块日志记录 (events 4103, 4104, 4105, 4106) |
## 仓库结构
```
AD-SOC-Detection-Lab/
│
├── README.md
│
├── setup-guides/
│ ├── 01-virtualbox-network.md
│ ├── 02-domain-controller.md
│ ├── 03-elastic-setup.md
│ └── 04-sysmon-winlogbeat.md
│
├── detection-rules/
│ ├── password-spraying.kql
│ ├── kerberoasting.kql
│ ├── dcsync.kql
│ ├── lsass-dump.kql
│ ├── psexec-lateral.kql
│ ├── pass-the-hash.kql
│ └── scheduled-task.kql
│
├── investigation-reports/
│ ├── IR-001-password-spraying.md
│ ├── IR-002-kerberoasting.md
│ ├── IR-003-dcsync.md
│ ├── IR-004-lsass-dump.md
│ ├── IR-005-psexec.md
│ ├── IR-006-pass-the-hash.md
│ └── IR-007-scheduled-task.md
│
└── mitre-navigator/
└── layer.json
```
## 凭证参考
| 系统 | 用户名 | 密码 |
| ------------------ | --------------------------------------------- | ---------- |
| Ubuntu Server | soc-admin | [仅限实验室] |
| Elastic 超级用户 | elastic | [仅限实验室] |
| DC01 管理员 | CORP\Administrator | [仅限实验室] |
| WIN10-Victim 本地用户 | victim-user | [仅限实验室] |
| 所有域用户 | jsmith / sjohnson / mdavis / ewilson / tbrown | [仅限实验室] |
## 作者
**Atharva**
网络安全工程硕士 — 华威大学
HackTheBox CDSA — 2026 年 6 月认证
求职意向:Tier 1 SOC Analyst | 英国 | 具备工作权利 — 无需担保
标签:Active Directory, AMSI绕过, Elastic SIEM, KQL, Plaso, 威胁检测, 安全运营, 扫描框架, 攻击模拟, 越狱测试, 驱动签名利用