Primero realizamos un escaneo rápido, lo que nos deja ver los puertos abiertos de la máquina víctima. En seguida vemos que dispone de página web HTTP, vamos a ver qué encontramos.
Como no vemos nada más que algunas secuencias y fotos en los cinco primeros comandos probamos el último.
Parece que puede llevarnos a algún sitio, pero primero deberíamos asegurarnos de que no hay directorios interesantes ocultos, a parte de los que ya hemos visto.
Voila, encontramos unos cuantos. Revisándolos vemos robots y robots.txt que pueden tener contenido interesante.
Vaya, ¿qué hay por aquí? Key 1 of 3...
Obtenemos así la primera clave.
What is Key 2
Este fsociety.dic podría ser un diccionario que podríamos usar más adelante.
Mirando más de cerca fsocity_dic, nos damos cuenta de que no es taaaaan larga, sino que hay lineas que se repiten varias veces. Para cambiar eso hacemos sort fsocity_dic.md | uniq > fsocity_dic_unic.md. Ya tenemos un diccionario realista.
Investigando más directorios vemos un directorio raro que habíamos pasado por alto: /0.
Una vez allí vemos que es un "blog" de WP. Veamos la pestaña de Log In...
Aquí vemos que si ponemos un usuario que no existe nos da un tipo de error.
Sin embargo, si ponemos un usuario que sí existe nos da otro tipo de error. Extrapolando el nombre del protagonista de la serie, parece un nombre que posiblemente estaría en la base de datos de usuarios. Pero espera, teníamos un diccionario, vamos a usarlo:
Haciendo uso del comando: wpscan --url 10.10.146.45 --wp-content-dir wp-admin --usernames elliot --passwords fsocity_dic_unic.md comenzamos a extraer información:
Boom! Credenciales encontradas, vamos a entrar!
Estamos dentro.
Nos dirigimos a Appearance > Editor. El objetivo es cambiar la plantilla 404 (not found) por una reverse shell que sacamos de aquí.
Cambiamos la IP y el puerto al de nuestra máquina por el que vayamos a escuchar.
De esta manera obtenemos una reverse shell sh para investigar.
Una vez en la consola navegamos por los directorios y nos encontramos con que no podemos leer la clave 2 de 3 porque no tenemos permisos :((. Pero espera, hay un archivo con un usuario y una contraseña en lo que parece ser md5 según el archivo.
Todos sabemos que el md5 no es seguro para las contraseñas, precisamente por páginas como esta. Introducimos c3fcd3d76192e4007dfb496cca67e13b --> abcdefghijklmnopqrstuvwxyz. Vamos a probar
Para hacer su robot necesitamos una tty mejorada, por eso ejecutamos: python -c 'import pty; pty.spawn("/bin/bash")'.
Parece que algo estamos consiguiendo. Al leer los archivos vemos la key 2 de 3: 822c73956184f694993bede3eb39f959
What is Key 3
Una vez que ya hemos sacado la segunda flag, es hora de rootear la máquina. Para ello primero intentamos ver si podemos ejecutar algún comando con sudo (no es el caso esta vez :'( ). Entonces intentamos buscar archivos con permiso SUID. Y vemos algo "interesante". Nmap no debería tener permisos SUID.
Haciendo una búsqueda rápida en GTFOBins, vemos que efectivamente esto se puede explotar.
Vemos que hay una manera extremadamente sencilla de ejecutar comandos (si la versión coincide), por lo que hacemos nmap --version y bingo! La versión instalada es la 3.81, coincide con los criterios, al lío!
Pues en un abrir y cerrar de ojos somos root.
Pues sólo nos quedaba encontrar el documento de la última flag, que tenía pinta que iba a estar en /root. Y así era.