Utilizar el modo detallado (verboso) de Hydra

HydraHydraBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo utilizar el modo detallado (verbose mode) de Hydra para obtener más información sobre el proceso de cracking de contraseñas. El laboratorio se centra en demostrar diferentes niveles de detalle (verbosidad) al realizar un ataque FTP.

Primero, ejecutará un ataque básico de inicio de sesión FTP contra un objetivo ficticio (127.0.0.1) sin salida detallada, utilizando listas de nombres de usuario y contraseñas creadas en su directorio ~/project (users.txt y passwords.txt). Luego, volverá a ejecutar el ataque utilizando la opción -v para mostrar más detalles sobre cada intento y, finalmente, utilizará la opción -V para mostrar cada intento en tiempo real. Al comparar la salida de estos diferentes niveles de detalle, entenderá cómo utilizar eficazmente las opciones de detalle de Hydra para un mejor monitoreo y solución de problemas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/ftp_attack("FTP Brute Force") hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage") subgraph Lab Skills hydra/ftp_attack -.-> lab-550777{{"Utilizar el modo detallado (verboso) de Hydra"}} hydra/verbose_mode -.-> lab-550777{{"Utilizar el modo detallado (verboso) de Hydra"}} end

Ejecutar un ataque FTP sin detalle (verbose)

En este paso, utilizaremos Hydra para realizar un ataque básico de inicio de sesión FTP sin salida detallada. Esto significa que Hydra intentará descifrar la contraseña FTP, pero no mostrará información detallada sobre cada intento de inicio de sesión en la pantalla. Esto es útil cuando se desea ejecutar el ataque en segundo plano o evitar llenar el terminal de información.

Antes de comenzar, comprendamos la sintaxis básica de Hydra:

hydra [options] [service://server[:port]] [OPT]
  • hydra: El comando para ejecutar la herramienta Hydra.
  • [options]: Varias opciones para personalizar el ataque, como listas de nombres de usuario, listas de contraseñas y configuraciones de conexión.
  • [service://server[:port]]: Especifica el servicio a atacar (por ejemplo, ftp, ssh, http), la dirección del servidor objetivo y, opcionalmente, el número de puerto.
  • [OPT]: Opciones adicionales específicas del servicio que se está atacando.

Ahora, creemos una lista simple de nombres de usuario y una lista de contraseñas para nuestro ataque.

  1. Crear una lista de nombres de usuario:

    En su directorio ~/project, cree un archivo llamado users.txt que contenga una lista de nombres de usuario, un nombre de usuario por línea. Por ejemplo:

    nano ~/project/users.txt

    Agregue los siguientes nombres de usuario:

    user1
    user2
    user3

    Guarde el archivo y salga de nano (Ctrl+X, Y, Enter).

  2. Crear una lista de contraseñas:

    En su directorio ~/project, cree un archivo llamado passwords.txt que contenga una lista de contraseñas, una contraseña por línea. Por ejemplo:

    nano ~/project/passwords.txt

    Agregue las siguientes contraseñas:

    password123
    password
    123456

    Guarde el archivo y salga de nano (Ctrl+X, Y, Enter).

  3. Ejecutar el ataque FTP sin salida detallada:

    Ahora, ejecutemos el ataque de Hydra contra un servidor FTP objetivo. Con fines de demostración, utilizaremos un objetivo ficticio 127.0.0.1. Importante: No intente atacar sistemas sin permiso explícito.

    Ejecute el siguiente comando:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt ftp://127.0.0.1
    • -L ~/project/users.txt: Especifica el archivo de la lista de nombres de usuario.
    • -P ~/project/passwords.txt: Especifica el archivo de la lista de contraseñas.
    • ftp://127.0.0.1: Especifica el servicio FTP y la dirección del servidor objetivo.

    Nota: Dado que no hay un servidor FTP en ejecución en 127.0.0.1, el ataque fallará. Sin embargo, este comando demuestra la sintaxis básica para ejecutar un ataque FTP sin salida detallada. Hydra intentará cada combinación de nombre de usuario y contraseña, pero solo mostrará los resultados si se encuentra un inicio de sesión exitoso. Si no se encuentra un inicio de sesión exitoso, mostrará un mensaje indicando que no se descifró ninguna contraseña.

    La salida se verá similar a esto (aunque probablemente con mensajes de "Login failed" ya que no hay un servidor FTP real):

    Hydra v9.5 (c) 2023 by van Hauser/THC - Use freely but carefully.
    Hydra starting at 2023-10-27 10:00:00
    [DATA] 1 task, 3 login attempts per task, 3 password attempts per task
    [DATA] attacking ftp://127.0.0.1:21
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    ...
    [ATTEMPT] target 127.0.0.1 - login: user3 password: 123456
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user1 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    ...
    [ATTEMPT] target 127.0.0.1 - login: user3 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user2 password: password
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    ...
    [STATUS] 0 of 9 tasks completed, 1 task remaining
    Hydra finished.

    Si se encontrara un inicio de sesión exitoso, la salida incluiría una línea como:

    [21][ftp] host: 127.0.0.1   login: user1   password: password123

    Dado que no estamos ejecutando un servidor FTP real, el ataque fallará y Hydra informará que no se descifró ninguna contraseña. Esto es lo esperado.

Volver a ejecutar con -v para obtener detalles

En este paso, volveremos a ejecutar el ataque FTP del paso anterior, pero esta vez usaremos la opción -v para habilitar la salida detallada (verbose output). La salida detallada proporciona información más detallada sobre cada intento de inicio de sesión, lo cual puede ser útil para solucionar problemas o entender el progreso del ataque.

La opción -v en Hydra significa "detallado" (verbose). Cuando se utiliza, aumenta la cantidad de información mostrada en la pantalla durante el ataque. Esto incluye detalles sobre cada intento de conexión, el nombre de usuario y la contraseña que se están probando, y cualquier error que ocurra.

Usemos las mismas listas de nombres de usuario y contraseñas (users.txt y passwords.txt) que creamos en el paso anterior.

  1. Volver a ejecutar el ataque FTP con salida detallada:

    Ejecute el siguiente comando:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -v ftp://127.0.0.1
    • -L ~/project/users.txt: Especifica el archivo de la lista de nombres de usuario.
    • -P ~/project/passwords.txt: Especifica el archivo de la lista de contraseñas.
    • -v: Habilita la salida detallada.
    • ftp://127.0.0.1: Especifica el servicio FTP y la dirección del servidor objetivo.

    Nota: Al igual que en el paso anterior, dado que no hay un servidor FTP en ejecución en 127.0.0.1, el ataque fallará. Sin embargo, este comando demuestra el uso de la opción -v.

    La salida ahora será más detallada que en el paso anterior. Verá información sobre cada intento de conexión, incluyendo el nombre de usuario y la contraseña que se están probando, y cualquier error que ocurra. La salida se verá similar a esto:

    Hydra v9.5 (c) 2023 by van Hauser/THC - Use freely but carefully.
    Hydra starting at 2023-10-27 10:05:00
    [DATA] 1 task, 3 login attempts per task, 3 password attempts per task
    [DATA] attacking ftp://127.0.0.1:21
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ATTEMPT] target 127.0.0.1 - login: user1 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user1 password: password
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user1 password: 123456
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user2 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user2 password: password
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user2 password: 123456
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user3 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user3 password: password
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [ATTEMPT] target 127.0.0.1 - login: user3 password: 123456
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed
    [STATUS] 0 of 9 tasks completed, 1 task remaining
    Hydra finished.

    Puede ver que ahora se muestra cada intento, mostrando el nombre de usuario y la contraseña que se están probando. Esto puede ser útil para monitorear el progreso del ataque e identificar cualquier problema potencial.

Ejecutar con -V para mostrar los intentos

En este paso, volveremos a ejecutar el ataque FTP, pero esta vez utilizando la opción -V. La opción -V proporciona un nivel de detalle (verbosidad) diferente en comparación con -v. Se centra en mostrar cada intento de inicio de sesión en un formato conciso, lo que facilita el seguimiento del progreso del ataque.

La opción -V en Hydra es similar a -v, pero ofrece una salida más compacta. En lugar de mostrar información detallada de la conexión para cada intento, simplemente muestra el nombre de usuario y la contraseña que se están probando. Esto puede ser útil cuando se desea monitorear el progreso del ataque sin verse abrumado por demasiada información.

Seguiremos utilizando las mismas listas de nombres de usuario y contraseñas (users.txt y passwords.txt) de los pasos anteriores.

  1. Volver a ejecutar el ataque FTP con salida -V:

    Ejecute el siguiente comando:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -V ftp://127.0.0.1
    • -L ~/project/users.txt: Especifica el archivo de la lista de nombres de usuario.
    • -P ~/project/passwords.txt: Especifica el archivo de la lista de contraseñas.
    • -V: Habilita la salida centrada en los intentos.
    • ftp://127.0.0.1: Especifica el servicio FTP y la dirección del servidor objetivo.

    Nota: Como antes, dado que no hay un servidor FTP en ejecución en 127.0.0.1, el ataque fallará. Sin embargo, este comando demuestra el uso de la opción -V.

    La salida será más concisa que con la opción -v. Verá cada intento de inicio de sesión mostrado en un formato simple, mostrando el nombre de usuario y la contraseña que se están probando. La salida se verá similar a esto:

    Hydra v9.5 (c) 2023 by van Hauser/THC - Use freely but carefully.
    Hydra starting at 2023-10-27 10:10:00
    [DATA] 1 task, 3 login attempts per task, 3 password attempts per task
    [DATA] attacking ftp://127.0.0.1:21
    [ATTEMPT] target 127.0.0.1 - login: user1 password: password123
    [ATTEMPT] target 127.0.0.1 - login: user1 password: password
    [ATTEMPT] target 127.0.0.1 - login: user1 password: 123456
    [ATTEMPT] target 127.0.0.1 - login: user2 password: password123
    [ATTEMPT] target 127.0.0.1 - login: user2 password: password
    [ATTEMPT] target 127.0.0.1 - login: user2 password: 123456
    [ATTEMPT] target 127.0.0.1 - login: user3 password: password123
    [ATTEMPT] target 127.0.0.1 - login: user3 password: password
    [ATTEMPT] target 127.0.0.1 - login: user3 password: 123456
    [STATUS] 0 of 9 tasks completed, 1 task remaining
    Hydra finished.

    Esta salida es menos detallada que la salida -v, pero aún proporciona una visión clara del progreso del ataque.

Comparar niveles de detalle (verbosidad)

En este paso, compararemos los diferentes niveles de detalle (verbosidad) que utilizamos en los pasos anteriores: sin salida detallada, -v (detallado) y -V (mostrar intentos). Comprender las diferencias entre estos niveles te permite elegir el nivel de detalle más adecuado para tus necesidades específicas cuando uses Hydra.

Resumamos las características de cada nivel de detalle:

  • Sin salida detallada: Este es el comportamiento predeterminado. Hydra solo mostrará intentos de inicio de sesión exitosos o mensajes de error. Proporciona la menor cantidad de información y es adecuado para ejecutar ataques en segundo plano o cuando solo te preocupas por los inicios de sesión exitosos.

  • -v (Detallado): Esta opción proporciona información detallada sobre cada intento de conexión, incluyendo el nombre de usuario y la contraseña que se están probando, el estado de la conexión y cualquier error que ocurra. Es útil para solucionar problemas de conexión, entender el progreso del ataque e identificar posibles problemas.

  • -V (Mostrar intentos): Esta opción muestra cada intento de inicio de sesión en un formato conciso, mostrando solo el nombre de usuario y la contraseña que se están probando. Proporciona un buen equilibrio entre detalle y claridad, lo que te permite monitorear el progreso del ataque sin verse abrumado por demasiada información.

Para ilustrar mejor las diferencias, consideremos un escenario en el que Hydra está intentando descifrar la contraseña del nombre de usuario user1 en un servidor FTP.

  • Sin salida detallada: Si el intento de inicio de sesión falla, Hydra podría mostrar un mensaje de error genérico como [ERROR] 127.0.0.1: FTP: Login failed. Si el intento de inicio de sesión tiene éxito, mostrará la información del inicio de sesión exitoso.

  • -v (Detallado): Si el intento de inicio de sesión falla, Hydra podría mostrar información detallada como:

    [ATTEMPT] target 127.0.0.1 - login: user1 password: password123
    [STATUS] 0.00 tries/min, 0 tries in 0 min, 1 task
    [ERROR] 127.0.0.1: FTP: Login failed

    Esta salida muestra el nombre de usuario y la contraseña específicos que se están probando, el estado de la conexión y el mensaje de error.

  • -V (Mostrar intentos): Si el intento de inicio de sesión falla, Hydra mostrará:

    [ATTEMPT] target 127.0.0.1 - login: user1 password: password123

    Esta salida simplemente muestra el nombre de usuario y la contraseña que se están probando, sin ningún detalle adicional de la conexión.

Elegir el nivel de detalle adecuado:

La elección del nivel de detalle depende de tus necesidades y preferencias específicas.

  • Si quieres ejecutar el ataque en segundo plano y solo te preocupas por los inicios de sesión exitosos, utiliza la salida sin detalle.
  • Si necesitas información detallada para solucionar problemas o entender el progreso del ataque, utiliza la opción -v.
  • Si quieres una visión general concisa del progreso del ataque, utiliza la opción -V.

En resumen, experimentando con diferentes niveles de detalle, puedes entender mejor cómo funciona Hydra y elegir el nivel de detalle más adecuado para tus necesidades específicas. Esto finaliza el laboratorio sobre la comparación de niveles de detalle en Hydra.

Resumen

En este laboratorio, exploramos los modos de detalle (verbosidad) de Hydra realizando un ataque de inicio de sesión FTP. Comenzamos ejecutando un ataque básico contra un servidor FTP ficticio (127.0.0.1) sin salida detallada, utilizando listas de nombres de usuario y contraseñas creadas en el directorio ~/project. Esto demostró el comportamiento predeterminado de Hydra, donde se suprime la información detallada de los intentos de inicio de sesión.

Luego, el laboratorio nos guió en el uso de las opciones -v y -V para aumentar la verbosidad de la salida de Hydra, lo que nos permitió observar más detalles sobre cada intento de inicio de sesión. Al comparar la salida del ataque con diferentes niveles de detalle, obtuvimos una mejor comprensión de cómo utilizar las opciones de verbosidad de Hydra para monitorear y solucionar problemas en los ataques.