La descripción del reto es la siguiente:
Your target is not very good with computers. Try and guess their password to see if they may be hiding anything!
Con esta descripción podemos entender que podemos adivinar la contraseña, por lo que debería de estar en un diccionario de las contraseñas mas utilizadas. Por este motivo se realizará un ataque de fuerza bruta, para realizarlo podemos usar tres herramientas diferentes: Hydra, Burp Suite y un script propio.
{:height=“auto” width=“100%”}
Si analizamos la web se puede ver que solo es necesario introducir la contraseña, lo que hará que el ataque por fuerza bruta menos costoso en tiempo de ejecución. Si analizamos la petición que se realiza con el login, ya sea con Burp, Wireshark o el propio navegador vemos que unicamente se envía el campo password y como respuesta recibimos la misma web pero con un Invalid password!.
Si se realiza el ataque con Hydra, sería necesario indicar los siguientes argumentos:
|
|
Con lo que obtendríamos una salida similar a esta indicando que la contraseña es leonardo.
|
|
Si se realiza el ataque con el script propio, que puede encontrase en el siguiente repositorio
|
|
Se obtendría la siguiente salida:
|
|
Si introducimos como contraseña leonardo en el login vemos que nos muestra la siguiente pantalla:
{:height=“auto” width=“100%”}
Parece que algo no estamos viendo, por eso volvemos a realizar el proceso de login pero en esta ocasión capturamos todos los paquetes que recibimos, ya sea con Burp, Wireshark o el navegador, y veríamos que en la respuesta el POST con el login viene el flag que buscamos, como podemos ver a continuación:
{:height=“auto” width=“100%”}
Cabe destacar que se ha calculado los tiempos de ejecución para ambos y han sido los siguientes:
- Tiempo de ejecución de hydra: 1m33,668s
- Tiempo de ejecución de script: 0m4,643s
Esto se debe a que mi script manda peticiones asíncronas en bloques de 1000. Posiblemente Hydra también se pueda configurar para que aumente las conexiones paralelas, pero en esta ocasión se han dejado por defecto.