Web Machine(N7) - Vulnhub
Resolución de la maquina Web Machine(N7) de Vulnhub
¿Hola? Pasaba por aquí y me preguntaba si le apetece un ¿CTF?
Buenoo, creo que es un si... Okey, gracias a Duty Mastr por proveer dicha maquina.
Descripción de la maquina.
Sistema Operativo | Linux 🐧 |
Dificultad | Medio |
Lanzamiento | 3/11/2021 |
Creador |
Enumeración
Empezamos con un gran escaneo con nmap.
sudo nmap -p- -Pn -n -sS --min-rate 5000 192.168.1.65 -oG allports
extractports allports #Extractports utilidad hecha por s4vitar
sudo nmap -sVC -p80 192.168.1.65 -oN targeted
Aquí puede encontrar la utilidad extracports.

Bueno, solo el puerto 80 .

Excelente... Vamos empezar por un fuzzing, en busca de directorios o archivos, también aplicare un fuzzing en busca de parámetros en el archivo profile.php

#fuzz params
gobuster fuzz -u http://192.168.1.65/profile.php?FUZZ=id -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --exclude-length 1473,301 -b 400
#fuzz directories or file
gobuster dir -u http://192.168.1.65/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,sql,js
En busca de parámetros en el archivo profile.php, no logre encontrar algo.

Pero, la ruta exploit.html no parece muy normal del todo...

¿Así? Subiré un archivo php, el cual es una revert shell.

Pero... Me parece que no funciona, visualice el código fuente de este html...

Y mira, lo envía al localhost que apunta al archivo profile.php, que el archivo si existe... Vamos a modificarlo la url de la acción y colocar la IP de la maquina, a ver si nos responde con algo.

Ahora si, enviamos...

Eso fue todo jajaja

Normalmente la estructura de la flag de Vulnhub suele ser similar a esta, o algo así, como flag=root{123456789123456789}. Pero bueno, realmente esto no nos da alguna pista de la próxima jugada.
Seguí buscando algo mas, pero no encontré algo útil, después de un tiempo me decante por leer algunos write-ups de otros pentester.
Mencionan la ruta
/enter_network/pero ¿como encontraron esta ruta? 🤨Algunos hicieron "trampa" o algo no tan común, para ser un CTF , reiniciaron la maquina y por medio del
grubobtuvieron una shell para cambiarle la contraseña aroot, para después ver los directorios de los servicios web en/var/www/html/Ya que la ruta
enter_network, no se encuentra en algún diccionario predeterminado de kali linux, ni en la Seclists. Por lo tanto han optado por esa solución.He buscado algo al respecto sobre dicha ruta y como llegar hacia ella, específicamente busque algo del propio creador de la maquina, pero, no la encontré.

Dicho lo anterior, te regalo la ruta /enter_network/ no me preguntes de donde la saca, por que no lose.

Me dispuse a realizar fuzzing bajo este directorio y pruebas algunas pruebas de SQLi.
gobuster dir -u http://192.168.1.65/enter_network/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -x php,js,html,css,txt
Encontré la ruta admin.php, pero nada relevante

Con las pruebas SQLi, nos fue bien 🙂 ya que presenta un SQLi a ciegas basado en tiempo.
' or sleep(10) -- -

En efecto, es vulnerable... pero, ¿ya observaron las cookies?
Por ejemplo seleccionamos la cookie de respuesta, llamada role.

Al final del decode que utiliza burp nos queda esta cadena 21232f297a57a5a743894a0e4a801fc3. Podemos tratar de identificar y de pasada romper el hash, en caso de que lo sea, con, CrackStation.

Ah vaya, con que existe el rol admin, otra cosa interesante es que cada petición que hacemos al login envía un rol también 👀

Observando este acontecimiento, me di cuenta que se envían las mismas cookies, tanto de respuesta, como de petición, ¿raro, no
¿Recuerda la anterior ruta que encontramos bajo este directorio? /enter_network/admin.php, el cual nos respondía con la leyenda "this interface is admin only", que pasa si consultamos la interfaz con las cookies actuales, es decir con el "rol" de admin.

¿En teoría tenemos el rol de admin, nos debería funcionar, no? en caso de que sea el único método de autenticación.
Hasta que... cambie el valor de la cookie al valor decodificado, es decir, admin.

Y vaya funciono... No me había enterado, pero KSA_01} es una parte de la flag. y recodemos que anteriormente habían obtenido una parte de la flag con la subida del archivo, FLAG{N7
Así que tenemos FLAG{N7KSA_01} , y al parecer aquí acaba la maquina...

Aun que también, no nos podemos olvidar del SQLi blind que encontramos en el login, si quieres podes usar sqlmap.
sqlmap -u "http://192.168.1.65/enter_network/" --data="user=foo&pass=bar&sub=SEND" --dbms=mysql --dump --threads=10 --batch

Y como puedes ver en la tabla de login tenemos un registro del admin, y la contraseña es la FLAG, aun que intente iniciar sesión con dichas credenciales no me dejo... Algo raro, creo.

Pero bueno eso fue todo, te agradezco que te allas pasado por acá y pues nada, nos vemos, joven informático con habilidades para el hacking para nada intrínsecas, o tal vez si.

Referencias
[VulnHub] Máquina web: (N7)

