atharva-acharya/Splunk-SOC-Lab
GitHub: atharva-acharya/Splunk-SOC-Lab
基于 Splunk Enterprise 和 BOTS v3 数据集的 SOC 分析师实操项目,通过 SPL 检测规则与 IR 报告演示完整攻击链的威胁检测与事件响应流程。
Stars: 0 | Forks: 0
# Splunk SIEM 调查实验室
这是一个实操性的 SOC 分析师作品集项目,展示了如何使用 Splunk Enterprise 和 BOTS v3 (Boss of the SOC) 数据集进行威胁检测、调查和事件响应。项目包含五条 SPL 检测规则,涵盖了一条真实的 Web 攻击链——从初始侦察到漏洞利用、权限提升、数据泄露和云凭证窃取——每条规则都配有基于调查的 IR 报告,并与 MITRE ATT&CK 框架相对应。
## 目录
- [实验室概述](#lab-overview)
- [环境](#environment)
- [数据集](#dataset)
- [检测规则](#detection-rules)
- [事件报告](#incident-reports)
- [MITRE ATT&CK 覆盖范围](#mitre-attck-coverage)
- [攻击链叙述](#attack-chain-narrative)
- [仓库结构](#repository-structure)
- [相关项目](#related-projects)
## 实验室概述
| 组件 | 详情 |
|-----------|--------|
| **SIEM** | Splunk Enterprise 10.4.0 |
| **数据集** | BOTS v3 (Boss of the SOC v3) |
| **检测规则** | 5 条 SPL 分析规则 |
| **IR 报告** | 5 份基于调查的报告 |
| **MITRE 技术** | 跨 7 种战术的 10 项技术 |
| **攻击面** | Web 应用、Windows 端点、AWS 云 |
## 环境
**宿主机:** Windows 11, Intel i7-13700HX, 32GB RAM
**Splunk:** Enterprise 10.4.0, 本地安装
**Index:** `botsv3`
Splunk Enterprise 原生安装在 Windows 宿主机上(非虚拟化),以最大化 BOTS v3 数据集(约 30GB 未压缩)的摄取性能。BOTS v3 应用程序包通过 Splunk Web UI 直接安装。
## 数据集
**BOTS v3 (Boss of the SOC Version 3)** 是由 Splunk 为 CTF 式安全调查制作的真实攻击数据集。它包含来自处于活跃攻击下的模拟企业环境的日志数据,涵盖 Web 服务器、Windows 端点、AWS 基础设施和网络流量。
| Sourcetype | 事件计数 | 用途 |
|------------|-------------|-----|
| `syslog` | 283,976 | Linux 系统日志 |
| `stream:ip` | 227,872 | 网络 IP 流 |
| `stream:dns` | 218,456 | DNS 查询/响应 |
| `stream:udp` | 157,960 | UDP 流量 |
| `winhostmon` | 129,679 | Windows 主机监控 |
| `aws:cloudwatchlogs` | 115,145 | AWS CloudWatch |
| `aws:cloudwatchlogs:vpcflow` | 97,448 | VPC 流日志 |
| `wineventlog:security` | 46,469 | Windows 安全事件 |
| `stream:http` | 24,191 | HTTP 流量 |
| `aws:cloudtrail` | 6,571 | AWS API 审计日志 |
| `xmlwineventlog:microsoft-windows-sysmon/operational` | 9,212 | Sysmon 事件 |
## 检测规则
五条 SPL 分析规则,涵盖跨 Web、端点、DNS 和云攻击面的不同攻击技术。
| # | 规则 | 技术 | MITRE ID | Sourcetype | 严重性 |
|---|------|-----------|----------|------------|----------|
| 01 | [Web 侦察](detection-rules/SPL-Rule-01-Web-Recon.md) | 主动扫描 | T1595.002 | stream:http | 中 |
| 02 | [Apache Struts RCE](detection-rules/SPL-Rule-02-Struts-RCE.md) | 利用面向公众的应用程序 | T1190 | stream:http | 严重 |
| 03 | [DNS 数据泄露](detection-rules/SPL-Rule-03-DNS-Exfiltration.md) | 通过 DNS 进行数据泄露 | T1048.003 | stream:dns | 高 |
| 04 | [可疑 LOLBin 执行](detection-rules/SPL-Rule-04-Suspicious-Process.md) | Windows 命令解释器 | T1059.003 | wineventlog:security | 中 |
| 05 | [AWS IMDS 凭证窃取](detection-rules/SPL-Rule-05-AWS-IMDS-Abuse.md) | 云实例元数据 API | T1552.005 | stream:http | 严重 |
### 规则亮点
**Rule 02 — Apache Struts RCE (CVE-2017-9805)**
检测针对 Apache Struts REST 插件端点的 HTTP POST 正文中的 OGNL 表达式注入。当 `form_data` 中出现 `OgnlContext`、`ProcessBuilder` 或 `Runtime.exec` 模式时触发——这些模式均不会出现在正常的应用程序流量中。此规则检测到了一条完整的攻击链,包括后门账户创建和反弹 shell 建立。
**Rule 05 — AWS IMDS 凭证窃取**
检测针对 IAM 安全凭证端点、发往 `169.254.169.254` 处 AWS 实例元数据服务的成功查询。仅过滤 HTTP 200 响应——排除了探测尝试,专注于确认的凭证获取。该技术曾在 2019 年 Capital One 数据泄露事件中被使用。
## 事件报告
所有五份报告均以调查为主导:每份报告都记录了调查期间使用的 SPL 查询、返回的证据,以及调查结果如何推动下一步的调查步骤。这些报告并非警报摘要——它们重建了分析师的决策过程。
| 报告 | 标题 | 严重性 | MITRE |
|--------|-------|----------|-------|
| [IR-001](ir-reports/IR-001-Web-Reconnaissance.md) | Web 侦察:检测到主动扫描 | 中 | T1595.002 |
| [IR-002](ir-reports/IR-002-Apache-Struts-RCE.md) | Apache Struts RCE:完整攻击链 (CVE-2017-9805) | 严重 | T1190 |
| [IR-003](ir-reports/IR-003-DNS-Exfiltration.md) | 通过 Froth.ly 子域名进行 DNS 数据泄露 | 高 | T1048.003 |
| [IR-004](ir-reports/IR-004-LOLBin-Execution.md) | LOLBin 执行:WMIC 和 reg.exe 滥用 | 中 | T1059.003 |
| [IR-005](ir-reports/IR-005-AWS-IMDS-Credential-Theft.md) | AWS 实例元数据服务凭证窃取 | 严重 | T1552.005 |
### IR-002 — 攻击链摘要
IR-002 记录了实验室中最完整的攻击序列。位于 `192.168.8.103` 的攻击者针对位于 `192.168.9.30` 的未修补 Apache Struts 实例利用了 CVE-2017-9805,随后完全通过注入的 OS 命令执行了以下后渗透序列:
```
id → groups → cat /etc/passwd → useradd (UID 0 backdoor) →
uname -a → drop kernel exploit → decode exploit →
compile exploit → establish reverse shell to 45.77.53.176:8088
```
完整的命令提取、时间线重建和 IOC 文档记录请参见 [IR-002](ir-reports/IR-002-Apache-Struts-RCE.md)。
## MITRE ATT&CK 覆盖范围

**Navigator layer:** [Splunk-SOC-Lab-MITRE-Layer.json](mitre-navigator/Splunk-SOC-Lab-MITRE-Layer.json)
通过 [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) 加载 → 打开现有 Layer → 从本地上传。
| 战术 | 技术 | ID |
|--------|-----------|-----|
| 侦察 | 主动扫描:漏洞扫描 | T1595.002 |
| 初始访问 | 利用面向公众的应用程序 | T1190 |
| 执行 | Windows 命令解释器 | T1059.003 |
| 执行 | Windows 管理规范 | T1047 |
| 持久化 | 创建本地账户 | T1136.001 |
| 防御规避 | 修改注册表 | T1112 |
| 凭证访问 | 云实例元数据 API | T1552.005 |
| 命令与控制 | 入口工具传输 | T1105 |
| 命令与控制 | 应用层协议:Web | T1071.001 |
| 数据泄露 | 通过替代协议进行数据泄露:DNS | T1048.003 |
## 攻击链叙述
BOTS v3 数据集包含一次连贯的攻击活动。本实验室中的五条检测规则和报告对应于该活动的不同阶段:
```
RECONNAISSANCE INITIAL ACCESS EXECUTION
IR-001 IR-002 IR-002 / IR-004
Web scanning Apache Struts RCE OS commands via
192.168.3.130 CVE-2017-9805 OGNL injection +
172.16.197.137 192.168.8.103 LOLBin execution
│ │ │
└───────────────────────┘ │
Scanning identified │
Struts endpoint │
▼
EXFILTRATION CREDENTIAL ACCESS PERSISTENCE
IR-003 IR-005 IR-002
DNS tunnelling AWS IMDS query Backdoor account
BSTOLL-L → 172.31.12.76 → tomcat7 (UID 0)
froth.ly subdomains EC2InstanceRole creds Reverse shell C2
```
IR-001 和 IR-002 明确关联:扫描器 `172.16.197.137` 在漏洞利用前进行侦察时,识别出了 Struts 端点。IR-002 和 IR-005 相互关联:通过 EC2 实例上的 Struts RCE 获取 root 权限后,可直接进行 IMDS 查询以窃取凭证。
## 仓库结构
```
Splunk-SOC-Lab/
├── README.md
├── LICENSE
├── detection-rules/
│ ├── SPL-Rule-01-Web-Recon.md
│ ├── SPL-Rule-02-Struts-RCE.md
│ ├── SPL-Rule-03-DNS-Exfiltration.md
│ ├── SPL-Rule-04-Suspicious-Process.md
│ └── SPL-Rule-05-AWS-IMDS-Abuse.md
├── ir-reports/
│ ├── IR-001-Web-Reconnaissance.md
│ ├── IR-002-Apache-Struts-RCE.md
│ ├── IR-003-DNS-Exfiltration.md
│ ├── IR-004-LOLBin-Execution.md
│ └── IR-005-AWS-IMDS-Credential-Theft.md
├── mitre-navigator/
│ └── Splunk-SOC-Lab-MITRE-Layer.json
├── datasets/
│ └── botsv3_data_set.tgz (not tracked — too large for GitHub)
└── screenshots/
├── splunk-install-verified.png
├── botsv3-ingestion-verified.png
├── spl-detection-rules-verified.png
└── mitre-navigator-layer.png
```
## 相关项目
本实验室是 SOC 分析师实操项目作品集的一部分:
| 项目 | 重点 | 链接 |
|---------|-------|------|
| AD SOC 检测实验室 | Active Directory 攻击, KQL, Microsoft Sentinel, 7 份 IR 报告 | [github.com/atharva-acharya/AD-SOC-Detection-Lab](https://github.com/atharva-acharya/AD-SOC-Detection-Lab) |
| Microsoft Sentinel 检测实验室 | Azure SIEM, KQL 分析规则, Sysmon, 5 份 IR 报告 | [github.com/atharva-acharya/Sentinel-Detection-Lab](https://github.com/atharva-acharya/Sentinel-Detection-Lab) |
| Splunk SIEM 调查实验室 | Splunk SPL, BOTS v3, Web 攻击链, 云威胁 | 本仓库 |
*MSc 网络安全工程 — 华威大学 (Merit)*
*CDSA — HackTheBox (2026 年 6 月)*
标签:CISA项目, PB级数据处理, SOC分析, Web报告查看器, 安全检测规则, 安全运维, 密码管理, 库, 应急响应