Nonso-cybersec/soc-lab-project
GitHub: Nonso-cybersec/soc-lab-project
基于 Wazuh、Suricata 与 Active Directory 搭建的 SOC 家庭实验室,用于威胁检测、攻击模拟与自动化事件响应演练。
Stars: 0 | Forks: 0
# Wazuh SIEM SOC 监控实验室 (VirtualBox)
## 项目概述
本项目展示了一个完整的 SOC 环境,使用 Wazuh SIEM 监控 Windows 和 Linux 终端节点,检测安全事件,并使用 Kali Linux 模拟攻击者行为。
## 目标
* 使用 Wazuh 部署集中式 SIEM
* 监控 Windows 和 Linux 终端节点
* 使用 Kali Linux 生成安全事件
* 在 Wazuh dashboard 中分析告警和日志
* 模拟真实的 SOC 监控、日志分析和入侵检测场景
## 实验架构
### 虚拟机
| 系统 | 角色 |
| ------------ | --------------------------------------- |
| Ubuntu 24.04 | Wazuh Manager, Indexer, Dashboard |
| Windows Server 2019 | 受监控终端节点 (Wazuh Agent) |
| Kali Linux | 攻击机与受监控终端节点 |
### 网络配置
* VirtualBox NAT Network
* 所有虚拟机连接到同一虚拟网络
* Wazuh Manager IP: 10.0.2.4
## Wazuh 安装说明
### Ubuntu Server
下载并执行了 Wazuh 安装助手:
```
curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh
sudo bash ./wazuh-install.sh -a
```
### 遇到的挑战
* 现有的 Wazuh agent 与 manager 安装发生冲突
* 包移除脚本损坏
* Wazuh manager 启动超时
* API 连接问题
* VirtualBox 网络配置故障排除
### 解决方案
* 移除了现有的 Wazuh agent
* 使用 dpkg 和 apt 修复了包数据库
* 将虚拟机内存从 4 GB 增加到 6 GB
* 重启了 Wazuh 服务
* 通过使用单个 NAT Network 适配器简化了网络连接
## Agent 部署
### Kali Linux Agent
安装并成功连接到 Wazuh Manager。
状态:Active
### Windows Agent
使用 Wazuh MSI 包进行安装。
Manager IP:
```
10.0.2.4
```
Service:
```
Start-Service WazuhSvc
```
状态:Active
## 结果
成功部署:
* Wazuh Manager
* Wazuh Indexer
* Wazuh Dashboard
* Kali Agent
* Windows Agent
所有 agent 均已成功连接并进行报告。
## 展示的技能
* SIEM 部署
* 安全监控
* Linux 管理
* Windows 终端节点监控
* VirtualBox 联网
* Wazuh Agent 管理
* 故障排除与事件解决
* SOC 实验室设计
## 未来增强计划
* Sysmon 集成
* Suricata 集成
* Nmap 检测用例
* 暴力破解攻击检测
* 自定义 Wazuh 规则
* 威胁狩猎演练
### Wazuh Dashboard - 活动 Agents

此图显示 Windows 和 Kali agent 已成功连接到 Wazuh SIEM。
* Wazuh Dashboard
* Agent 摘要
* Active Agents
* 安全事件
* 实验架构图
## 模拟的检测场景
- 端口扫描 (Kali → Windows)
- 身份验证失败 (Windows)
- 终端节点日志监控 (Kali & Windows)
- Wazuh SIEM 中的安全事件关联
- SOC 攻击模拟:隐藏进程检测
## 目标
本项目演示了如何使用 Wazuh rootcheck 监控在 Linux 终端节点上检测隐藏进程和类 rootkit 行为。
目标是模拟隐蔽技术并观察 SIEM 如何检测异常活动。
## 实验环境
- Ubuntu Linux (已安装 Wazuh Agent)
- Wazuh Manager (SIEM Dashboard)
- Kali Linux (可选攻击虚拟机)
## 步骤 1:系统准备 (Ubuntu 终端节点)
切换到 root 并更新系统包:
```
sudo -i
apt update
```
## 检测结果 — 2026年6月10日
### 触发告警
在加载 Diamorphine 并隐藏 rsyslogd (PID 812) 后,
Wazuh rootcheck 在几分钟内检测到了隐藏进程。
### 告警详情
- **Rule ID:** 521
- **Rule Level:** 11 (高危)
- **MITRE ATT&CK:** T1014 — Rootkit
- **Tactic:** Defense Evasion
- **Detection Message:** 进程 '812' 对 /proc 隐藏。可能是内核级 rootkit。
- **Fired Times:** 4
### Wazuh 如何进行检测
Wazuh rootcheck 独立扫描 /proc,并将内核报告的内容与实际运行的进程进行比较。
两者不匹配 = 隐藏进程 = rootkit 告警。
### 关键要点
内核 rootkit 会对操作系统本身进行隐藏,但无法躲避执行独立带外验证的 SIEM。
这就是终端节点监控至关重要的原因——当系统在内核级遭到入侵时,操作系统是不可信的。
### Wazuh Dashboard - 活动 Agents

### Rootkit 检测告警

### 内核 Rootkit 日志

## Suricata IDS 与 Wazuh SIEM 集成
### 为什么安装 Suricata
单凭 Wazuh 只能监控主机级别的活动——日志文件、进程、文件更改。但它无法查看原始网络流量。威胁行为者扫描我的网络、探测端口或发送恶意数据包,单靠 Wazuh 是无法察觉的。
Suricata 填补了这一空白。它位于网络接口上,检查进出机器的每一个数据包。Wazuh 和 Suricata 结合在一起,提供了完整的可见性:
- Suricata 监控网络层
- Wazuh 监控主机层
没有盲区。
### 安装与规则
在 Ubuntu (Wazuh Manager 主机) 上安装了 Suricata 7.0.3。
使用 suricata-update 来管理 Emerging Threats Open 规则集——包含 50,571 条规则,涵盖已知的攻击模式、恶意软件签名和可疑行为。
关键配置:
- HOME_NET: 10.0.2.4 (Ubuntu — 受保护的资产)
- EXTERNAL_NET: any (其他所有内容,包括 Kali)
- Interface: enp0s3
- Alert log: /var/log/suricata/eve.json
Wazuh 实时读取 eve.json——每一条 Suricata 告警都会立即显示在 Wazuh dashboard 中。
### 攻击模拟 — Nmap 端口扫描
**我的操作:**
从 Kali Linux (10.0.2.15) 向 Ubuntu (10.0.2.4) 运行了 Nmap SYN 扫描:
```
sudo nmap -sS 10.0.2.4
```
**Suricata 检测到的内容:**
- ET SCAN Suspicious inbound to MySQL port 3306
- ET SCAN Suspicious inbound to MSSQL port 1433
- ET SCAN Suspicious inbound to PostgreSQL port 5432
- ET SCAN Suspicious inbound to Oracle SQL port 1521
- ET SCAN Potential VNC Scan 5800-5820
**为什么这是一个 IOC (入侵指标)**
数据库端口 (3306, 1433, 5432, 1521) 绝不应能从外部或不受信任的来源访问。在生产环境中,只有应用服务器与数据库通信——绝不会是终端用户或外部机器。
外部来源扫描这些端口表明:
- 威胁行为者正在进行主动侦察
- 正在寻找凭据薄弱且暴露的数据库
- 正在为数据窃取或勒索软件做准备
这是 PTES 的情报收集阶段——攻击者在发动攻击前正在对目标进行映射。
看到这些告警的 SOC 分析师应该:
1. 识别源 IP (10.0.2.15 — Kali)
2. 检查该 IP 是否进行了其他可疑连接
3. 确定是否确实开放了任何数据库端口
4. 立即在防火墙上阻止该源 IP
5. 如果该 IP 是外部/未知的,则进行上报
### 我学到了什么
- Suricata 可检测 Wazuh 无法察觉的网络级威胁
- eve.json 是 Suricata 的结构化告警日志——Wazuh 会原生读取它
- 数据库端口扫描是高可信度的 IOC——合法用户永远不会直接接触这些端口
- Suricata + Wazuh 组合创建了从网络到主机的完整检测流水线
### 截图


## VirusTotal Active Response 集成
### 为什么构建此功能
Wazuh 告警非常有用,但它们需要人工来响应。在真实的 SOC 中,分析师会被海量告警淹没。对已确认的威胁自动执行响应,可将响应时间从几分钟缩短至几毫秒。
该项目为我的实验室增加了自动化的威胁清除功能——这是迈向全面 SOAR 实施的第一步。
### 工作原理
1. 一个文件被投放到了受监控的 Ubuntu 终端节点上
2. Wazuh syscheck (实时) 立即检测到了该文件
3. Wazuh 将文件哈希发送给 VirusTotal API
4. VirusTotal 对照其安全厂商进行检查
5. 如果是恶意的——active response 脚本将其删除
6. Dashboard 中触发告警,确认已删除
### 测试 — EICAR 文件
使用行业标准的 EICAR 测试文件来验证流水线。EICAR 是一个无害文件,每个防病毒引擎都将其识别为测试威胁。
**结果:**
- 65/68 个 VirusTotal 引擎将其标记为恶意
- 检测到文件路径:/root/eicar.com
- Wazuh 触发:"VirusTotal Alert - 65 engines detected"
- Active response 自动删除了该文件
- Dashboard 中出现 "File deleted" 确认信息
### 这证明了什么
- 具备实时检测的文件完整性监控 (FIM)
- 通过 VirusTotal API 进行威胁情报丰富
- 自动化的主动响应 (基础 SOAR 行为)
- 从检测到响应的完整流水线
### MITRE ATT&CK
- T1204 — 用户执行 (恶意文件)
- 响应:通过 active response 自动删除
### 截图


标签:Active Directory, Plaso, Suricata, Terraform 安全, Wazuh, x64dbg, 安全实验室, 现代安全运营