CodeBroKinty/splunk-siem-lab

GitHub: CodeBroKinty/splunk-siem-lab

基于 Splunk Enterprise 的 SIEM 实验项目,通过 SPL 查询和日志分析完整还原了一起 SSH 暴力破解攻击的调查过程并形成正式事件报告。

Stars: 0 | Forks: 0

# 🔍 SIEM 实验室:SSH 暴力破解调查 **工具:** Splunk Enterprise | **数据集:** Splunk Tutorial Data | **分析师:** [Kiante Nolen](https://github.com/CodeBroKinty) ![Splunk](https://img.shields.io/badge/Splunk-Enterprise-black?style=flat&logo=splunk&logoColor=green) ![Security](https://img.shields.io/badge/Domain-Blue_Team_Security-blue?style=flat) ![Status](https://img.shields.io/badge/Status-Complete-brightgreen?style=flat) ## 概述 使用 Splunk Enterprise 构建了一个可运行的 SIEM 环境,用于摄取、查询和调查真实日志数据。识别出一次真实的 SSH 暴力破解攻击,追踪了两个用户账户的凭据泄露情况,确认了提权至 root 的操作,并将整个调查过程记录为一份正式的事件报告。 **展示技能:** 日志摄取 · SPL 查询编写 · 威胁检测 · 事件调查 · 升级文档 ## 事件详情 | 字段 | 详情 | |-------|--------| | **攻击者 IP** | `194.8.74.23` (外部) | | **目标** | `mailsv`, `www1`, `www2`, `www3` — SSH 端口 22 | | **总事件数** | 跨越 7 个日志源的 313 个事件 | | **攻击时间窗** | 2026 年 4 月 30 日 — 凌晨 02:00 突发(1 小时内 132 个事件) | | **被攻陷账户** | `nsharpe`, `djohnson` | | **权限提升** | 已确认 `nsharpe` 通过 `su` 提升至 root | | **严重程度** | 高 | ### 攻击链 ``` 194.8.74.23 (external attacker) └── Reconnaissance probe at 14:00 (2 events) └── 12-hour silence (waiting for off-hours) └── Brute force burst at 02:00 AM (132 events) └── nsharpe compromised from 10.2.10.163 └── su to root — PRIVILEGE ESCALATION └── djohnson compromised from 10.3.10.46 └── root opens sessions on their behalf ``` ## SPL 查询 ### 查询 1 — 跨基础设施的攻击范围 ``` index=main "194.8.74.23" | stats count by source ``` **发现:** 单个攻击者 IP 在 7 个日志源中生成了 313 个事件 — 确认了这是一次全面的基础设施攻击,而非单一目标的探测。 ### 查询 2 — 暴力破解用户名枚举 ``` index=main "Failed password" "194.8.74.23" | rex "Failed password for (invalid user )?(?\S+) from" | stats count by username | sort -count ``` **发现:** 使用标准的 Linux 系统账户字典表尝试了 20 多个用户名。主要目标:`local` (6), `system` (6), `irc` (5), `root` (4)。证实了这是一次非针对性的机会性字典攻击。 ### 查询 3 — 攻击时间轴 ``` index=main "194.8.74.23" earliest=-1d | timechart span=1h count ``` **发现:** 14:00 出现 2 个事件(侦察探测),静默 12 小时后,在凌晨 02:00 突发 132 个事件。教科书般的非工作时间攻击时机 — 旨在规避 SOC 监控的蓄意策略。 ### 查询 4 — 被攻陷账户调查 ``` index=main "djohnson" OR "nsharpe" | table _time, source, _raw | sort _time ``` **发现:** 两个账户在 02:54 AM 的攻击时间窗内均显示了来自两个不同内部 IP 的 `Accepted password` 事件。`nsharpe` 执行了 `su` 提权到 root。Root 为 `djohnson` 开启了多个会话。证实了凭据泄露和权限提升。 ## 仪表板 ![仪表板概览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/7c32b49e2c085509.png) ![仪表板底部](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6a3930c2fa085510.png) ## 证据 | 截图 | 描述 | |-----------|-------------| | ![攻击范围](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fd9f968248085511.png) | 查询 1 — 跨 7 个来源的 313 个事件 | | ![用户名](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/10d410a366085512.png) | 查询 2 — 暴力破解用户名表 | | ![时间轴](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/487e2674f7085513.png) | 查询 3 — 凌晨 2 点攻击激增 | | ![被攻陷](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2e62f3bd47085514.png) | 查询 4 — nsharpe & djohnson 被攻陷 | ## 调查总结 ### 发现了什么 一起源自外部 IP `194.8.74.23` 的两阶段 SSH 暴力破解攻击。攻击者在工作时间进行了一次初步侦察探测,等待了 12 小时后,在凌晨 2 点使用 Linux 系统账户字典发起了一次集中的撞库攻击。两个账户被成功攻陷。`nsharpe` 通过 `su` 提升至 root。活动源自两个独立的内部 IP,表明存在横向移动或预先存在的内部失陷。 ### 如何发现的 1. 运行广泛的基于 IP 的搜索,以量化跨所有日志源的攻击范围 2. 使用正则表达式提取枚举出完整的用户名字典 3. 构建时间图表以识别“探测后突发”模式并确认非工作时间攻击时机 4. 调查在攻击时间窗内成功建立会话的用户,以确认凭据泄露和权限提升 ### 升级上报事项 - **立即执行:** 在边界防火墙封禁 `194.8.74.23` - **立即执行:** 禁用 `nsharpe` 和 `djohnson` 账户,等待取证审查 - **立即执行:** 审计 www1 的持久化机制 — cron 任务、新的 SSH 密钥、由 root 添加的新账户 - **紧急执行:** 调查内部 IP `10.2.10.163` 和 `10.3.10.46` 以寻找失陷迹象 - **紧急执行:** 对所有服务器在 24 小时时间窗内的 sudo/su 进行全面审计 ### 建议的控制措施 - 强制仅使用基于 SSH 密钥的身份验证 — 禁用密码认证 - 实施 `fail2ban`,在 5 次失败尝试后自动封禁 IP - 通过防火墙白名单限制已知内部 IP 的 SSH 访问 - 在 `sshd_config` 中设置 `PermitRootLogin no` - 配置 Splunk 告警:单个 IP 在 5 分钟内出现 >5 次 SSH 失败尝试 ## 使用的工具 - **Splunk Enterprise** (免费试用版) — 日志摄取、SPL 查询、仪表板 - **Splunk Tutorial Dataset** — `tutorialdata.zip`(mailsv,www1-3 的 access 和 secure 日志) - **SPL** — 用于威胁检测查询的搜索处理语言 ## 相关项目 - [Network Scanner](../week4/) — TCP 端口扫描器和服务检测器 - [AWS Security Audit](../week5/) — S3、IAM 和 EC2 安全自动化 - [Python Automation Labs](https://github.com/CodeBroKinty/python-automation-labs) *CodeBroKinty 云安全作品集的一部分 — 记录了从 Python 自动化到云安全工程的历程。*
标签:AMSI绕过, CSV导出, Root提权, SOC分析师, Splunk Enterprise, SPL查询, SSH暴力破解, Su命令, T1059.001, Web服务器安全, 威胁检测, 安全事件调查, 安全报告, 安全运营, 实验室, 密码猜测, 库, 应急响应, 扫描框架, 攻击链, 数据摄取, 溯源分析, 特权提升, 网络安全, 自动化部署, 蓝队实战, 隐私保护