Fuerza bruta a un login con Medussa
En el camino de la informática y la seguridad sucede que tarde o temprano tendremos que acceder a la configuración de algún router por medio de la interfaz web del mismo al que ya estemos previamente conectados, pero en algunos casos sucederá que no tenemos la combinación correcta entre “usuario” y “contraseña” así que solo nos queda recurrir a la fuerza bruta, a estas alturas todos ó casi todos sabemos de una u otra forma lo que es la fuerza bruta y como funciona, pero para los mas que no lo sepan les dire que según wikipedia:
“En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.”
Pues dicho esto viene a la mente:
Cuales herramientas tengo a mi alcance para auditar la seguridad de un router?
Pues existen un catalogo amplio y extenso de donde escoger como por ejemplo L0phtCrack, Brutus, THC-Hydra,Patator, Cain/Abel, Medusa, etc... Siendo Hydra uno de los mas famosos y utilizados debido a su gran cantidad de documentación disponible, en este caso quisiera hacerlo usando medusa la cual a pesar de tener soporte para menos protocolos que Hydra me gusta mucho por la sencillez de su gramática así como su estabilidad.
Aclarados los conceptos básicos continuamos, así que manos a la obra!!
Escenario.
**Equipo corriendo Linux Mint XFCE
**Router con dirección IP privada 192.168.1.1
**Conectado via Ethernet.
Desde el ordenador intentaremos entrar a la configuración del router escribiendo la dirección IP (192.168.1.1) en el navegador, con lo cual nos debe saltar un formulario de login parecido a este:
Si sabes de antemano cual es la combinación correcta de "usuario" y "contraseña" entonces no tiene ningún sentido que estes leyendo esto, asi que gracias por tu tiempo y adiós. En cambio si no tienes ni la mas remota idea de cual puede ser esa combinación entonces continuemos y agarra tu terminal.
Lo primero que debemos hacer obviamente es instalarlo, lo cual es tan sencillo como escribir en una terminal:
Código:
cloudswx@cloudswx-lab ~ $ sudo apt-get install medusa
Después de instalarlo seria muy interesante saber cuales protocolos tienen soporte, lo cual se consigue escribiendo "medusa -d"
Como podemos ver en la imagen medusa tiene soporte para HTTP.
Código:
+ http.mod : Brute force module for HTTP : version 2.0
Llegados a este punto les diré que existen 3 posibles circunstancias para forzar el acceso de un router y cualquier otro formulario login, así que para cada caso expondré una solución distinta.
1.- Si conocemos el usuario pero nos falta la contraseña.
En este caso tendremos la mitad del problema resuelto y la otra mitad la resolveremos usando medusa en combinación con un diccionario. (La fuerza bruta se hace a base diccionarios que contengan las posibles combinaciones), medusa puede ser alimentado de diccionarios tanto para forzar el usuario como la contraseña. Así que para este caso en particular la sintaxis del ataque sera la siguiente:
Código:
cloudswx@cloudswx-lab ~ $ medusa -h 192.168.1.1 -u admin -P dic-0294.txt -M http
-h Con esta opción especificamos el host que deseamos auditar
-u Esta opción especifica que ya sabemos el nombre de usuario. (para este caso admin)
-P con esta opción le decimos a medusa que debe encontrar el password en un diccionario, en este caso "dic-0294.txt" (especificando la ruta completa).
-M Esta opcion indica sobre cual protocolo queremos auditar.
Con lo cual si el password se encuentra conseguiremos..
2.- Si conocemos el password pero no tenemos el usuario entonces tenemos que modificar la sintaxis del ataque de la siguiente forma:
Código: [Seleccionar]
cloudswx@cloudswx-lab ~ $ medusa -h 192.168.1.1 -U dic-0294.txt -p 1234 -M http
-h El host que deseamos auditar
-U Con esto le decimos que debe buscar el usuario desde un diccionario (-u minuscula indica el usuario a usar, -U en mayuscula indica que debe buscar en un diccionario)
-p Le dice a medusa que no debe buscar el password y se le especifica posteriormente (-p en minuscula indica el password a utilizar, -P en mayuscula indica que debe buscar el correcto en un diccionario).
-M Esta opción indica sobre cual protocolo queremos auditar.
3.- Si no conocemos ninguno de los valores entonces medusa debe hacer todo el trabajo por nosotros, es decir debe buscar la combinación correcta de "usuario" y "password". La sintaxis es la siguiente:
cloudswx@cloudswx-lab ~ $ medusa -h 192.168.1.1 -U userlist.txt -P passwordlist.txt -M http
Al ser ataque por ferza bruta la tasa de éxito dependerá en gran parte de 2 factores:
a.) La robustez de la combinación entre "usuario" y "password"
b.) La eficacia del diccionario que estemos utilizando.
En un siguiente articulo les mostrare como generar diccionarios a nuestra medida para ser utilizados en este tipo de auditorias ya que por ejemplo algunas personas usan palabras que muy difícilmente estarán en un diccionario de esos que nos bajamos de la web.