sanjanamarri2521/Splunk_Log_Analysis
GitHub: sanjanamarri2521/Splunk_Log_Analysis
Stars: 0 | Forks: 0
# Splunk 日志分析项目 -- SSH 暴力破解与权限提升检测
## 项目概述
本项目在云环境中模拟真实攻击场景,并演示如何使用 Splunk 日志分析检测攻击者活动。
该环境构建于 AWS EC2 中,其中:
- 部署了一台 Splunk 服务器用于集中式日志监控
- 配置了一台受害 Ubuntu 机器以转发认证日志
- 使用 Hydra 执行了 SSH 暴力破解攻击
- 执行了权限提升和后渗透技术
- 创建了自定义仪表板以可视化和检测攻击者行为
# 环境架构
## 🔹 基础设施组件
- **SIEM 平台:** Splunk Enterprise
- **日志转发:** Splunk Universal Forwarder
- **云服务商:** Amazon Web Services (AWS EC2)
- **攻击工具:** Hydra (Kali Linux)
- **操作系统:** Ubuntu 24.04 LTS
# 阶段 0 -- 环境设置
## 1️⃣ Splunk 服务器设置
- 创建 Ubuntu 24.04 EC2 实例
- 安装 Splunk Enterprise
- 更改主机名以提高可见性
- 配置接收端口用于日志采集
- 创建索引:`victim-machine-logs`
图片:

## 2️⃣ 受害机器设置
- 创建 Ubuntu 24.04 EC2 实例
- 更改主机名以提高可见性
- 启用时间同步
- 创建用户 `testuser`
- 安装 Splunk Universal Forwarder
- 将 `/var/log/auth.log` 转发至 Splunk 服务器
- 启用 SSH 认证
图片:

# 阶段 1 --- 初始访问 (SSH 暴力破解)
## 攻击执行
- 针对 SSH 服务执行 Hydra
- 产生多次失败登录尝试
- 成功以 `testuser` 身份登录
图片:

## 生成的日志 (Ubuntu 24.04 -- /var/log/auth.log)
- testuser 密码错误
- testuser 密码被接受
- 为用户 testuser 打开会话
## 检测查询 -- 失败与成功登录
```
index="victim-machine-logs" earliest="03/04/2026:02:48:00" latest="03/04/2026:02:59:00"
sourcetype="auth" (Event="Failed password" OR Event="Accepted password")
| stats count by src_ip User Event
| fillnull value=0
| sort - count
```
仪表板图片:

# 阶段 2 --- 权限提升
## 执行的命令
```
sudo -l
sudo su -
```
图片:

## 生成的日志
- sudo: testuser : TTY=...
- 为用户 root 打开会话
- 为用户 root 关闭会话
## 检测查询
```
index="victim-machine-logs"
"COMMAND=/usr/bin/su -"
| eval command=mvindex(split(_raw,"COMMAND="),1)
| table _time host command
```
# 阶段 3 --- 持久化 (后门账户创建)
## 执行的命令
```
sudo adduser backupadmin
sudo usermod -aG sudo backupadmin
```
图片:

## 检测查询 -- 账户创建
```
index="victim-machine-logs"
"COMMAND=/usr/sbin/adduser"
| eval executed_by=mvindex(split(_raw,"sudo: "),1)
| eval executed_by=mvindex(split(executed_by," :"),0)
| eval command=mvindex(split(_raw,"COMMAND="),1)
| eval new_user=mvindex(split(command," "),1)
| table _time host executed_by new_user command
```
# 阶段 4 --- 敏感文件访问
## 执行的命令
```
sudo nano /etc/passwd
cat /etc/passwd
cat /etc/shadow
ls /root
```
图片:

## 检测查询
```
index="victim-machine-logs"
"/etc/passwd"
| eval executed_by=mvindex(split(_raw,"sudo: "),1)
| eval executed_by=mvindex(split(executed_by," :"),0)
| eval command=mvindex(split(_raw,"COMMAND="),1)
| table _time host executed_by command
```
# 阶段 5 --- 工具安装
## 执行的命令
```
sudo apt install netcat
```
图片:

## 检测查询
```
index="victim-machine-logs"
"apt install"
| eval executed_by=mvindex(split(_raw,"sudo: "),1)
| eval executed_by=mvindex(split(executed_by," :"),0)
| eval command=mvindex(split(_raw,"COMMAND="),1)
| table _time host executed_by command
```
# 阶段 6 --- 枚举
## 执行的命令
```
whoami
id
```
图片:

## 这些命令模拟攻击者在获取访问权限后的侦察行为。
# 完整攻击时间线查询
```
index="victim-machine-logs"
("su -" OR "adduser" OR "usermod -aG sudo" OR "/etc/passwd" OR "apt install")
| eval executed_by=mvindex(split(_raw,"sudo: "),1)
| eval executed_by=mvindex(split(executed_by," :"),0)
| eval command=mvindex(split(_raw,"COMMAND="),1)
| eval action_type=case(
searchmatch("su -"), "Privilege Escalation",
searchmatch("adduser"), "Persistence - Account Creation",
searchmatch("usermod -aG sudo"), "Privilege Grant",
searchmatch("/etc/passwd"), "Credential Access",
searchmatch("apt install"), "Tool Installation"
)
| table _time host executed_by action_type command
| sort _time
```
图片:

# 关键安全学习要点
- 暴力破解攻击会在认证失败日志中产生明显的峰值
- 多次失败后的成功登录属于高风险行为
- 使用 `sudo su -` 进行权限提升是高价值的检测点
- 未授权账户创建是强有力的持久化指标
- 访问 `/etc/shadow` 属于严重安全事件
- 安装后渗透工具表明攻击者正在进行准备工作
# 结论
本项目展示了端到端的:
- 攻击模拟
- 日志采集与解析
- 检测工程
- 仪表板可视化
- 事件时间线重建
它在受控的 AWS 实验室环境中使用 Splunk 复现了真实的 SOC 调查工作流程。
## 许可证
本项目采用 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE) 文件。
标签:AWS EC2, CSV导出, Hydra攻击模拟, Splunk Universal Forwarder, Splunk仪表盘, Splunk日志分析, SPL查询, SSH暴力破解, 事后利用, 云端靶场, 安全运营, 扫描框架, 攻击模拟, 权限提升检测, 网络安全实验, 驱动签名利用