TokeATJ/Threat-Hunting-and-Detection-Engineering-Lab
GitHub: TokeATJ/Threat-Hunting-and-Detection-Engineering-Lab
一个 SOC 家庭实验室项目,通过模拟真实攻击场景并结合 Splunk 与 Sysmon 进行威胁狩猎与检测工程的实践。
Stars: 0 | Forks: 0
## 概述
本项目展示了 SOC 家庭实验室的设计、部署和运行,该实验室用于模拟攻击者活动、收集端点遥测数据,并使用 Splunk 和 Sysmon 进行威胁狩猎调查。
实验室环境包括:
- 托管 Splunk Enterprise 的 **Ubuntu Server**
- 配置了 Sysmon 和 Splunk Universal Forwarder 的 **Windows 10 端点**
- 用于模拟对抗活动的 **Kali Linux 攻击机**
本项目的目标是获得 SIEM 操作、端点遥测数据收集、威胁狩猎工作流、检测工程概念以及 MITRE ATT&CK 映射的实践经验。
## 展示的技能
开发并调查了八个与 ATT&CK 对齐的威胁狩猎用例,包括进程创建监控、网络服务发现检测、DNS 查询监控、PowerShell 滥用检测、编码 PowerShell 检测、使用 certutil.exe 进行的 LOLBIN 滥用、凭据访问发现以及账户/系统发现,以模拟 adversary 行为,验证端点遥测数据,并使用 Splunk、Sysmon、Windows Event Logs 和 Kali Linux 开发威胁检测工作流。
- Splunk Enterprise 管理
- Sysmon 配置与监控
- Splunk Universal Forwarder 部署
- 端点遥测数据收集
- 威胁狩猎方法论
- 检测工程
- Windows Event Log 分析
- 网络侦察检测
- PowerShell 监控
- MITRE ATT&CK 映射
- 安全调查工作流
## 首先,让我们确认数据源
验证我们是否通过 Splunk 连接到了正确的日志
```
index=main
| stats count by source
```
您应该会看到类似于以下内容的日志源:
| 源 | 描述 |
|----------|-------------|
| WinEventLog:Application | Windows 应用程序日志 |
| WinEventLog:Security | Windows 安全日志 |
| WinEventLog:System | Windows 系统日志 |
| WinEventLog:Microsoft-Windows-Sysmon/Operational | Sysmon 遥测数据 |
### 用例 1:进程创建监控
### 目标
验证 Sysmon 是否捕获了进程创建活动,并将遥测数据转发到 Splunk 以进行集中监控和调查。
### 测试活动
在 Windows 端点上执行了以下进程:
```
notepad.exe
calc.exe
cmd.exe / c whoami
```
**Notepad.exe OR Calc.exe OR whoami**
### Splunk 调查
```
index=main source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
notepad.exe OR calc.exe OR whoami
```
**WhoAMI**
**Notepad.exe & Calc.exe**
### 调查结果
在 Splunk 中成功识别了已执行的进程,确认 Sysmon 进程创建事件已被收集,并可用于威胁狩猎和事件响应工作流。
### MITRE ATT&CK
- T1059.003 Windows Command Shell
### 用例 2:网络连接监控
### 目标
使用 Kali Linux 虚拟机模拟外部攻击者对 Windows 10 端点执行侦察。目标是生成可在 Splunk 中使用 Sysmon 遥测数据进行调查的网络活动。
### 攻击者系统
| 主机 | IP 地址 | 角色 |
|--------|------------|--------|
| Kali Linux | 10.0.2.15 | 攻击者 |
| Windows 10 端点 | 10.0.2.4 | 目标 |
### 攻击模拟
从 Kali Linux 虚拟机执行了以下 Nmap 服务发现扫描:
```
nmap -sV 10.0.2.4
```
**Nmap**
### 预期结果
该扫描生成针对 Windows 端点的侦察活动,可在 Splunk 中进行调查。
### Splunk 调查
搜索:
```
index=main "10.0.2.15"
```
**Splunk**
### 调查结果
Splunk 返回了包含 Kali Linux IP 地址 (`10.0.2.15`) 的事件,证明了对源自模拟攻击机活动的可见性。
### MITRE ATT&CK 映射
T1046 - Network Service Discovery
### 用例 3:DNS 查询监控
### 目标
验证 Windows 端点生成的 DNS 查询是否被 Sysmon 捕获,并可在 Splunk 中进行调查。
### 攻击模拟
在 Windows 端点上执行了以下 DNS 查询:
```
nslookup github.com
nslookup google.com
```
### Splunk 调查
```
index=main "github.com"
```
### 调查结果
在 Splunk 中成功识别了 DNS 查询活动,证明了对恶意软件执行、命令与控制 (C2) 通信以及攻击者侦察期间常被利用的域名解析活动的可见性。
### MITRE ATT&CK
- T1071.004 - Application Layer Protocol: DNS
## 用例 4:PowerShell 滥用检测
### 目标
检测并调查攻击者常用于执行和后渗透活动的 PowerShell 执行活动。
### 攻击模拟
执行了以下 PowerShell 命令:
```
powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-Process"
powershell -NoProfile -ExecutionPolicy Bypass -Command "whoami"
```
### Splunk 调查
```
index=main "NoProfile"
```
**"Get-Process" Powershell 命令**
**"whoami" Powershell 命令**
### 调查结果
使用 Sysmon 遥测数据在 Splunk 中成功识别了 PowerShell 执行活动。命令行参数和执行上下文可供调查。
### MITRE ATT&CK
- T1059.001 - PowerShell
### 用例 5:编码 PowerShell 检测
### 目标
检测混淆的 PowerShell 执行和编码命令。
### 攻击模拟
执行了以下编码的 PowerShell 命令:
```
powershell -EncodedCommand SQBFAFgA
```
### Splunk 调查
```
index=main "EncodedCommand"
```
### 调查结果
在 Splunk 中成功识别了编码的 PowerShell 执行活动。命令行参数包含了通常与攻击者技术相关的混淆指标。
### MITRE ATT&CK
- T1059.001 - PowerShell
- T1027 - Obfuscated Files or Information
### 用例 6:LOLBIN 滥用 (certutil.exe)
### 目标
检测旨在规避安全控制并将恶意活动混入合法系统操作的受信任 Windows 二进制文件滥用行为。
### 攻击模拟
执行了原生 Windows 实用程序 `certutil.exe` 以模拟 Living-Off-the-Land Binary (LOLBIN) 滥用。certutil.exe 是用于管理证书的合法 Microsoft 实用程序。
攻击者经常滥用它来:
下载 payload
传输文件
编码/解码恶意软件
绕过应用程序控制
因为它是受信任的 Microsoft 二进制文件,所以通常看起来是合法的。
```
certutil.exe -urlcache -split -f https://example.com test.txt
### MITRE ATT&CK
- T1218 - System Binary Proxy Execution
- T1105 - Ingress Tool Transfer
### 调查结果
在 Splunk 中成功识别了 `certutil.exe` 的执行。命令行参数和执行上下文可供调查,证明了对对抗者常用的 LOLBIN 滥用技术的可见性。
### MITRE ATT&CK
- T1218 - System Binary Proxy Execution
- T1105 - Ingress Tool Transfer
### 用例 7:凭据访问发现
### 目标
检测在 Windows 端点上枚举已存储凭据的尝试,并使用在 Splunk 中收集的 Sysmon 遥测数据调查该活动。
### 攻击模拟
执行了 Windows 凭据管理器实用程序以枚举已存储的凭据。
```
cmdkey /list
```
### Splunk 调查
```
index=main "cmdkey"
```
### 调查结果
在 Splunk 中成功识别了 `cmdkey.exe` 的执行。该活动演示了如何通过 Sysmon 进程创建遥测数据检测凭据枚举尝试。
### MITRE ATT&CK
- T1555 - Credentials from Password Stores
### 用例 8:账户与系统发现
### 目标
检测攻击者在后渗透和内部侦察期间常执行的账户枚举、特权组发现和网络配置发现活动。
### 攻击模拟
执行了以下命令:
```
net user
net localgroup administrators
netstat -ano
```
**Net User**
**Net LocalGroup Administrators**
**Netstat -Ano**
### Splunk 调查
```
index=main "net.exe" "user"
```
```
index=main "localgroup administrators"
```
```
index=main "netstat"
```
### MITRE ATT&CK
- T1087.001 - Local Account Discovery
- T1069.001 - Local Group Discovery
- T1016 - System Network Configuration Discovery
### 调查结果
通过 Sysmon 进程创建遥测数据,在 Splunk 中成功识别了账户枚举、本地组发现和网络发现活动。该活动证明了对对抗者常用的后渗透侦察技术的可见性。标签:CTI, OpenCanary, 安全运营, 扫描框架, 无线安全, 知识库安全, 管理员页面发现