Pese a la época en la que nos encontramos (año 2014) aun hoy día es bastante fácil encontrar sitios web cuyos formularios de 'login' carecen de protecciones anti fuerza bruta.
Todo o casi todo el mundo conoce el concepto 'captcha' como técnica destinada a mitigar los ataques de fuerza bruta. Incluso hay sistemas menos molestos que permiten bloquear por IP a partir de cierto número de intentos de login.
Hoy voy a explicar cómo sacar partido de esos formularios web de autenticación que no disponen de métodos para evitar ataques de fuerza bruta.
Vamos a tomar una muy sencilla aplicación de ejemplo escrita en PHP cuya interface HTML es esta:
Y cuya parte PHP esta:
Que luce tal que así:
Con esto en la mano, el objetivo es identificar patrones de éxito o fracaso en función de las pruebas que hacemos. Obviamente lo más fácil es identificar patrones de fracaso, es decir, combinaciones que no conducen a acceso. Probamos algo cualquiera:
Vale, ya tenemos un patrón de fracaso: si fallamos la autenticación obtenemos un mensaje que pone 'Acceso denegado'. Con eso es suficiente para instruir a Hydra a la hora de hacer un ataque de fuerza bruta al formulario.
Ejecutamos Hydra tal que así:
$ hydra 192.168.9.13 http-form-post "/login.php:username=^USER^&password=^PASS^:Acceso Denegado" -L diccionario.txt -P diccionario.txt -t 10 -w 30
Y los parámetros importantes son:
1- La IP y la ruta del formulario(obvio...)
2- La petición que hay que lanzar al formulario y que la podemos ver en el código HTML de la página. En este caso username y password
3- El diccionario que vamos a usar
Si tenemos suerte podremos localizar logins y password válidos:
[80][www-form] host: 172.16.183.179 login: pedro password: 123456
0 comments :
Publicar un comentario