grishi05/soc-blueteam-lab

GitHub: grishi05/soc-blueteam-lab

一个基于 Splunk 和 Active Directory 的蓝队家庭实验室,用于练习日志收集、检测工程和事件响应的完整 SOC 工作流程。

Stars: 0 | Forks: 0

# SOC Blue Team 家庭实验室 ![Status](https://img.shields.io/badge/status-active-success) ![Platform](https://img.shields.io/badge/platform-VirtualBox%20%7C%20VMware-blue) ![SIEM](https://img.shields.io/badge/SIEM-Splunk-orange) ![Focus](https://img.shields.io/badge/focus-Blue%20Team%20%7C%20Detection%20Engineering-informational) 一个独立运行的实验室,用于模拟小型企业网络,专为 **Blue Team / SOC** 实践设计:日志收集、检测工程、威胁狩猎和事件响应。 该环境模拟了真实的企业架构 —— 包含 Active Directory 域、边界防火墙、终端设备以及集中式的日志/SIEM 服务器 —— 以便安全地生成攻击行为并进行端到端的调查。 ## 目录 1. [目标](#objectives) 2. [网络拓扑](#network-topology) 3. [实验室组件](#lab-components) 4. [日志与数据流](#log--data-flow) 5. [仓库结构](#repository-structure) 6. [设置说明](#setup-instructions) 7. [检测用例](#detection-use-cases) 8. [事件响应](#incident-response) 9. [展示技能](#skills-demonstrated) 10. [路线图](#roadmap) 11. [参考资料](#references) ## 目标 - 在 VirtualBox/VMware 上构建一个**可复用的**类企业环境。 - 将 **Windows Event Logs**(Security/System/Sysmon)和 **syslog**(pfSense, Linux)集中收集到 **Splunk** 中。 - 针对常见的攻击者行为编写并验证**检测内容(SPL)**,重点关注 Active Directory 中的**暴力破解**和**未授权的特权访问**。 - 实践完整的**事件响应工作流** —— 检测、分类、调查、遏制、根除、恢复和记录文档 —— 并与行业标准框架(NIST 800‑61,MITRE ATT&CK)对齐。 ## 网络拓扑 该实验室采用了分段的网络架构:pfSense 后方是管理/企业 LAN,以及一个代表不可信网络的隔离“攻击者”区。pfSense 负责在各网段间进行路由和过滤,并将其日志转发至 SIEM。 ``` ┌──────────────────────────────┐ │ Host / Hypervisor │ │ (VirtualBox / VMware) │ └──────────────┬────────────────┘ │ NAT / Bridged (Internet) │ ┌──────────▼──────────┐ │ pfSense FW │ │ WAN: DHCP (NAT) │ │ LAN: 192.168.10.1 │ │ OPT1:192.168.20.1 │ └───┬──────────────┬───┘ LAN (Corp) │ │ OPT1 (Attacker / DMZ) 192.168.10.0/24 │ │ 192.168.20.0/24 ┌───────────────┬────────┴───┐ │ │ │ │ │ ┌──────▼──────┐ ┌──────▼──────┐ ┌───▼───────┐ │ ┌───────────────┐ │ DC01 │ │ WKST01 │ │ SPLUNK │ └──▶│ KALI (attacker)│ │ Win Server │ │ Windows 10/ │ │ Ubuntu │ │ 192.168.20.5 │ │ 2022 AD/DNS │ │ 11 Endpoint │ │ Log Server│ └───────────────┘ │192.168.10.10│ │192.168.10.20│ │192.168.10.30 └─────────────┘ └─────────────┘ └───────────┘ ``` 完整的详细信息、VLAN/网段划分依据以及防火墙规则矩阵位于 [`docs/network-topology.md`](docs/network-topology.md) 中。 ## 实验室组件 | 主机 | 角色 | 操作系统 | IP 地址 | 关键服务 | |------------|----------------------------------------|----------------------------|------------------|-------------------------------------------| | `pfSense` | 边界防火墙 / 路由器 | pfSense CE 2.7 | `192.168.10.1` (LAN) | Firewall, DHCP, DNS resolver, syslog export | | `DC01` | 域控制器 | Windows Server 2022 | `192.168.10.10` | AD DS, DNS, Group Policy, Sysmon, UF | | `WKST01` | 加入域的工作站 | Windows 10/11 Pro | `192.168.10.20` | Sysmon, Splunk Universal Forwarder | | `SPLUNK` | 集中式日志服务器 / SIEM | Ubuntu Server 22.04 LTS | `192.168.10.30` | Splunk Enterprise (indexer + search head), rsyslog | | `KALI` | 模拟的攻击者 (Red Team) | Kali Linux | `192.168.20.5` | Nmap, CrackMapExec, Hydra, Impacket | - **域名:** `corp.blueteam.local` (NetBIOS `CORP`) - **Splunk 接收端口 (S2S):** `9997/tcp` - **Syslog 摄取:** `514/udp` 和 `514/tcp` ## 日志与数据流 ``` Windows hosts (DC01, WKST01) │ Security / System / Application / Sysmon (Operational) │ via Splunk Universal Forwarder ──────────────┐ │ ▼ pfSense ── syslog (UDP/TCP 514) ─────────▶ SPLUNK (Ubuntu) │ rsyslog → monitored files Ubuntu/Linux ── local logs / rsyslog ───────▶ Splunk Enterprise (index, parse, search, alert) │ ▼ Dashboards • Alerts • SPL Hunts ``` - Windows 主机运行 **Splunk Universal Forwarder (UF)**,将 Event Logs 和 Sysmon 发送到端口 `9997` 上的 indexer。 - **pfSense** 通过 **remote syslog** 将 Firewall/DHCP/VPN 日志导出到 Ubuntu 服务器,由该服务器上的 `rsyslog` 将其写入 Splunk 监控的文件中。 - 索引(Indexes):`wineventlog`、`sysmon`、`pfsense`、`linux_logs`。 请参阅 [`splunk/`](splunk/) 获取准确的 `inputs.conf`、`outputs.conf` 和 `props.conf`。 ## 仓库结构 ``` SOC/ ├── README.md # You are here ├── LICENSE ├── .gitignore ├── docs/ │ ├── network-topology.md # Detailed topology, addressing, FW rules │ └── setup-guide.md # Step-by-step VM build instructions ├── provisioning/ │ ├── Vagrantfile # Spin up the Ubuntu log server + endpoints │ └── ansible/ │ ├── inventory.ini # Lab inventory │ ├── ubuntu-logserver.yml # Install/configure Splunk + rsyslog │ ├── ad-config.yml # Baseline AD / audit-policy hardening │ └── group_vars/ │ └── all.yml # Shared variables (non-secret) ├── splunk/ │ ├── inputs.conf # Windows Event Log + syslog ingestion │ ├── outputs.conf # Forwarder → indexer routing │ ├── props.conf # Sourcetype parsing │ ├── indexes.conf # Index definitions │ └── README.md # How the Splunk config fits together ├── detections/ │ └── ad-detection-queries.md # SPL: brute force + privileged access └── incident-response/ └── IR-2026-001-brute-force.md # Formal IR report (simulated attack) ``` ## 设置说明 完整说明位于 [`docs/setup-guide.md`](docs/setup-guide.md) 中。简要步骤如下: 1. **创建虚拟网络。** 在 VirtualBox/VMware 中,创建两个内部/仅主机网络:`LAN`(企业)和 `OPT1`(攻击者)。将 pfSense 连接到 WAN (NAT) 和这两个网络。 2. **安装并配置 pfSense** —— 分配接口,设置 LAN `192.168.10.1/24`,启用 DHCP,并配置远程 syslog 发送至 `192.168.10.30`。 3. **构建域控制器 (DC01)** —— 安装 Windows Server 2022,将其提升为 `corp.blueteam.local` 的域控制器,并应用审计策略 GPO(参见 `provisioning/ansible/ad-config.yml`)。 4. **构建工作站 (WKST01)** —— 将其加入域,部署 Sysmon。 5. **构建 Ubuntu 日志服务器 (SPLUNK)** —— 使用 Vagrant/Ansible 进行配置;安装 Splunk Enterprise + rsyslog。 6. **部署 Universal Forwarder** 在 Windows 主机上,并将其指向 `192.168.10.30:9997`。 7. **验证数据摄取** 在 Splunk 中(`index=wineventlog`、`index=pfsense` 等)。 8. **生成遥测数据** 从 KALI 发起,并使用 [`detections/`](detections/) 中的 SPL 进行狩猎。 ## 检测用例 位于 [`detections/ad-detection-queries.md`](detections/ad-detection-queries.md) 中的检测库涵盖(包括但不限于): | ID | 检测项目 | ATT&CK 技术 | 关键事件 ID | |--------|---------------------------------------------|-------------------------------------|----------------------| | D‑001 | 密码暴力破解(单账户) | T1110.001 Password Guessing | 4625, 4740 | | D‑002 | 密码喷射(多账户) | T1110.003 Password Spraying | 4625 | | D‑003 | 暴力破解后成功登录 | T1110 / T1078 Valid Accounts | 4625 → 4624 | | D‑004 | Kerberos 预身份验证失败 | T1110 Brute Force (Kerberos) | 4768, 4771 | | D‑005 | 特权组中添加了新成员 | T1098 / T1078.002 Priv. Escalation | 4728, 4732, 4756 | | D‑006 | 登录时分配了特殊权限 | T1078.002 Domain Accounts | 4672 | | D‑007 | 非工作时间创建新用户账户 | T1136.002 Create Account | 4720 | ## 事件响应 [`incident-response/IR-2026-001-brute-force.md`](incident-response/IR-2026-001-brute-force.md) 是一份正式的、符合 NIST 800‑61 标准的报告,完整剖析了**导致未授权获取 Domain Admin 访问权限的模拟 RDP/SMB 暴力破解攻击** —— 包括基于 Splunk 的调查、时间线、IOC、遏制/根除措施以及经验教训。 ## 展示技能 - **SIEM 工程:** Splunk 部署、forwarder 管理、index/sourcetype 设计。 - **日志流水线:** Windows Event Log、Sysmon 和 syslog 的集中化。 - **检测工程:** 编写与 MITRE ATT&CK 映射的 SPL。 - **威胁狩猎与事件响应:** 结构化的调查和符合 NIST 标准的报告。 - **基础设施即代码:** 使用 Vagrant + Ansible 进行可重复的自动化配置。 - **网络与安全加固:** 网络分段、防火墙策略、AD 审计策略。 ## 路线图 - [ ] 添加 Sysmon 配置(SwiftOnSecurity 基线)和进程树检测。 - [ ] 添加 Wazuh/Elastic 作为替代的 SIEM 进行对比。 - [ ] 为每个检测添加 Atomic Red Team 测试映射。 - [ ] 构建 Splunk 仪表盘(XML)和计划告警(`savedsearches.conf`)。 - [ ] 添加 Windows Event Forwarding (WEF) 收集器作为 UF 的替代方案。 ## 参考资料 - NIST SP 800‑61r2 — *Computer Security Incident Handling Guide* - MITRE ATT&CK® — - Splunk 文档 — *Getting Data In* & *Add-on for Microsoft Windows* - Microsoft — *Advanced Security Audit Policy Settings* & *Events to Monitor* *作为一个个人的 Blue Team / 检测工程作品集项目进行维护。*
标签:OPA, 安全运营中心, 系统提示词, 网络映射, 靶场