Comprobando contraseñas online: THC Hydra y Medusa

Quien más o quien menos tiene algún tipo de servidor, servicio, proceso, dispositivo o similar accesible desde internet y que está protegido por un usuario y una contraseña. Alguno estará pensando – yo no -, ¿seguro? Mirad a vuestro alrededor. Quizás no tengas servidores montados en tu ordenador pero, probablemente, tienes un router ADSL por ahí cerca al cual se accede mediante una combinación de usuario y contraseña.

Pues bien, hoy vamos a ver un par de herramientas que nos pueden ayudar a probar la fortaleza de estas contraseñas. Se que normalmente en el blog tratamos las herramientas de forma individual, pero como ambas tienen un uso muy similar, y su sintaxis es muy parecida vamos a hacer una revisión de las dos, y que luego cada uno elija la que más se adapte a él. De todas formas al final, del artículo también habrá un enlace a una tabla comparativa entre ambas tanto de usos como de características técnicas.

La primera de estas herramientas es THC Hydra, creada por “The Hackers Choice” que es un grupo de expertos en seguridad. Tenéis aquí su código fuente para descargar y una pequeña documentación. Como ya he comentado es una herramienta para probar nuestras contraseñas online, y soporta una gran cantidad de protocolos: TELNET, HTTP, FTP, POP3, IMAP, …, una larga lista que podréis encontrar en el enlace de documentación que os he dejado antes.

Para instalarla, tenemos dos posibilidades. La primera de ellas sería descargar el código fuente y compilarlo en nuestra máquina.

./configure

make

make install

Si tenemos todas las librerías necesarias instaladas, lo veremos tras ejecutar la primera instrucción, se compilará e instalará sin problemas. Si no, tendremos que instalar previamente las librerías adecuadas, en nuestros repositorios, hasta poder compilar e instalar con normalidad.

La segunda, mucho más fácil si utilizáis Ubuntu y la habéis Backtrakizado, sería instalarla desde los repositorios como hacemos habitualmente.

sudo aptitude install hydra

Con esto tendremos instalada la herramienta THC Hydra. Para comprobarlo, simplemente ejecutaremos el comando “hydra” en nuestro terminal y esto, nos debería mostrar su sintaxis.

La segunda herramienta que vamos a ver es Medusa. Es una herramienta del mismo estilo, aunque soporta menos protocolos por lo que he podido leer. La página donde podéis encontrar el código y la documentación está aquí.

De nuevo, para instalarla, tenéis dos opciones. La de compilar e instalar el código de forma manual como en el caso anterior. O, si habéis Backtrakizado vuestra Ubuntu, bastaría con ejecutar:

sudo aptitude install medusa

Una vez instaladas las dos herramientas vamos a probarlas. Para esto yo voy a lanzar un ataque sobre un router que tengo en casa preparado para estas cosas.

¿Qué necesitamos para la prueba? En primer lugar algo a lo que atacar, en mi caso el router, en el vuestro puede ser lo mismo, o podéis montar algún pequeño servidor ftp o similar. Además, vamos a necesitar uno o dos ficheros de diccionario, que no es más que un fichero con multitud de palabras que se utilizarán de usuario y contraseña. Yo en mi caso, para que la prueba no sea muy larga, me he hecho uno con 50 usuarios y otro con 50 posibles contraseñas. Pero para un uso serio de la herramienta, deberíais tener unos diccionarios mucho más extensos. Para esto, podéis generarlos vosotros, o podéis buscar en Google.

Bueno, manos a la obra. Empezaremos con el THC Hydra. Si habéis ejecutado el comando “hydra” como he dicho antes, tendréis en pantalla la sintaxis de uso de este.

Las más habituales son:

-l: Sirve para indicar un usuario específico.

-L: Sirve para pasar un diccionario con nombres de usuarios.

-p: Sirve para especificar una contraseña en concreto.

-P: Sirve para especificar un diccionario de contraseñas.

-vV: Muestra todas las pruebas realizadas por pantalla.

server: Especificación del objetivo.

service: Especificación del servicio, es decir, FTP, HTTP, …

Pues nada, vamos a probar:

hydra -L usuarios.txt -P passwords.txt 192.168.1.1 http-get http://192.168.1.1/index.html

En mi caso, como estoy probando el router que es una página web, al utilizar el service http-get he tenido que especificar también la página especifica. Si estáis probando con un service ftp bastaría con haber puesto:

hydra -L usuarios.txt -P passwords.txt 192.168.1.2 ftp

Tras la ejecución os volcará algo como esto si habéis obtenido resultado:

[DATA]…

[DATA]…

[STATUS]…

[80][www] host: 192.168.1.1   login: ataque   password: prueba

Hydra (http://www.thc.org) finished …

O como esto si no:

[DATA]…

[DATA]…

[STATUS]…

Hydra (http://www.thc.org) finished …

Como podéis ver ha sido bastante fácil, y claramente se puede leer el informe de resultado. Ya que si ha encontrado algo te lo dice y si no, no dice nada.

Al igual que con el comando hydra, si ejecutamos el comando medusa sin opciones, este nos muestra su sintaxis.Las más básicas son:

-h: Sirve para indicar un host concreto.

-H: Sirve para indicar un fichero de host.

-u y -U: Para lo mismo que en hydra

-p y -P: Para lo mismo que en hydra.

-F: Parará tras encontrar la primera coincidencia.

-O: Fichero donde escribirá los éxitos de las pruebas.

-M: Sirve para especificar el módulo a utilizar. HTTP, TELNET, IMAP, …

Pues nada, vamos a probar de nuevo:

medusa -h 192.168.1.1 -U usuarios.txt -P passwords.txt -O salida.txt -M http

Tras la ejecución obtendréis un listado de las pruebas realizadas y un [SUCCESS] al final de cada prueba que haya tenido éxito. Por si las pruebas eran muy extensas, lo he ejecutado con la opción -O, y en el fichero salida.txt tengo las combinaciones de usuario y contraseña que han tenido éxito.

A partir de aquí, ya utilizad la herramienta que más os guste o se acomode a vuestras necesidades. De todas formas, aquí os dejo la tabla comparativa que os comentaba al inicio del post.

Espero que os haya servido, y como siempre animaos a comentar y compartir experiencias. Nos vemos.

Comprobando contraseñas online: THC Hydra y Medusa

12 thoughts on “Comprobando contraseñas online: THC Hydra y Medusa

  1. Cyrax says:

    Hola, disculpa. Sabes decirme la forma de poder indicarle a Hydra que pruebe con convinaciones entre 0-9 y a-z y decirle hasta 1000 coincidencias… o algo asi. Gracias

    Like

    1. svoboda says:

      Pues la verdad es que ahora mismo no te sabría decir si la herramienta hydra puede generar ataques de ese tipo, yo siempre la he utilizado a partir de diccionarios. De todas formas, hacerse un diccionario de este tipo o encontrar uno en google, es casi trivial.
      Lo de detenerse tras mil coincidencias no creo que lo permita, lo que se me ocurre así de repente, es hacer un pequeño shell script que cuente las coincidencias que saca hydra, ya sea al mostrarlas en la salida estándar o al volcarlas en un fichero.
      También si no recuerdo mal, una herramienta similar es ncrack (del creador de nmap), puedes echarle un ojo a ver que opciones te da.
      Espero que te sirva de algo. Un saludo.

      Like

  2. Hola.
    Verás, tengo un problema en medusa, cuando escribo: medusa -h “la ip” -u “nombre de usuario” -P word.lst -O salida.txt -M http
    me sale diciendo: “Failed to open file word.lst” no se si no reconoce el formato del diccionario o que pasa.
    ¿Puedes ayudarme?
    gracias de antemano

    Like

    1. svoboda says:

      Hola.
      No estoy seguro si será, pero el listado de usuarios y passwords tiene que estar en texto plano y después de cada palabra tiene que haber un salto de línea. Además de respetar este formato, ponle a los ficheros de palabras la extensión .txt y asegurate de que el fichero es un fichero de texto plano válido, no algún otro tipo de fichero con una cabecera diferente.
      Espero que te sirva. Un saludo.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.