Kraizem/SOC-Detection-Lab-Wazuh
GitHub: Kraizem/SOC-Detection-Lab-Wazuh
基于Wazuh构建的SOC检测实验室,演示了端点监控、自定义规则编写和MITRE ATT&CK映射的完整流程。
Stars: 0 | Forks: 0
# 使用 Wazuh 构建 SOC 检测实验室
## 项目概述
本项目演示了如何使用 Wazuh 实现安全运营中心 (SOC) 检测实验室,以监控端点活动、分析日志、检测可疑行为,并将警报映射到 MITRE ATT&CK 框架。
该实验室模拟了三种真实的攻击者场景,涵盖网络侦察、可疑命令执行和异常网络活动——所有这些都通过自定义 Wazuh 规则进行检测和警报。
## 实验室架构
SOC 实验室环境包括:
- **Windows 端点** — 运行 Sysmon 的目标机器
- **Wazuh Agent** — 安装在 Windows 端点上以收集日志
- **Wazuh Manager** — 接收和分析日志,应用检测规则
- **Wazuh Indexer** — 存储和索引警报数据
- **Wazuh Dashboard** — 可视化警报并支持威胁狩猎
来自 Windows 端点的日志被转发到 Wazuh Manager 进行分析和警报生成。
## 端点监控
Windows 端点配置了 **Sysmon** 以捕获详细的系统活动,包括:
- 进程创建 (Event ID 1)
- 网络连接 (Event ID 3)
- 命令执行
- Windows Event Logs
这些日志被转发到 Wazuh 进行监控和检测。
## 攻击模拟
为了测试 SOC 实验室的检测能力,模拟了三种攻击场景。
### 1. 网络侦察 – 端口扫描 (UC1)
使用 Nmap 从攻击机向 Windows 端点模拟网络侦察。
**使用的命令:**
```
nmap -sS -p-
```
**目标:** 发现目标机器上的开放端口和运行服务。
此活动生成了大量连接尝试,这些尝试被捕获在网络和防火墙日志中,随后由 Wazuh 分析。
### 2. 可疑命令执行 (UC2)
在获得对 Windows 端点的访问权限后,通过 `cmd.exe` 手动执行了以下枚举命令:
**使用的命令:**
```
whoami
net user
ipconfig /all
```
| 命令 | 目的 |
|---|---|
| `whoami` | 识别当前用户上下文和权限 |
| `net user` | 枚举机器上的本地用户账户 |
| `ipconfig /all` | 收集完整的网络配置详细信息 |
这些命令被 **Sysmon (Event ID 1 – Process Creation)** 捕获并转发到 Wazuh 进行分析。
### 3. 可疑网络活动 (UC3)
模拟了异常的出站网络连接,以复制入侵后行为,例如 C2 通信或横向移动尝试。
**模拟的活动:**
- 从 `cmd.exe` 和 `powershell.exe` 发起的出站连接
- 针对非常见端口 (4444, 1337, 8888) 的连接
- 来自单个进程的高频连接尝试
这些被 **Sysmon (Event ID 3 – Network Connection)** 捕获,并在 Wazuh 内部与 UC2 命令执行活动相关联,以识别完整的攻击序列。
## 用例
### 用例 1 – 网络侦察检测
**MITRE ATT&CK:** [T1046 – Network Service Discovery](https://attack.mitre.org/techniques/T1046/)
**描述:**
攻击者执行网络侦察,使用 Nmap 发现目标 Windows 端点上的开放端口和运行服务。这通常是攻击链中的第一步。
**攻击模拟:**
```
nmap -sS -p-
```
**日志样本 (Wazuh 警报):**
```
{
"rule": {
"id": "100003",
"level": 14,
"description": "Multiple connection rejections from same source – Possible full port scan (nmap -p-)"
},
"data": {
"srcip": "192.168.1.100",
"action": "DROP",
"frequency": "50+ in 60 seconds"
},
"mitre": {
"technique": "Network Service Discovery",
"id": "T1046"
}
}
```
**检测逻辑:**
- 当同一源 IP 在 60 秒内发生 50 次以上连接拒绝时,触发自定义 Wazuh 规则 `100003`
- 警报级别设置为 **14 (high)**
### 用例 2 – 可疑命令执行
**MITRE ATT&CK:** [T1059 – Command and Scripting Interpreter](https://attack.mitre.org/techniques/T1059/)
**描述:**
获得 Windows 端点访问权限的攻击者手动执行系统枚举命令,以收集有关环境的信息。
**攻击模拟:**
```
whoami
net user
ipconfig /all
```
**日志样本 (Sysmon Event ID 1 → Wazuh 警报):**
```
{
"rule": {
"id": "100011",
"level": 11,
"description": "Sysmon: net user executed – Local user account enumeration detected (T1059)"
},
"data": {
"win.eventdata.image": "C:\\Windows\\System32\\net.exe",
"win.eventdata.commandLine": "net user",
"win.system.eventID": "1",
"win.eventdata.user": "DESKTOP-XXX\\attacker"
},
"mitre": {
"technique": "Command and Scripting Interpreter",
"id": "T1059"
}
}
```
**检测逻辑:**
- 规则 `100010` 通过 Sysmon Event ID 1 检测 `whoami.exe`
- 规则 `100011` 通过匹配进程映像和命令行参数检测 `net user`
- 规则 `100012` 通过匹配进程映像和 `/all` 标志检测 `ipconfig /all`
- 如果在 120 秒内执行了 2 个或更多这些命令,复合规则 `100013` 将在 **level 14** 触发
### 用例 3 – 可疑网络活动
**MITRE ATT&CK:** [T1049 – System Network Connections Discovery](https://attack.mitre.org/techniques/T1049/)
**描述:**
在初始枚举之后,观察到源自 Windows 端点上 shell 进程的异常出站网络连接。Wazuh 将进程活动与网络日志相关联,以识别可疑行为。
**日志样本 (Sysmon Event ID 3 → Wazuh 警报):**
```
{
"rule": {
"id": "100021",
"level": 11,
"description": "Sysmon: Shell process initiated outbound network connection – Suspicious activity (T1049)"
},
"data": {
"win.eventdata.image": "C:\\Windows\\System32\\cmd.exe",
"win.eventdata.destinationIp": "203.0.113.45",
"win.eventdata.destinationPort": "4444",
"win.eventdata.initiated": "true",
"win.system.eventID": "3"
},
"mitre": {
"technique": "System Network Connections Discovery",
"id": "T1049"
}
}
```
**检测逻辑:**
- 规则 `100020` 标记指向已知可疑端口的出站连接
- 规则 `100021` 标记任何进行出站连接的 shell 进程
- 规则 `100022` 在单个进程在 60 秒内建立 20 个以上出站连接时触发
- **关联规则 `100023`** (level 15 – critical) 在检测到网络活动的时间处于 UC2 侦察命令发生后的 5 分钟内时触发,从而识别完整的攻击链
## 检测工程
在 Wazuh 中创建了自定义检测规则以检测所有三个用例。规则文件位于 [`rules/`](./rules/) 文件夹中。
| 规则文件 | 用例 | 规则 ID |
|---|---|---|
| `uc1_nmap_recon.xml` | 网络侦察 | 100001 – 100003 |
| `uc2_suspicious_commands.xml` | 可疑命令执行 | 100010 – 100013 |
| `uc3_network_activity.xml` | 可疑网络活动 | 100020 – 100023 |
## 警报调优
通过以下方式执行警报调优,以减少误报并提高检测准确性:
- 调整规则频率阈值
- 为每个规则设置适当的时间窗口
- 使用复合规则在发出警报之前关联相关事件
## MITRE ATT&CK 映射
| 技术 | ID | 用例 | 检测方法 |
|---|---|---|---|
| Network Service Discovery | [T1046](https://attack.mitre.org/techniques/T1046/) | UC1 – 网络侦察检测 | 自定义 Wazuh 规则触发于网络日志中的 Nmap 扫描模式 |
| Command and Scripting Interpreter | [T1059](https://attack.mitre.org/techniques/T1059/) | UC2 – 可疑命令执行 | Sysmon Event ID 1 (Process Creation) 转发至 Wazuh;对 `whoami`, `net user`, `ipconfig` 发出警报 |
| System Network Connections Discovery | [T1049](https://attack.mitre.org/techniques/T1049/) | UC3 – 可疑网络活动 | Wazuh 关联 Sysmon 网络事件和进程日志以检测异常出站连接 |
## 使用的技术
| 工具 | 角色 |
|---|---|
| Wazuh 4.x | SIEM / 检测引擎 |
| Sysmon 13.x | 端点遥测 |
| Nmap | 攻击模拟 (侦察) |
| Windows Event Logs | 日志源 |
| MITRE ATT&CK Framework | 威胁映射 |
## 结果
### Wazuh Manager – 成功启动

Wazuh v4.14.2 已在 Ubuntu 服务器上成功部署并启动。所有核心服务确认运行中,包括 `wazuh-apid`、`wazuh-analysisd`、`wazuh-remoted`、`wazuh-logcollector` 和 `wazuh-modulesd`。Manager 已完全运行,准备接收来自 Windows 端点 Agent 的日志。
### Wazuh Dashboard – 实时警报源 (威胁狩猎视图)

Wazuh Dashboard 在 24 小时窗口内从受监控的 Windows 端点 (`DESKTOP-6B015RT`) 捕获了 **494 条警报**。警报源显示了各种规则严重级别(级别 3–9),包括:
- **用户账户更改** (Rule 60110) — 在 `net user` 命令模拟期间触发
- **用户组已更改** (Rule 60170) — 在枚举活动期间标记
- **服务启动类型更改** (Rule 61104) — 在后渗透行为期间检测到
- **CIS Benchmark 违规** (Rules 19005–19009) — SCA 策略合规性警报
这表明 Wazuh 在整个攻击模拟过程中积极监控端点活动,并生成映射到真实安全事件的警报。
## 展示的技能
- 日志分析和威胁检测
- 自定义 Wazuh 规则创建和调优
- 使用 Sysmon 进行端点监控
- MITRE ATT&CK 映射
- 检测工程和警报关联
- SOC 实验室环境搭建和配置
SOC 实验室环境包括:
- **Windows 端点** — 运行 Sysmon 的目标机器
- **Wazuh Agent** — 安装在 Windows 端点上以收集日志
- **Wazuh Manager** — 接收和分析日志,应用检测规则
- **Wazuh Indexer** — 存储和索引警报数据
- **Wazuh Dashboard** — 可视化警报并支持威胁狩猎
来自 Windows 端点的日志被转发到 Wazuh Manager 进行分析和警报生成。
## 端点监控
Windows 端点配置了 **Sysmon** 以捕获详细的系统活动,包括:
- 进程创建 (Event ID 1)
- 网络连接 (Event ID 3)
- 命令执行
- Windows Event Logs
这些日志被转发到 Wazuh 进行监控和检测。
## 攻击模拟
为了测试 SOC 实验室的检测能力,模拟了三种攻击场景。
### 1. 网络侦察 – 端口扫描 (UC1)
使用 Nmap 从攻击机向 Windows 端点模拟网络侦察。
**使用的命令:**
```
nmap -sS -p- 标签:AMSI绕过, Beacon Object File, BurpSuite集成, Cloudflare, CTI, GitHub Advanced Security, HTTP/HTTPS抓包, MITRE ATT&CK, Nmap, Redis利用, RFI远程文件包含, SOC实验室, Sysmon, Wazuh, Windows 安全, 后渗透, 威胁检测, 安全加固, 安全运营中心, 实验环境, 态势感知, 插件系统, 攻击模拟, 数据统计, 流量嗅探, 端口扫描, 端点监控, 网络安全, 网络安全审计, 网络映射, 自定义规则, 虚拟驱动器, 防御 evasion, 隐私保护, 驱动签名利用