Contrôle des intervalles de connexion Hydra

HydraBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à contrôler les intervalles de connexion de l'outil de craquage de mots de passe Hydra. Le laboratoire démontre comment configurer Hydra pour introduire des délais entre les tentatives de connexion, vous permettant de gérer le rythme d'attaque et potentiellement d'échapper à la détection.

Le laboratoire commence par la configuration d'un serveur SSH de base sur la machine virtuelle LabEx en utilisant OpenSSH. Vous installerez le serveur, vérifierez son statut et confirmerez qu'il écoute sur le port 22. Ensuite, vous exécuterez Hydra avec les paramètres de temporisation par défaut, puis vous modifierez la commande pour inclure l'option -W 5, qui introduit un intervalle de 5 secondes entre les tentatives de connexion. Enfin, vous observerez l'impact de ce réglage de temporisation sur le rythme global de l'attaque.

Configurer le serveur SSH

Dans cette étape, nous allons configurer un serveur SSH de base sur la machine virtuelle LabEx. SSH (Secure Shell) est un protocole réseau cryptographique permettant d'exploiter des services réseau en toute sécurité sur un réseau non sécurisé. Il est couramment utilisé pour la connexion à la ligne de commande à distance et l'exécution de commandes à distance.

Tout d'abord, nous devons installer le serveur OpenSSH. OpenSSH est un ensemble d'outils réseau de sécurité basés sur le protocole Secure Shell, et c'est la mise en œuvre SSH la plus courante.

Ouvrez un terminal dans la machine virtuelle LabEx. Vous pouvez utiliser le terminal Xfce par défaut.

Exécutez la commande suivante pour mettre à jour les listes de paquets :

sudo apt update

Cette commande synchronise les fichiers d'index de paquets à partir de leurs sources. Il est conseillé de l'exécuter avant d'installer tout nouveau logiciel. Vous pourriez être invité à saisir votre mot de passe, mais rappelez-vous que l'utilisateur labex possède les privilèges sudo sans mot de passe.

Ensuite, installez le serveur OpenSSH :

sudo apt install openssh-server -y

L'option -y répond automatiquement par « oui » à toutes les invites pendant l'installation, ce qui rend le processus non interactif.

Une fois l'installation terminée, le serveur SSH devrait démarrer automatiquement. Vous pouvez vérifier son statut à l'aide de la commande suivante :

sudo service ssh status

Pour confirmer que le serveur SSH est en cours d'exécution, vous pouvez vérifier si le port SSH (port 22) est en écoute. Utilisez la commande netstat :

netstat -tulnp | grep 22

Vous devriez voir une sortie similaire à ceci :

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -

Cela indique que le serveur SSH est en écoute sur le port 22 pour les connexions IPv4 et IPv6.

Maintenant que le serveur SSH est configuré, vous pouvez vous y connecter depuis une autre machine à l'aide d'un client SSH. Cependant, pour ce laboratoire, nous allons nous concentrer sur l'utilisation d'Hydra pour cracker le mot de passe SSH.

Exécuter Hydra avec le temps par défaut

Dans cette étape, nous allons exécuter Hydra pour tenter de cracker le mot de passe SSH. Nous utiliserons une liste d'utilisateurs et de mots de passe simples et observerons le rythme d'attaque avec les paramètres de temporisation par défaut.

Tout d'abord, créons un fichier de liste d'utilisateurs nommé users.txt dans le répertoire ~/project. Ce fichier contiendra un seul nom d'utilisateur : labex.

Dans votre terminal, exécutez la commande suivante pour créer le fichier users.txt :

echo "labex" > ~/project/users.txt

Ensuite, créez un fichier de liste de mots de passe nommé passwords.txt dans le répertoire ~/project. Ce fichier contiendra quelques mots de passe courants, y compris le mot de passe correct pour l'utilisateur labex.

Important : vous devez exécuter les commandes suivantes dans le terminal Bureau, car la variable d'environnement PASSWORD n'est disponible que dans l'environnement Bureau.

Exemple d'exécution de la commande Hydra

Dans votre terminal Bureau, exécutez les commandes suivantes pour créer le fichier passwords.txt :

echo "password" > ~/project/passwords.txt
echo "123456" >> ~/project/passwords.txt
echo "$PASSWORD" >> ~/project/passwords.txt

La variable d'environnement $PASSWORD contient le mot de passe réel de l'utilisateur labex dans cet environnement.

Maintenant, nous pouvons exécuter Hydra avec les paramètres de temporisation par défaut. La syntaxe de base d'Hydra est :

hydra [options] <target> <service> [MODULE-OPTIONS]

Dans notre cas, l'hôte cible est localhost (la machine virtuelle LabEx elle-même), le service est ssh, et nous utiliserons les listes d'utilisateurs et de mots de passe que nous venons de créer.

Exécutez la commande suivante dans votre terminal :

hydra -L ~/project/users.txt -P ~/project/passwords.txt localhost ssh

Décomposons cette commande :

  • hydra : La commande pour exécuter l'outil Hydra.
  • -L ~/project/users.txt : Spécifie le fichier de liste d'utilisateurs situé à l'emplacement ~/project/users.txt.
  • -P ~/project/passwords.txt : Spécifie le fichier de liste de mots de passe situé à l'emplacement ~/project/passwords.txt.
  • localhost : L'hôte cible (dans ce cas, la machine locale).
  • ssh : Le service à attaquer (SSH).

Hydra va maintenant commencer à tenter de se connecter au serveur SSH en utilisant les noms d'utilisateurs et les mots de passe des listes. Vous verrez une sortie affichant la progression de l'attaque. Il essaiera chaque combinaison de nom d'utilisateur et de mot de passe. Étant donné que le mot de passe correct provenant de la variable d'environnement $PASSWORD se trouve dans le fichier passwords.txt, Hydra devrait le trouver relativement rapidement.

Sortie de l'attaque SSH Hydra

La sortie ressemblera à ceci :

Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff


Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost   login: labex   password: [actual_password]
Hydra finished.

La ligne importante est [22][ssh] host: localhost login: labex password: [actual_password]. Cela indique qu'Hydra a réussi à trouver le mot de passe de l'utilisateur labex.

Notez la vitesse à laquelle Hydra tente les mots de passe. Ceci est le temps par défaut. Dans l'étape suivante, nous modifierons le temps pour voir comment cela affecte le rythme d'attaque.

Ajouter -W 5 pour des intervalles de 5 secondes

Dans cette étape, nous allons ajouter l'option -W 5 à la commande Hydra. Cette option introduit un délai de 5 secondes entre chaque tentative de connexion. Cela est utile pour éviter les verrouillages de compte ou la détection par les systèmes de détection d'intrusion.

L'option -W dans Hydra spécifie le délai d'attente pour une réponse du service cible. Par défaut, Hydra utilise un délai très court. L'augmentation de ce délai peut être utile lorsque le service cible met du temps à répondre ou lorsqu'il y a des problèmes de latence réseau.

Exécutez la commande suivante dans votre terminal :

hydra -L ~/project/users.txt -P ~/project/passwords.txt -W 5 localhost ssh

La seule différence entre cette commande et la précédente est l'ajout de l'option -W 5.

Maintenant, Hydra tentera de se connecter au serveur SSH, mais il attendra 5 secondes après chaque tentative de connexion échouée avant d'essayer le mot de passe suivant.

Observez la sortie. Vous remarquerez que le rythme d'attaque est beaucoup plus lent que dans l'étape précédente. Hydra trouvera toujours le mot de passe correct (« labex »), mais cela prendra plus de temps.

La sortie ressemblera à ceci :

Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff


Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost   login: labex   password: labex
Hydra finished.

Cependant, la différence clé réside dans le temps nécessaire pour atteindre le message Hydra finished.. Avec l'option -W 5, il faudra au moins 10 secondes (2 tentatives échouées * 5 secondes/tentative) avant que Hydra ne trouve le mot de passe correct.

Dans l'étape suivante, nous discuterons de l'impact de ce changement sur le rythme d'attaque et des implications pour les tests de sécurité.

Observer l'impact sur le rythme d'attaque

Dans cette étape, nous allons analyser l'impact de l'option -W 5 sur le rythme d'attaque d'Hydra.

Comme vous l'avez observé dans les étapes précédentes, l'ajout de -W 5 a considérablement ralenti l'attaque. Sans l'option -W 5, Hydra tente les connexions aussi rapidement que possible, limité uniquement par la latence réseau et le temps de réponse du serveur. Avec -W 5, Hydra effectue une pause de 5 secondes après chaque tentative de connexion échouée.

Cette différence dans le rythme d'attaque a plusieurs implications importantes :

  • Verrouillage de compte : De nombreux systèmes ont des politiques de verrouillage de compte qui désactivent un compte après un certain nombre de tentatives de connexion infructueuses. En ralentissant le rythme d'attaque avec -W 5, vous pouvez réduire le risque de déclencher ces politiques de verrouillage et éviter d'être bloqué du compte cible.

  • Systèmes de détection d'intrusion (IDS) : Les IDS surveillent le trafic réseau pour détecter les activités suspectes, telles que les attaques par force brute. Une série rapide de tentatives de connexion infructueuses est un indicateur fort d'une attaque par force brute et peut déclencher une alerte. En ralentissant le rythme d'attaque, vous pouvez rendre plus difficile pour un IDS de détecter l'attaque.

  • Consommation des ressources : Un rythme d'attaque rapide peut consommer des ressources importantes sur la machine attaquante et sur le serveur cible. Ralentir le rythme d'attaque peut réduire la consommation des ressources et rendre l'attaque moins perceptible.

  • Temps d'exécution : L'impact le plus évident est l'augmentation du temps nécessaire pour terminer l'attaque. Si vous avez une longue liste de mots de passe, l'ajout d'un délai entre les tentatives peut augmenter considérablement le temps total nécessaire pour cracker le mot de passe.

En résumé, l'option -W dans Hydra vous permet de contrôler le rythme d'attaque et d'équilibrer le besoin de rapidité avec le risque de détection et de verrouillage de compte. Le choix de la bonne valeur pour -W dépend de la cible spécifique et des objectifs de l'attaque. Pour les tests de pénétration, il est souvent préférable d'être furtif et d'éviter la détection, même si cela signifie que l'attaque prend plus de temps.

Ce laboratoire a démontré un exemple de base de l'utilisation d'Hydra pour cracker un mot de passe SSH. Dans les scénarios réels, les attaquants utilisent souvent des listes de noms d'utilisateur et de mots de passe beaucoup plus grandes et des techniques plus sophistiquées pour contourner les mesures de sécurité. Il est crucial d'utiliser des mots de passe forts et uniques et de mettre en œuvre des mesures de sécurité appropriées pour se protéger contre les attaques par force brute.

Résumé

Dans ce laboratoire, vous avez appris à contrôler les intervalles de connexion d'Hydra pour gérer le rythme d'attaque et éviter la détection.

Étapes clés effectuées :

  • Configuration d'un serveur SSH utilisant OpenSSH et vérification de son écoute sur le port 22
  • Création de listes de noms d'utilisateur et de mots de passe pour les tests Hydra
  • Exécution d'Hydra avec le temps par défaut pour observer le rythme d'attaque rapide
  • Ajout de l'option -W 5 pour introduire des délais de 5 secondes entre les tentatives de connexion
  • Observation de l'impact du contrôle du temps sur la vitesse d'attaque et comment cela aide à éviter les verrouillages de compte et les systèmes de détection

L'option -W vous permet d'équilibrer la vitesse d'attaque avec la furtivité, ce qui en fait un paramètre crucial pour des tests de pénétration efficaces tout en minimisant le risque de déclencher des mesures de sécurité.