dinesh3690/-soc-home-lab1
GitHub: dinesh3690/-soc-home-lab1
基于Splunk和Sysmon搭建的家庭SOC实验室,通过模拟暴力破解和端口扫描攻击来训练威胁检测与告警能力。
Stars: 0 | Forks: 0
# SOC 家庭实验室 — 使用 Splunk 和 Sysmon 的威胁检测
一个从零搭建的全功能安全运营中心( SOC )家庭实验室。该项目模拟真实世界的攻击场景,并使用行业标准工具进行检测——Splunk SIEM、Sysmon 端点监控以及 Kali Linux 作为攻击机。
## 实验室架构
```
┌─────────────────────────────────────────────────────────────┐
│ HOST MACHINE (Laptop) │
│ │
│ ┌─────────────────┐ ┌────────────────────────┐ │
│ │ Windows Server │ │ Splunk Enterprise │ │
│ │ 2022 VM │────────▶│ (SIEM) │ │
│ │ │ logs │ localhost:8000 │ │
│ │ Sysmon v15.20 │ port │ │ │
│ │ UF installed │ 9997 │ index: wineventlog │ │
│ │ 192.168.136.131│ │ 192.168.136.1 │ │
│ └────────▲────────┘ └────────────────────────┘ │
│ │ attack │
│ ┌────────┴────────┐ │
│ │ Kali Linux VM │ │
│ │ (Attacker) │ │
│ │ 192.168.136.129│ │
│ └─────────────────┘ │
│ │
│ Network: VMware NAT — 192.168.136.0/24 │
└─────────────────────────────────────────────────────────────┘
```
## 使用工具
| 工具 | 版本 | 用途 |
|------|---------|---------|
| VMware Workstation Player | 17 | 虚拟化平台 |
| Windows Server 2022 | 评估版(180天) | 目标/受害机 |
| Sysmon | v15.20 | 端点遥测与日志记录 |
| SwiftOnSecurity 配置 | 最新版 | Sysmon 检测规则集 |
| Splunk Enterprise | 10.2.3 | SIEM — 日志收集、搜索、告警 |
| Splunk Universal Forwarder | 10.2.3 | 从虚拟机向 Splunk 转发日志 |
| Kali Linux | 2025.3 | 攻击机 |
| Nmap | 7.98 | 端口扫描与服务枚举 |
## 已搭建功能
### 1. 端点监控
- 在 Windows Server 2022 上部署 Sysmon v15.20 ,使用 SwiftOnSecurity 配置
- 配置 Splunk Universal Forwarder 将日志转发至集中式 Splunk SIEM
- 收集两个日志源:Windows 安全事件和 Sysmon 操作日志
- 已收集超过 4500 条 Sysmon 事件和 965 条安全事件
### 2. 暴力破解攻击模拟与检测
- 使用虚假凭据模拟 10 次连续登录失败
- 在 Splunk 中检测到 EventCode=4625(登录失败)事件
- 编写 SPL 检测规则,将事件按 60 秒窗口分组,当同一账户失败超过 5 次时触发告警
- 保存为计划 Splunk 告警,每 5 分钟运行一次
### 3. 端口扫描模拟与分析
- 从 Kali Linux 对 Windows Server 2022 执行 Nmap 服务扫描
- 识别开放端口:135 (MSRPC)、139 (NetBIOS-SSN)、445 (SMB)、5357、5985 (Microsoft HTTP API)
- 操作系统指纹确认:Windows,CPE `cpe:/o:microsoft:windows`
- 以漏洞评估格式记录发现结果,包含服务版本信息
## 攻击检测
### 检测 1 — 暴力破解登录攻击
**攻击:** 短时间内针对 Windows 账户多次登录失败
**日志源:** Windows 安全 — EventCode 4625(账户登录失败)
**SPL 查询:**
```
index=wineventlog EventCode=4625
| bucket _time span=60s
| stats count by _time, Account_Name, ComputerName
| where count >= 5
```
**结果:** 在 60 秒窗口内检测到账户 `FakeUser` 在 `WIN-OHJAI5IO3E2` 上发生 10 次登录失败
**告警:** 计划 Splunk 告警 — 当任意 60 秒周期内登录失败次数超过 5 次时触发
### 检测 2 — 网络侦察(端口扫描)
**攻击:** 从 Kali Linux (192.168.136.129) 对 Windows Server (192.168.136.131) 执行 Nmap 端口扫描
**工具:** `nmap -p 1-1000 -T4 192.168.136.131`
**发现结果:**
| 端口 | 状态 | 服务 | 版本 |
|------|-------|---------|---------|
| 135/tcp | open | msrpc | Microsoft Windows RPC |
| 139/tcp | open | netbios-ssn | Microsoft Windows netbios-ssn |
| 445/tcp | open | microsoft-ds | Microsoft Windows Server 2008 R2 |
| 5357/tcp | open | http | Microsoft HTTPAPI httpd 2.0 |
| 5985/tcp | open | http | Microsoft HTTPAPI httpd 2.0 |
**风险:** 端口 445 (SMB) 开放 — 历史上曾被 EternalBlue (MS17-010)、WannaCry 勒索软件利用。端口 135 (RPC) 开放 — 存在潜在的 DCE/RPC 攻击面。
**建议:** 通过 Windows 防火墙关闭不必要的端口。禁用 SMBv1。将 RPC 访问限制在内部网络。
**使用的 Sysmon 查询:**
```
index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3
| stats dc(DestinationPort) as ports_scanned, values(DestinationPort) as ports by SourceIp, ComputerName
```
## SPL 查询参考
### 搜索所有 Sysmon 事件
```
index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
```
### 搜索所有登录失败事件
```
index=wineventlog EventCode=4625
```
### 搜索所有成功登录事件
```
index=wineventlog EventCode=4624
```
### 暴力破解检测规则
```
index=wineventlog EventCode=4625
| bucket _time span=60s
| stats count by _time, Account_Name, ComputerName
| where count >= 5
```
### 进程创建事件(Sysmon EventCode=1)
```
index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| table _time, ComputerName, Image, CommandLine, ParentImage
```
### 网络连接事件(Sysmon EventCode=3)
```
index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3
| table _time, SourceIp, DestinationIp, DestinationPort, Image
```
### 按频率排名的 Top 进程
```
index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| stats count by Image
| sort -count
| head 20
```
## 关键 Sysmon 事件代码参考
| 事件代码 | 描述 | 使用场景 |
|-----------|-------------|----------|
| 1 | 进程创建 | 检测恶意软件执行 |
| 3 | 网络连接 | 检测 C2 通信、端口扫描 |
| 5 | 进程终止 | 跟踪进程生命周期 |
| 7 | 镜像加载 | 检测 DLL 注入 |
| 8 | CreateRemoteThread | 检测进程注入 |
| 11 | 文件创建 | 检测文件释放 |
| 12/13 | 注册表事件 | 检测持久化机制 |
| 22 | DNS 查询 | 检测可疑 DNS 解析 |
## 关键 Windows 安全事件代码参考
| 事件代码 | 描述 |
|-----------|-------------|
| 4624 | 成功登录 |
| 4625 | 登录失败 |
| 4648 | 使用显式凭据登录 |
| 4672 | 分配特殊权限 |
| 4720 | 创建用户账户 |
| 4726 | 删除用户账户 |
| 4728 | 向安全组添加成员 |
## 经验教训
- Sysmon EventCode=3 记录的是受监控主机的出站连接,而非入站扫描——入站侦察更适合通过防火墙日志或基于网络的入侵检测系统(IDS)来检测
- SwiftOnSecurity Sysmon 配置开箱即用,覆盖全面且误报率低
- Windows 防火墙会在连接完全建立前阻止大部分 Nmap SYN 扫描数据包,因此启用基于主机的防火墙能有效对抗侦察行为
- Splunk 的 `bucket` 命令对于基于时间窗口的检测规则至关重要——它将事件按固定时间段分组,用于阈值告警
- Universal Forwarder 必须以 LocalSystem 身份运行,才能访问 Windows Server 2022 上 Sysmon 的事件日志通道
## 仓库文件列表
```
soc-home-lab/
├── README.md — This file
├── splunk-queries/
│ ├── brute-force-detection.spl — Brute force SPL query
│ ├── port-scan-detection.spl — Port scan SPL query
│ └── useful-soc-queries.spl — General SOC queries
├── docs/
│ ├── lab-setup-guide.md — Step by step setup guide
│ └── vulnerability-assessment.md — Nmap findings report
└── network-diagram/
└── lab-architecture.md — Network diagram description
```
## 展示的技能
- SIEM 配置与日志接入(Splunk Enterprise)
- 端点检测与响应(EDR)工具部署(Sysmon)
- 攻击模拟——暴力破解与网络侦察
- SPL(搜索处理语言)查询编写
- 告警规则创建与基于阈值的检测
- 漏洞评估与结果文档化
- 网络流量分析与端口扫描解读
- Windows 安全事件日志分析
- Linux(Kali)攻击安全工具使用
## 参考
- [Sysmon 文档 — Microsoft Sysinternals](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon)
- [SwiftOnSecurity Sysmon 配置](https://github.com/SwiftOnSecurity/sysmon-config)
- [Splunk SPL 参考](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference)
- [MITRE ATT&CK — 暴力破解 (T1110)](https://attack.mitre.org/techniques/T1110/)
- [MITRE ATT&CK — 网络扫描 (T1046)](https://attack.mitre.org/techniques/T1046/)
*该项目作为网络安全组合项目的一部分,旨在展示面向入门级安全职位的 SOC 分析师技能。*
标签:AMSI绕过, CTI, SOC仿真, Sysmon, Universal Forwarder, Windows Server 2022, 免杀技术, 威胁检测, 安全实验环境, 安全运营中心, 家庭实验室, 插件系统, 攻击模拟, 暴力破解检测, 端口扫描检测, 端点监控, 网络安全, 网络映射, 隐私保护, 驱动签名利用