Laboratorio: 2FA bypass usando un ataque por fuerza bruta
Last updated
Last updated
En este laboratorio intentaremos atacar un sitio web atacando mediante la tecnica de fuerza bruta el codigo de autenticacion de 2 factores, 2FA.
Ahora bien, el proceso para lograrlo es omitiendo el bloqueo de intentos de codigo del 2FA, ya que hay paginas que bloquean los intentos de un usuario después de 3 intentos cerrando la sesión del usuario si ha iniciado sesión, esta pagina lo implementa así que lo que haremos será usar un macro en burp que lo que hace es maximizar una petición en muchas mediante reglas especificas, que configuramos dentro del mismo Burpsuite.
Ahora bien ¿cuales son las peticiones que vamos a aumentar? las significativas que nos llevan a poder ingresar el codigo 2FA, que es el inicio de sesión 1 la peticion GET, el POST de ese inicio de sesión 1 y el GET del inicio de sesión 2 que es la pagina para ingresar el codigo 2FA, ahora bien la pagina de inicio de sesión POST la usaremos directamente para el ataque con turbo intruder, las otras serán para el macro burp.
En session>session handling rules>Add : y añadimos nuestra regla, y aparecerá esto:
Nos vamos a scope>Include All Url’s
Luego de eso nos vamos de nuevo a la pestañita de Details>Rule Actions>Add> Run a Macro: Añadimos nuestro macro.
Esto con el fin de añadir el macro con las urls de las peticiones que queremos maximizar para poder saltarnos el bloqueo por parte de la pagina.
En este caso esas son las urls importantes que añadí para este Lab:
Le damos a >Test Macro: Esto con el fin de poder ver que estén funcionando perfectamente.
Luego de ello, nos vamos a proxy enviamos nuestra petición POST-login2/ a turbo intruder para empezar la otra parte del ataque.
En este caso no nos aparecerá ninguna peticion hasta que nos aparezca el 302 que es el unico que hemos dado en la funcion handleResponse
.
Pero si le añadimos esta parte pues aparece de todo:
¿Que cambia? en esencia las concurrentConnections, solo 1, lo cual es jodidamente demorado pero bueno vamos a ver que logramos así.
Despues de muchos intentos está vez aprendí el porque fue, esta simplemente iniciamos todo pero el listener nunca lo activamos simplemente mediante el puerto y la extensión foxyproxy tuvimos las solicitudes.
Lo resolvimos, pero lo más importante es que aprendimos para que sirve realmente los macros junto con las reglas de sesiones, esas fueron las que nos permitieron interpretar la solicitud multiples veces con diversos CSRF cookies sin el problema de que nos sacará de la cuenta, eso si importantisimo que hicieramos un maximo de concurrencias por peticiones == 1 para poder lograr el reto del Lab, y así fue como lo hicimos aunque no fue facil porque intenté resolver el laboratorio aproximadamente unas 25 veces, está vez si lo logramos. ✅