sblaker/soc-homelab

GitHub: sblaker/soc-homelab

一个基于 Wazuh SIEM 的蓝队 SOC 家庭实验室项目,用于展示安全检测工程、攻击模拟及 MITRE ATT&CK 映射能力。

Stars: 0 | Forks: 0

# SOC 家庭实验室 ![Wazuh](https://img.shields.io/badge/SIEM-Wazuh_4.9-blue?logo=wazuh) ![MITRE ATT&CK](https://img.shields.io/badge/Framework-MITRE_ATT%26CK-red) ![Docker](https://img.shields.io/badge/Stack-Docker_Compose-2496ED?logo=docker) ![Platform](https://img.shields.io/badge/Platform-Windows_11_Host-0078D4?logo=windows) ![Status](https://img.shields.io/badge/Status-Active-brightgreen) 一个真实的 SOC 家庭实验室,旨在展示 L1 安全分析师的技能:SIEM 操作、检测工程、告警分类以及映射到 MITRE ATT&CK 的事件文档。 本项目作为面向蓝队 / 网络安全分析师岗位的作品集而构建。 ## 架构 ``` Host — Windows 11 (i5-1135G7 · 16 GB RAM) │ ├── Docker Desktop │ └── Wazuh Stack (docker-compose) │ ├── wazuh-manager ← receives agent events, applies rules │ ├── wazuh-indexer ← OpenSearch, stores alerts │ └── wazuh-dashboard ← https://localhost (browser on host) │ ├── VirtualBox │ ├── target-linux Ubuntu Server 22.04 · 1.5 GB RAM · Wazuh Agent │ └── target-windows Windows 10 Eval · 3 GB RAM · Wazuh Agent + Sysmon │ └── Browser (host) → Wazuh Dashboard → Alert triage → Write-up Event flow: VM activity → Wazuh Agent → Manager (rules engine) → Indexer → Dashboard → Write-up ``` 完整图表和网络详情:[docs/architecture.md](docs/architecture.md) ## 技术栈 | 组件 | 技术 | 备注 | |---|---|---| | SIEM | **Wazuh 4.9** | Docker Compose,单节点 | | Linux 靶机 | Ubuntu Server 22.04 | 仅限 CLI,Wazuh Agent | | Windows 靶机 | Windows 10 Evaluation | Wazuh Agent + Sysmon (SwiftOnSecurity) | | 攻击模拟 | **Atomic Red Team** | 映射 MITRE 的测试用例 | | 检测规则 | 自定义 Wazuh XML | ID 范围 100001–100099 | | 端点遥测 | **Sysmon** | Event ID 1, 3, 7, 11, 13, 22 | | 分析报告 | Markdown | 针对单次检测,映射 MITRE | ## 检测覆盖率 | ID | 检测项 | MITRE 技术 | 战术 | 严重性 | 状态 | |---|---|---|---|---|---| | [DET-001](detections/DET-001_ssh-brute-force.md) | SSH 暴力破解 | T1110.001 | 凭据访问 | 高 | ✅ | | [DET-002](detections/DET-002_powershell-suspicious.md) | 可疑的 PowerShell | T1059.001 | 执行 | 高 | ✅ | | DET-003 | 计划任务持久化 | T1053.005 | 持久化 | 高 | 🔄 | | DET-004 | 注册表 Run Key 持久化 | T1547.001 | 持久化 | 高 | 🔄 | | DET-005 | SMB / PsExec 横向移动 | T1021.002 | 横向移动 | 高 | 🔄 | | DET-006 | LSASS 内存访问 | T1003.001 | 凭据访问 | 严重 | 🔄 | | DET-007 | Office → 子进程生成 | T1566.001 | 初始访问 | 严重 | 🔄 | ### MITRE ATT&CK 覆盖图 | 战术 | 覆盖的技术 | |---|---| | 凭据访问 | T1110, T1110.001, T1110.003, T1003, T1003.001 | | 执行 | T1059, T1059.001, T1059.003, T1053, T1053.005 | | 持久化 | T1547, T1547.001, T1053, T1053.003 | | 横向移动 | T1021, T1021.001, T1021.002, T1021.004 | | 防御规避 | T1027, T1218, T1562, T1562.001, T1562.002 | | 初始访问 | T1566, T1566.001 | | 命令与控制 | T1071, T1071.004, T1568 | ## 自定义检测规则 规则位于 [`wazuh/rules/`](wazuh/rules/) 中,并通过 Docker 卷挂载加载到 Wazuh Manager。 | 文件 | 覆盖范围 | 规则 ID | |---|---|---| | [custom_ssh.xml](wazuh/rules/custom_ssh.xml) | SSH 暴力破解、用户枚举、sudo 滥用 | 100001–100006 | | [custom_windows.xml](wazuh/rules/custom_windows.xml) | 基于 Sysmon:进程注入、注册表、文件释放、LSASS | 100020–100028 | | [custom_mitre_mapped.xml](wazuh/rules/custom_mitre_mapped.xml) | 完整 MITRE 标签覆盖:T1110, T1059, T1053, T1547, T1021, T1562 | 100060–100096 | ## 攻击模拟 位于 [`atomic-red-team/playbooks/`](atomic-red-team/playbooks/) 的剧本 —— 每个都包含确切的命令、预期的 Wazuh 告警和清理程序。 | 剧本 | 技术 | 平台 | |---|---|---| | [T1110-001 SSH 暴力破解](atomic-red-team/playbooks/T1110-001_ssh-brute-force.md) | T1110.001 | Linux | | [T1059-001 PowerShell](atomic-red-team/playbooks/T1059-001_powershell-suspicious.md) | T1059.001 | Windows | | [T1053-005 计划任务](atomic-red-team/playbooks/T1053-005_scheduled-task.md) | T1053.005 | Windows | | [T1547-001 注册表 Run Key](atomic-red-team/playbooks/T1547-001_registry-run-key.md) | T1547.001 | Windows | | [T1021-002 SMB/PsExec](atomic-red-team/playbooks/T1021-002_smb-psexec.md) | T1021.002 | Windows | ## 截图 | 仪表盘概览 | Agent:target-linux | |---|---| | ![Wazuh dashboard overview](https://raw.githubusercontent.com/sblaker/soc-homelab/master/screenshots/dashboard-overview.png) | ![Agent target-linux](https://raw.githubusercontent.com/sblaker/soc-homelab/master/screenshots/agent-target-linux.png) | | Agent:target-windows | MITRE ATT&CK 覆盖率 | |---|---| | ![Agent target-windows](https://raw.githubusercontent.com/sblaker/soc-homelab/master/screenshots/agent-target-windows.png) | ![MITRE coverage](https://raw.githubusercontent.com/sblaker/soc-homelab/master/screenshots/mitre-coverage.png) | ## 快速开始(复现指南) ### 前置条件 - Windows 10/11 宿主机,最低 16 GB 内存 - 配备 WSL 2 的 [Docker Desktop](https://www.docker.com/products/docker-desktop/) - [VirtualBox](https://www.virtualbox.org/) - Ubuntu Server 22.04 ISO + Windows 10 Evaluation ISO ### 步骤 **1 — 启动 Wazuh (Docker)** ``` cd wazuh docker compose -f generate-indexer-certs.yml run --rm generator docker compose up -d # Dashboard → https://localhost (admin / SecretPassword) ``` 指南:[docs/docker-setup.md](docs/docker-setup.md) **2 — 创建虚拟机** - `target-linux`:Ubuntu Server 22.04,1.5 GB 内存,NAT + Host-only 网络适配器 - `target-windows`:Windows 10 Eval,3 GB 内存,NAT + Host-only 网络适配器 指南:[docs/vm-setup.md](docs/vm-setup.md) **3 — 注册 Wazuh Agent** 两台虚拟机都指向 `192.168.56.1`(Host-only 网络上的宿主机 IP,即 Docker 运行的地方)。 ``` # target-linux sudo WAZUH_MANAGER='192.168.56.1' apt install wazuh-agent -y sudo systemctl enable --now wazuh-agent ``` 指南:[docs/agents-setup.md](docs/agents-setup.md) **4 — 安装 Sysmon (Windows 靶机)** ``` # target-windows (admin PowerShell) .\Sysmon64.exe -accepteula -i sysmonconfig.xml ``` 指南:[docs/sysmon-setup.md](docs/sysmon-setup.md) **5 — 加载自定义规则** `wazuh/rules/` 中的规则通过 `wazuh/docker-compose.yml` 中定义的卷自动挂载到 Manager 容器中。每次更改规则后请重启 manager: ``` docker compose restart wazuh.manager ``` **6 — 运行模拟并验证检测** ``` # target-linux — 触发 SSH 暴力破解检测 for i in {1..6}; do sshpass -p "wrong${i}" ssh -o StrictHostKeyChecking=no labuser@127.0.0.1 2>/dev/null done ``` 然后检查 Wazuh Dashboard:**Security Events** → 过滤 `rule.id: 100001` ## 仓库结构 ``` soc-homelab/ ├── docs/ # Setup guides (Italian) │ ├── architecture.md │ ├── docker-setup.md │ ├── vm-setup.md │ ├── agents-setup.md │ └── sysmon-setup.md ├── wazuh/ │ ├── docker-compose.yml # Wazuh 4.9 single-node + custom rules mount │ ├── rules/ │ │ ├── custom_ssh.xml # SSH detection rules │ │ ├── custom_windows.xml # Sysmon-based Windows rules │ │ └── custom_mitre_mapped.xml │ └── decoders/ # Custom decoders (if needed) ├── sysmon/ │ └── sysmon-config.xml # SwiftOnSecurity config (add manually) ├── atomic-red-team/ │ └── playbooks/ # Attack simulation guides ├── detections/ │ ├── README.md # Coverage index + template │ ├── DET-001_ssh-brute-force.md │ └── DET-002_powershell-suspicious.md └── screenshots/ ``` ## 资源预算 | 组件 | 类型 | 内存 | |---|---|---| | Wazuh 技术栈 | Docker | ~3.5–4 GB | | target-linux | VirtualBox | 1.5 GB | | target-windows | VirtualBox | 3 GB | | 宿主机预留 | — | ~7–8 GB | | **总计** | | **~8.5 GB** | ## 关键发现 在攻击模拟期间捕获的真实告警 —— 位于 [`detections/`](detections/) 的 JSON 文件。 ### DET-001 — SSH 暴力破解 (T1110.001) | 字段 | 值 | |---|---| | 规则 ID | `5712` (内置) + `100001` (自定义) | | 级别 | 10 — 高 | | 频率 | 约 10 秒内 8 次身份验证失败 | | 源 IP | `127.0.0.1` (实验室中的环回地址;在生产环境中应为攻击者 IP) | | 目标用户 | `fakeuser` (不存在 — 自动化扫描器的典型特征) | | 结果 | 无成功登录(未出现 `Accepted`) | | MITRE | T1110 · T1110.001 — 凭据访问 / 暴力破解 | | 时间戳 | 2026-06-24T11:58:40Z | ### DET-002 — 可疑的 PowerShell (T1059.001) | 字段 | 值 | |---|---| | 规则 ID | `92057` (内置) + `100021` (自定义) | | 级别 | 12 — 高 | | 检测到的标志 | `-NoP -NonI -W Hidden -Exec Bypass -EncodedCommand` | | 父进程 | `powershell.exe` (在真实攻击中为:`winword.exe` / `excel.exe`) | | Payload | Base64 → `Write-Host 'Atomic Red Team T1059.001 test'` | | Sysmon 事件 | EID 1 (进程创建) | | MITRE | T1059.001 — 执行 / PowerShell + T1027 — 混淆 | | 时间戳 | 2026-06-24T12:07:29Z | ## 实验室结果 在截图时,两个 Agent 均处于活跃状态并进行报告: | Agent ID | 名称 | 平台 | IP | 状态 | 已运行模拟 | |---|---|---|---|---|---| | 001 | target-linux | Ubuntu Server 22.04 | `192.168.56.101` | ✅ 活跃 | SSH 暴力破解 (T1110.001) | | 002 | target-windows | Windows 11 + Sysmon v15.21 | `127.0.0.1` | ✅ 活跃 | 可疑 PowerShell (T1059.001) | ## 作者 作品集项目 — 蓝队 / SOC 分析师 L1 [GitHub](https://github.com/sblaker/soc-homelab)
标签:Wazuh, 安全运营, 实验环境, 扫描框架, 请求拦截