meAlien/SIEM-homelab
GitHub: meAlien/SIEM-homelab
一个基于 Wazuh + Sysmon 的 SIEM 家庭实验室,通过模拟真实攻击场景并编写自定义检测规则,帮助 SOC 分析师掌握日志分析、检测工程和事件调查技能。
Stars: 0 | Forks: 0
# SIEM 家庭实验室 — Wazuh + Sysmon 威胁检测




一个自建的家庭实验室,用于模拟真实的攻击者技术,并通过自定义调优的 SIEM 进行检测。旨在展示实用的 SOC 分析师技能——日志分析、检测工程和事件调查。
## 实验室架构
```
┌─────────────────────┐ ┌──────────────────────┐
│ Windows 10 VM │────────▶│ Wazuh Manager │
│ │ logs │ (Docker on host) │
│ • Sysmon v15 │ │ │
│ • Wazuh Agent 4.7 │ │ • Wazuh Indexer │
│ • Attack tools │ │ • Wazuh Dashboard │
└─────────────────────┘ └──────────────────────┘
```
## 工具与技术
| 工具 | 版本 | 用途 |
|---|---|---|
| Wazuh | 4.7 | SIEM — 日志摄取、告警、仪表盘 |
| Sysmon | 15.x | Windows 端点遥测 |
| VirtualBox | 7.x | 用于 Windows VM 的 Hypervisor |
| Docker | Latest | 在宿主机上运行 Wazuh 技术栈 |
| Mimikatz | 2.2.0 | 凭据转储模拟 |
## 攻击场景与检测覆盖
| # | 技术 | MITRE ID | Sysmon EID | 自定义规则 ID | 严重程度 |
|---|---|---|---|---|---|
| A | 通过 Mimikatz 进行凭据转储 | T1003.001 | 10 | 100100–100102 | Critical (15) |
| B | 注册表 Run 键持久化 | T1547.001 | 11, 13 | 100110–100112 | High (13) |
| C | 编码 PowerShell 侦察 | T1059.001 | 1, 22 | 100120–100122 | High (12) |
| — | 多阶段攻击关联 | T1003+T1547 | — | 100130 | Critical (15) |
## 仓库结构
```
siem-homelab/
├── README.md # This file
├── rules/
│ └── custom_rules.xml # 10 custom Wazuh detection rules
├── sysmon/
│ └── sysmonconfig.xml # Tuned Sysmon config with EID 10/13 includes
├── docs/
│ ├── scenario-a-walkthrough.md # Credential dumping investigation
│ ├── scenario-b-walkthrough.md # Persistence investigation
│ └── scenario-c-walkthrough.md # Encoded PowerShell investigation
└── evidence/
├── setup/ # Lab setup screenshots
├── scenario-a/ # Mimikatz alert evidence
├── scenario-b/ # Registry persistence evidence
└── scenario-c/ # PowerShell recon evidence
```
## 设置指南
### 前置条件
- 宿主机具有 8 GB RAM
- 已安装 VirtualBox
- 已安装 Docker Desktop(分配 5 GB RAM)
### 1. 部署 Wazuh
```
git clone https://github.com/wazuh/wazuh-docker.git -b v4.7.0
cd wazuh-docker/single-node
docker compose -f generate-indexer-certs.yml run --rm generator
docker compose up -d
```
访问 `https://localhost` 处的仪表盘 — 凭据:`admin / SecretPassword`
### 2. 部署自定义检测规则
```
bash
docker exec -it single-node-wazuh.manager-1 bash
cp /var/ossec/etc/rules/local_rules.xml /var/ossec/etc/rules/local_rules.xml.bak
# 将 rules/custom_rules.xml 的内容粘贴到 local_rules.xml 中
/var/ossec/bin/wazuh-analysisd -t
/var/ossec/bin/wazuh-control restart
```
### 3. 在 Windows VM 上部署 Sysmon
```
cd C:\Tools\Sysmon
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
```
## 关键发现
- 默认的 Wazuh 规则不涵盖 Sysmon EID 10(lsass 访问)或 EID 13(注册表 Run 键写入)—— 自定义规则对于这些检测至关重要
- SwiftOnSecurity Sysmon 配置默认排除了对 lsass 进程的访问 —— 需要针对 `\CurrentVersion\Run` 和 lsass 目标添加显式包含规则
- Mimikatz 对 lsass 使用访问掩码 `0x1410` —— 这是一个高度具体且可靠的检测指标,几乎零误报
- 编码的 PowerShell(`-EncodedCommand`)与具有脚本引擎的父进程相结合,是一个高可信度的执行指标
## 作者
**Abdul Hadi**
MCA 研究生 — Lovely Professional University
[LinkedIn](https://www.linkedin.com/in/abdul-hadi-719810248/)
[GitHub](https://github.com/meAlien)
标签:请求拦截