WalkingCMS
En este ejercicio vamos a vulnerar la máquina WalkingCMS de la plataforma DockerLabs, siguiendo un proceso estructurado que abarca enumeración inicial, identificación de vulnerabilidades, explotación del servicio web y escalada de privilegios hasta obtener control total del sistema.
El objetivo principal no es únicamente comprometer la máquina, sino comprender cada paso del proceso y analizar por qué cada vulnerabilidad permite avanzar en la intrusión.
Despliegue de la máquina
Comenzamos levantando la máquina utilizando el comando proporcionado por la plataforma:

Una vez desplegada correctamente, se nos proporciona una dirección IP interna que será el objetivo del análisis. A partir de este momento iniciamos la fase de reconocimiento, que resulta clave para entender la superficie de ataque disponible.
Enumeración inicial
El primer paso consiste en realizar un escaneo de puertos sobre la IP proporcionada. Guardamos el resultado en un archivo llamado escaneo para poder analizarlo con mayor detalle posteriormente.

Una vez finalizado el escaneo obtenemos el siguiente resultado:

En el análisis observamos que el puerto 80 está abierto, lo que indica la presencia de un servicio HTTP activo. Esto nos sugiere que el vector de ataque principal será una aplicación web.
El hecho de que el servicio esté expuesto únicamente por HTTP y no HTTPS implica que la comunicación no está cifrada, lo que en entornos reales podría facilitar la interceptación de tráfico.
Identificación de la aplicación web
Accedemos desde el navegador a la dirección IP objetivo:

Observamos que se trata de una aplicación web, por lo que comenzamos a identificar la tecnología utilizada. Dado que WordPress es uno de los CMS más utilizados, probamos acceder a la ruta habitual añadiendo /wordpress a la URL.

Con esta comprobación confirmamos que la aplicación está basada en WordPress, lo que nos permite enfocar la fase de explotación hacia vulnerabilidades típicas de este CMS.
Identificación de versión
Para determinar la versión exacta instalada utilizamos la extensión Wappalyzer, que permite identificar tecnologías y versiones empleadas en aplicaciones web.

La versión instalada es la 6.4.3. Aunque no se trata de una versión extremadamente antigua, es importante revisar posibles configuraciones inseguras y servicios habilitados que puedan facilitar ataques.
Análisis de XML-RPC
Revisamos el código fuente de la página en busca de referencias a XML-RPC:

La presencia de XML-RPC habilitado es relevante, ya que permite realizar ataques de fuerza bruta más eficientes. Este servicio acepta múltiples intentos de autenticación en una sola petición, lo que reduce el número de solicitudes necesarias para probar credenciales.
Enumeración de usuarios
Accedemos al panel de login de WordPress:

Observamos que WordPress devuelve mensajes distintos dependiendo de si el usuario existe o no:

Este comportamiento permite realizar enumeración de usuarios válidos. Para automatizar el proceso utilizamos la herramienta wpscan.

Tras ejecutar la herramienta, identificamos el siguiente usuario válido:
mario

Al probar este usuario en el formulario de login, el mensaje cambia indicando que la contraseña es incorrecta, confirmando que el usuario existe en el sistema.

Ataque de fuerza bruta
Con un usuario válido identificado, procedemos a realizar un ataque de fuerza bruta utilizando la wordlist Rockyou, aprovechando la funcionalidad de XML-RPC.

Tras ejecutar el ataque obtenemos una contraseña válida:

Con estas credenciales accedemos al panel de administración de WordPress:

Esto nos permite modificar el contenido y la configuración del sitio.
Explotación – Reverse Shell
Una vez dentro del panel de administración, instalamos el plugin File Manager, que permite acceder y modificar archivos directamente desde la interfaz web.

A través de este plugin navegamos hasta un archivo .php susceptible de modificación e insertamos un reverse shell en PHP.

Antes de ejecutar el archivo modificado, configuramos nuestro equipo atacante en modo escucha:

Al recargar el archivo, se establece la conexión reversa y obtenemos acceso al sistema como usuario del servicio web.

Escalada de privilegios
Una vez dentro del sistema, el siguiente paso es escalar privilegios.
Realizamos una búsqueda de binarios con el bit SUID activado:

Entre los resultados encontramos el binario:
/usr/bin/env

Consultando GTFOBins, identificamos una técnica que permite abusar de este binario para ejecutar comandos con privilegios elevados.
Tras aplicar la técnica correspondiente, verificamos nuestra identidad:

Confirmamos así el acceso como root, logrando el compromiso completo del sistema.
Conclusión
La máquina WalkingCMS demuestra cómo una combinación de configuraciones inseguras en WordPress, la presencia de XML-RPC habilitado y permisos mal configurados en el sistema pueden derivar en una intrusión completa.
Este ejercicio refuerza la importancia de:
- Deshabilitar servicios innecesarios como XML-RPC.
- Evitar mensajes diferenciados en autenticación.
- Limitar la instalación de plugins administrativos.
- Revisar binarios con bit SUID activado.
⚠️ Realizado con fines educativos y en un entorno controlado.