Page cover

🟢Walking CMS

En esta ocasión vamos a hacer el writeup de la máquina Walking CMS de Dockerlabs, una máquina Linux de dificultad easy.

Despliegue de la máquina

sudo bash auto_deploy.sh walkingcms.tar

Estamos desplegando la máquina vulnerable, espere un momento.

Máquina desplegada, su dirección IP es --> 172.17.0.2

Tenemos la IP: 172.17.0.2

Primer acceso

Accedemos través del navegador y llegamos a una default page de Apache:

No obtenemos nada relevante, por lo que vamos a escanear los puertos abiertos en esta máquina.

Escaneo de puertos

Solo encontramos el puerto 80 expuesto. En principio nada relevante.

Fuzzing

Haciendo fuzzing con feroxbuster vemos que nos encontramos ante un sitio web Wordpress

Vamos a acceder a /wordpress a ver que encontramos.

A priori nos encontramos una web básica en Wordpress, posiblemente en construcción.

Enumeración con WPScan

Vamos a lanzar un wpscan para enumerar el sitio Wordpress:

Bingo! Obtenemos el usuario mario y vemos que está activo XML-RPC con lo que podríamos hacer un bruteforce sin problema.

Bruteforce de XML-RCP

Vamos a usar el módulo de Metasploit wordpress_xmlrpc_login para hacer bruteforce de XML-RCP:

Bingo, obtenemos el password para el usuario mario: love

También podríamos usar otras herramientas como CMSeek con la opción de Bruteforce CMSs, con un proceso un poco más automático:

Acceso web

Accedemos por http://172.17.0.2/wordpress/wp-admin con esas credenciales y accedemos correctamente:

Subida de Webshell

Vemos que tenemos activo el tema Twenty Twenty-Two, por lo que vamos a editar el index.php para introducir una webshell. Vamos a theme editor y buscamos el index , en ese index le colocamos el codigo de una webshell como P0wny Shell. Una vez modificado, guardamos el index y podemos ir a cargarlo en la web.

Aquí pegamos el código de P0wny Shell y abajo le damos a Update File:

Acceso a la Webshell

Una vez subida, podemos acceder a la webshell en la siguiente URL:

Como estamos en una máquina de Dockerlabs a traves de Docker mi IP es la 172.17.0.1:

Para devolvernos una revshell solamente necesitamos ejecutar el siguiente comando:

Tenemos una shell, con lo que ya hemos comprometido parcialmente el host con un usuario sin privilegios.

Explotación alternativa

Escalada de privilegios

No podemos acceder a /root ni ver los permisos de ejecución con sudo -l:

Vamos a buscar con find ejecutables que podammos aprovechar para escalar privilegios:

Observamos el ejecutable env, que podemos explotar siguiendo los pasos de GTFOBIns:

Concretamente en la sección SUID encontramos una forma para elevar nuestros privilegios:

Lo ejecutamos y ya somos root!

Última actualización

¿Te fue útil?