firebl4de/soc-homelab
GitHub: firebl4de/soc-homelab
一套完整的SOC检测实验室,覆盖从侦察到黄金票据的11步AD攻击链,提供Splunk SPL查询和MITRE ATT&CK映射,帮助分析师在模拟环境中练习检测与事件响应。
Stars: 0 | Forks: 0
# SOC 家庭实验室
一个动手实操的家庭实验室,模拟了从初始侦察到完全攻陷 Active Directory 的真实攻击链。旨在使用行业标准工具培养实用的检测、调查和事件响应技能。
## 实验室环境
| 机器 | 角色 | 操作系统 | IP |
|---|---|---|---|
| Kali Linux | 攻击者 | Kali 2024 | 192.168.xxx.xx9 / 192.168.xxx.xx4 |
| Windows 10 Pro | 受害者 (加入域) | Windows 10 Pro | 192.168.xxx.xx3 |
| Windows Server 2016 | 域控制器 | Windows Server 2016 | 192.168.xxx.xx2 |
| CentOS | Splunk SIEM | CentOS 9 | 192.168.xxx.xx1 / 192.168.xxx.xx1 |
**检测栈:** Splunk Enterprise + Sysmon + Windows Event Forwarding + Linux auditd + Wazuh (文件完整性监控)
**Wazuh 角色:** 文件完整性监控 (FIM) 在所有 Windows 终端上实时部署 — 监控 `hosts` 文件、Desktop 和 Tools 目录中文件的创建、修改和删除。在分类排查期间,FIM 可以立即解答“攻击者是否丢弃或篡改了任何文件?”,而无需手动搜寻 Sysmon EID 11。
## 攻击链
本实验室涵盖了 11 起事件中的完整威胁行为者杀伤链:
```
Reconnaissance → Credential Access → Execution → Persistence → Credential Dumping → Lateral Movement → AD Attack → Domain Compromise → Persistent Domain Access
```
| # | 事件 | 工具 | 严重程度 |
|---|---|---|---|
| 01 | 端口扫描 / 侦察 | Nmap | MEDIUM |
| 02 | 暴力破解 — Linux SSH | Hydra | HIGH |
| 03 | 暴力破解 — Windows SSH | Hydra | HIGH |
| 04 | 反向 Shell | Netcat + PowerShell | CRITICAL |
| 05 | 持久化 — 计划任务 | schtasks.exe | HIGH |
| 06 | 凭据转储 — LSASS | Mimikatz + comsvcs.dll | CRITICAL |
| 07 | 横向移动 — PsExec | Impacket PsExec | CRITICAL |
| 08 | Kerberoasting | Impacket GetUserSPNs | HIGH |
| 09 | Pass-the-Hash | Impacket PsExec + NTLM hash | HIGH |
| 10 | DCSync | Impacket secretsdump | HIGH |
| 11 | 黄金票据 | Impacket ticketer + psexec | CRITICAL |
## 文档内容
每个事件包括:
- **检测** — 如何在 Splunk 中识别攻击
- **SPL 查询** — 用于检测的精确搜索语句
- **威胁指标 (IOCs)** — 需要关注的失陷指标
- **MITRE ATT&CK** — 战术和技术映射
- **事件响应** — 一线 SOC 分析师工作流(分类排查、真阳性/假阳性 (TP/FP)、升级)
- **根本原因分析** — 导致攻击发生的原因及其修复方法
## 文件
| 文件 | 描述 |
|---|---|
| `README.md` | 本文件 |
| `Report/SOC_Detection_Report.md` | 完整报告 — 所有 11 起事件的检测、IR 和 RCA |
| `Report/SOC_Detection_Report.pdf` | 报告的 PDF 版本 |
| `Queries/01_port_scan.spl` | SPL — 端口扫描检测 |
| `Queries/02_brute_force_linux.spl` | SPL — Linux SSH 暴力破解 |
| `Queries/03_brute_force_windows.spl` | SPL — Windows SSH 暴力破解 |
| `Queries/04_reverse_shell.spl` | SPL — 反向 Shell 检测 |
| `Queries/05_persistence_scheduled_task.spl` | SPL — 计划任务持久化 |
| `Queries/06_credential_dumping_lsass.spl` | SPL — LSASS 凭据转储 |
| `Queries/07_lateral_movement_psexec.spl` | SPL — PsExec 横向移动 |
| `Queries/08_kerberoasting.spl` | SPL — Kerberoasting (RC4 降级) |
| `Queries/09_pass_the_hash.spl` | SPL — Pass-the-Hash (NtLmSsp) |
| `Queries/10_dcsync.spl` | SPL — DCSync (DS-Replication GUID) |
| `Queries/11_golden_ticket.spl` | SPL — 黄金票据 (针对不存在账户的 EID 4672) |
## 使用的工具
| 工具 | 用途 |
|---|---|
| Splunk Enterprise | SIEM — 日志摄取、搜索、告警 |
| Sysmon | 增强的 Windows 终端遥测 |
| Wazuh | Windows 终端上的文件完整性监控 (FIM) |
| Nmap | 端口扫描 / 侦察 |
| Hydra | SSH 暴力破解模拟 |
| Netcat | 反向 Shell 监听器 |
| Mimikatz | 凭据转储 (LSASS) |
| Impacket | PsExec, GetUserSPNs, secretsdump, ticketer, Pass-the-Hash |
| Windows Server 2016 | Active Directory 域控制器 |
## 关键检测
```
# 端口扫描 — 单一源对多个端口发起攻击
index=main EventCode=3
| bucket _time span=1m
| stats dc(DestinationPort) as unique_ports by _time, SourceIp, DestinationIp
| where unique_ports > 5
# Reverse Shell — PowerShell 向非标准端口发起出站连接
index=main EventCode=3 Image="*powershell*"
| where DestinationPort != 80 AND DestinationPort != 443
# Kerberoasting — RC4 加密降级
index=main EventCode=4769 Ticket_Encryption_Type=0x17
# PsExec Lateral Movement — services.exe 启动的随机二进制文件
index=main EventCode=1 ParentImage="*services.exe*" Image="C:\\Windows\\*.exe"
| where NOT match(Image, "(?i)(svchost|sppsvc|TrustedInstaller|msiexec)")
# Pass-the-Hash — 网络登录使用 NTLM 而非 Kerberos
index=main EventCode=4624 Logon_Type=3
| search Logon_Process="NtLmSsp" Account_Name="Administrator"
# DCSync — 来自非 DC 源的 DS-Replication GUIDs
index=main EventCode=4662
| search Properties="*1131f6aa*" OR Properties="*1131f6ab*"
# Golden Ticket — 无 AD 存在的账户出现 EID 4672,且无前置 4768
index=main EventCode=4672
| stats count by Account_Name
| search NOT [
search index=main EventCode=4720
| stats count by Account_Name
| fields Account_Name
]
```
## MITRE ATT&CK 覆盖范围
| 战术 | 涵盖的技术 |
|---|---|
| TA0043 侦察 | T1046 网络服务发现 |
| TA0006 凭据访问 | T1110.001 密码猜测, T1003.001 LSASS 内存, T1558.003 Kerberoasting, T1003.006 DCSync, T1558.001 黄金票据 |
| TA0002 执行 | T1059.001 PowerShell |
| TA0011 命令与控制 | T1571 非标准端口 |
| TA0003 持久化 | T1053.005 计划任务 |
| TA0008 横向移动 | T1021.002 SMB/管理共享, T1543.003 Windows 服务, T1550.002 Pass-the-Hash |
标签:Active Directory, AD域安全, AI合规, ATT&CK映射, CentOS, Cloudflare, Conpot, CTI, DCSync, Home Lab, Hydra, Impacket, IPv6, Kerberoasting, Kill Chain, Linux auditd, LSASS, Mimikatz, MITRE ATT&CK, Netcat, Nmap, NTLM, OpenCanary, Pass-the-Hash, Plaso, PoC, PowerShell, PsExec, SCADA, SPL查询, SSH安全, Sysmon, Terraform 安全, TGT, Wazuh, Windows Event Forwarding, Windows安全, x64dbg, 反弹Shell, 哈希传递, 嗅探欺骗, 域控安全, 域渗透, 安全取证, 安全培训, 安全实验, 安全实验室, 安全运营中心, 插件系统, 攻击链, 攻防演练, 数据统计, 暴力破解, 权限维持, 横向移动, 电子数据取证, 端口扫描, 编程规范, 网络安全, 网络安全教程, 网络映射, 虚拟驱动器, 计划任务, 速率限制处理, 隐私保护