darsh139/SOC-HomeLab-Splunk
GitHub: darsh139/SOC-HomeLab-Splunk
一个基于 Splunk 和 Kali Linux 的家庭实验室,用于在隔离网络中练习 SOC 的日志分析与事件响应。
Stars: 3 | Forks: 0
# Splunk SOC 家庭实验室
一个用于模拟真实安全运营中心(SOC)环境的个人网络安全家庭实验室。本项目展示在 SIEM 配置、日志分析、威胁检测和事件响应方面的技能——这些都是 SOC 分析师岗位的核心竞争力。
## 实验室概述
该实验室完全基于一台物理机器,使用 **VirtualBox** 运行多个虚拟机,在隔离网络中搭建。
| 组件 | 角色 |
|---|---|
| Splunk Enterprise(免费) | SIEM — 收集、索引和分析日志 |
| Ubuntu Server 22.04 | 托管 Splunk 服务器 |
| Windows 10 | 日志源和攻击目标 |
| Kali Linux | 攻击机 — 模拟真实威胁 |
| Sysmon | 深度 Windows 事件日志 |
| Splunk Universal Forwarder | 将 Windows 日志转发到 Splunk |
## 架构
**网络:** 所有虚拟机运行在隔离的 VirtualBox NAT 网络(`192.168.10.0/24`)。不接触真实家庭网络。
| 虚拟机 | IP 地址 |
|---|---|
| Splunk 服务器(Ubuntu) | 192.168.10.10 |
| Windows 10 目标 | 192.168.10.20 |
| Kali Linux 攻击机 | 192.168.10.30 |
## 实践内容与学习收获
- 部署并配置 **Splunk Enterprise** 作为集中式 SIEM
- 安装并配置 **Sysmon**(使用 olafhartong/sysmon-modular 强化配置)以获取深度 Windows 遥测
- 安装 **Splunk Universal Forwarder**,将 Windows 安全日志、系统日志、应用日志和 Sysmon 日志转发到 Splunk
- 在 Splunk 中创建自定义 **windows** 索引以存储所有端点日志
- 模拟 **暴力破解攻击**(使用 Hydra)并分析 Splunk 中的 EventCode 4625(登录失败)告警
- 模拟 **端口扫描**(使用 Nmap)并与 Sysmon 网络连接事件进行关联
- 模拟 **未经授权的账户创建** 并通过 EventCode 4720 和 4732 检测
- 构建 **自定义 Splunk 告警**,在检测到攻击模式时自动触发
- 构建 **Splunk 安全仪表板**,展示实时安全事件
- 编写符合行业标准实践的 **事件响应报告**
## 构建的检测规则
| 攻击技术 | MITRE ATT&CK | Splunk EventCode | 告警名称 |
|---|---|---|---|
| 暴力破解登录 | T1110.001 | 4625 | Brute Force Login Detected |
| 新建本地账户 | T1136.001 | 4720 | Suspicious Account Creation |
| 管理员组修改 | T1098 | 4732 | Privilege Escalation Detected |
| 端口扫描(侦察) | T1046 | Sysmon 3 | Network Recon Detected |
| 可疑进程创建 | T1059 | Sysmon 1 | Suspicious Command Executed |
## 仪表板
## 所用工具
- [Splunk Enterprise](https://www.splunk.com/en_us/products/splunk-enterprise.html)
- [Sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon)
- [sysmon-modular config](https://github.com/olafhartong/sysmon-modular)
- [Kali Linux](https://www.kali.org/)
- [VirtualBox](https://www.virtualbox.org/)
- [Nmap](https://nmap.org/)
- [Hydra](https://github.com/vanhauser-thc/thc-hydra)
## 如何复现本实验室
### 步骤 1 — 安装 VirtualBox
在主机上下载并安装 [VirtualBox](https://www.virtualbox.org/)。
### 步骤 2 — 创建 NAT 网络
- 打开 VirtualBox → 工具 → 网络 → NAT 网络 → 创建
- 命名为 `SOC-Lab`,IP 范围设置为 `192.168.10.0/24`
### 步骤 3 — 设置虚拟机
下载并安装以下三台虚拟机,全部连接到 `SOC-Lab` NAT 网络:
- **Ubuntu Server 22.04** — 分配静态 IP `192.168.10.10`
- **Windows 10** — 分配静态 IP `192.168.10.20`
- **Kali Linux** — 分配静态 IP `192.168.10.30`
### 步骤 4 — 在 Ubuntu 上安装 Splunk
```
wget -O splunk.deb "https://download.splunk.com/products/splunk/releases/9.1.0/linux/splunk-9.1.0-amd64.deb"
sudo dpkg -i splunk.deb
sudo /opt/splunk/bin/splunk start --accept-license
```
访问 Splunk 地址:`http://192.168.10.10:8000`
### 步骤 5 — 在 Windows 上安装 Sysmon
- 下载 [Sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon) 和 [sysmon-modular 配置](https://github.com/olafhartong/sysmon-modular)
- 以管理员身份在 PowerShell 中运行:
```
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
```
### 步骤 6 — 在 Windows 上安装 Splunk Universal Forwarder
- 从 Splunk 官网下载
- 安装时指向 Splunk 服务器:`192.168.10.10:9997`
- 配置转发:安全日志、系统日志、应用日志和 Sysmon 日志
### 步骤 7 — 从 Kali 运行攻击
```
# 暴力破解
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.10.20 smb
# 端口扫描
nmap -sS -p- 192.168.10.20
```
### 步骤 8 — 使用 SPL 查询
请查看 `/detection` 文件夹中的本实验室所用所有 Splunk 查询。
## 后续改进计划
- [ ] 集成 **Sigma 规则**,实现跨平台检测规则的可移植性
- [ ] 添加 **TheHive**,用于结构化事件案例管理
- [ ] 尝试 **Elastic SIEM** 作为 Splunk 的替代方案
- [ ] 模拟更多攻击技术:钓鱼、横向移动、C2 通信
- [ ] 部署 **Splunk SOAR**,自动化基础响应剧本
- [ ] 将 Linux(Ubuntu)日志转发到 Splunk,扩大可见性范围
**网络:** 所有虚拟机运行在隔离的 VirtualBox NAT 网络(`192.168.10.0/24`)。不接触真实家庭网络。
| 虚拟机 | IP 地址 |
|---|---|
| Splunk 服务器(Ubuntu) | 192.168.10.10 |
| Windows 10 目标 | 192.168.10.20 |
| Kali Linux 攻击机 | 192.168.10.30 |
## 实践内容与学习收获
- 部署并配置 **Splunk Enterprise** 作为集中式 SIEM
- 安装并配置 **Sysmon**(使用 olafhartong/sysmon-modular 强化配置)以获取深度 Windows 遥测
- 安装 **Splunk Universal Forwarder**,将 Windows 安全日志、系统日志、应用日志和 Sysmon 日志转发到 Splunk
- 在 Splunk 中创建自定义 **windows** 索引以存储所有端点日志
- 模拟 **暴力破解攻击**(使用 Hydra)并分析 Splunk 中的 EventCode 4625(登录失败)告警
- 模拟 **端口扫描**(使用 Nmap)并与 Sysmon 网络连接事件进行关联
- 模拟 **未经授权的账户创建** 并通过 EventCode 4720 和 4732 检测
- 构建 **自定义 Splunk 告警**,在检测到攻击模式时自动触发
- 构建 **Splunk 安全仪表板**,展示实时安全事件
- 编写符合行业标准实践的 **事件响应报告**
## 构建的检测规则
| 攻击技术 | MITRE ATT&CK | Splunk EventCode | 告警名称 |
|---|---|---|---|
| 暴力破解登录 | T1110.001 | 4625 | Brute Force Login Detected |
| 新建本地账户 | T1136.001 | 4720 | Suspicious Account Creation |
| 管理员组修改 | T1098 | 4732 | Privilege Escalation Detected |
| 端口扫描(侦察) | T1046 | Sysmon 3 | Network Recon Detected |
| 可疑进程创建 | T1059 | Sysmon 1 | Suspicious Command Executed |
## 仪表板
## 所用工具
- [Splunk Enterprise](https://www.splunk.com/en_us/products/splunk-enterprise.html)
- [Sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon)
- [sysmon-modular config](https://github.com/olafhartong/sysmon-modular)
- [Kali Linux](https://www.kali.org/)
- [VirtualBox](https://www.virtualbox.org/)
- [Nmap](https://nmap.org/)
- [Hydra](https://github.com/vanhauser-thc/thc-hydra)
## 如何复现本实验室
### 步骤 1 — 安装 VirtualBox
在主机上下载并安装 [VirtualBox](https://www.virtualbox.org/)。
### 步骤 2 — 创建 NAT 网络
- 打开 VirtualBox → 工具 → 网络 → NAT 网络 → 创建
- 命名为 `SOC-Lab`,IP 范围设置为 `192.168.10.0/24`
### 步骤 3 — 设置虚拟机
下载并安装以下三台虚拟机,全部连接到 `SOC-Lab` NAT 网络:
- **Ubuntu Server 22.04** — 分配静态 IP `192.168.10.10`
- **Windows 10** — 分配静态 IP `192.168.10.20`
- **Kali Linux** — 分配静态 IP `192.168.10.30`
### 步骤 4 — 在 Ubuntu 上安装 Splunk
```
wget -O splunk.deb "https://download.splunk.com/products/splunk/releases/9.1.0/linux/splunk-9.1.0-amd64.deb"
sudo dpkg -i splunk.deb
sudo /opt/splunk/bin/splunk start --accept-license
```
访问 Splunk 地址:`http://192.168.10.10:8000`
### 步骤 5 — 在 Windows 上安装 Sysmon
- 下载 [Sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon) 和 [sysmon-modular 配置](https://github.com/olafhartong/sysmon-modular)
- 以管理员身份在 PowerShell 中运行:
```
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
```
### 步骤 6 — 在 Windows 上安装 Splunk Universal Forwarder
- 从 Splunk 官网下载
- 安装时指向 Splunk 服务器:`192.168.10.10:9997`
- 配置转发:安全日志、系统日志、应用日志和 Sysmon 日志
### 步骤 7 — 从 Kali 运行攻击
```
# 暴力破解
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.10.20 smb
# 端口扫描
nmap -sS -p- 192.168.10.20
```
### 步骤 8 — 使用 SPL 查询
请查看 `/detection` 文件夹中的本实验室所用所有 Splunk 查询。
## 后续改进计划
- [ ] 集成 **Sigma 规则**,实现跨平台检测规则的可移植性
- [ ] 添加 **TheHive**,用于结构化事件案例管理
- [ ] 尝试 **Elastic SIEM** 作为 Splunk 的替代方案
- [ ] 模拟更多攻击技术:钓鱼、横向移动、C2 通信
- [ ] 部署 **Splunk SOAR**,自动化基础响应剧本
- [ ] 将 Linux(Ubuntu)日志转发到 Splunk,扩大可见性范围标签:AMSI绕过, Hydra, Nmap, PoC, Splunk Universal Forwarder, Sysmon, VirtualBox, Windows 日志, 个人实验, 威胁检测, 安全运营中心, 家庭实验室, 攻击模拟, 数据统计, 日志关联, 日志采集, 暴力破解, 端口扫描, 网络安全实践, 网络映射, 网络隔离, 自定义告警, 虚拟化, 虚拟驱动器, 账户创建, 速率限制, 驱动签名利用