Utiliser Hydra pour craquer des mots de passe

LinuxBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez découvrir les vulnérabilités liées aux mots de passe et apprendre à utiliser Hydra, un outil de sécurité très répandu pour tester la robustesse des authentifications. Vous simulerez une attaque par force brute sur un site web d'entraînement afin de comprendre comment des mots de passe faibles peuvent être facilement compromis.

Cette expérience pratique démontrera pourquoi l'utilisation de mots de passe complexes est cruciale en cybersécurité. Vous acquerrez des compétences concrètes pour configurer Hydra, analyser les résultats d'une attaque et évaluer l'efficacité des mesures de sécurité.

Exploration du site web cible

Dans cette étape, nous allons examiner le site web que nous allons tester et introduire le concept d'attaque par force brute. Avant de commencer à utiliser des outils automatisés, il est important de comprendre comment fonctionnent les systèmes d'authentification de base et quel est notre objectif.

Ouvrez l'onglet Web 8080 dans votre environnement d'atelier. Cela affichera une interface de navigateur web où vous verrez une page de connexion simple avec des champs pour saisir un nom d'utilisateur et un mot de passe. Cela ressemble aux pages de connexion que vous rencontrez quotidiennement sur de nombreux sites.

Capture d'écran de la page de connexion

Essayons quelques tentatives de connexion manuelles pour voir comment le système réagit :

  1. Première tentative :

    • Nom d'utilisateur : test
    • Mot de passe : password123
  2. Deuxième tentative :

    • Nom d'utilisateur : admin
    • Mot de passe : admin

Après chaque tentative, vous recevrez un message "Invalid username or password". Cette réponse générique est intentionnelle : elle ne vous indique pas si c'est le nom d'utilisateur qui n'existe pas ou si c'est seulement le mot de passe qui est erroné. C'est ce qu'on appelle la "sécurité par l'obscurité", ce qui permet d'empêcher les attaquants de collecter des informations sur les comptes valides.

Remarquez que vous pouvez continuer à essayer différentes combinaisons sans aucune restriction. Dans les systèmes de production réels, des mesures de sécurité telles que le verrouillage de compte ou les CAPTCHA seraient normalement mises en œuvre après plusieurs échecs pour empêcher les attaques automatisées. L'absence de ces protections dans notre environnement d'atelier le rend idéal pour démontrer les techniques de force brute.

Ce que vous venez de faire manuellement — essayer différentes combinaisons de noms d'utilisateur et de mots de passe — est essentiellement une version manuelle d'une attaque par force brute. Dans les attaques réelles, les pirates utilisent des outils automatisés pour tester des milliers de combinaisons par seconde. Cet exercice montre pourquoi des mots de passe simples comme "password123" ou "admin" sont extrêmement vulnérables, et pourquoi les systèmes ont besoin de mesures de sécurité appropriées pour prévenir de telles attaques.

Examen de la liste de mots de passe

Maintenant que nous comprenons le concept de base d'une attaque par force brute, examinons une liste de mots de passe courants que les attaquants pourraient utiliser. Avant de continuer, il est important de savoir que les attaques par force brute fonctionnent en essayant systématiquement toutes les combinaisons possibles jusqu'à trouver la bonne. L'utilisation de listes de mots de passe pré-établies rend ce processus beaucoup plus rapide.

Revenez à l'onglet Desktop de votre environnement. C'est ici que nous exécuterons toutes nos commandes et visualiserons les résultats.

Ouvrez le terminal Xfce sur le bureau en double-cliquant sur son icône. Le terminal est notre outil principal pour exécuter les commandes dans cet atelier.

Terminal Xfce sur le bureau

Dans des scénarios réels, les attaquants utilisent souvent des listes exhaustives de mots de passe provenant de fuites de données passées. Ces listes contiennent des millions de mots de passe qui ont été exposés lors d'incidents de sécurité. Pour notre atelier, nous utiliserons une liste plus restreinte de mots de passe faibles couramment trouvés sur Internet pour illustrer le concept. Cette liste a déjà été préparée pour vous et se trouve à l'emplacement /home/labex/project/500-worst-passwords.txt.

Examinons le contenu du fichier à l'aide de la commande head, qui affiche les premières lignes d'un fichier :

head -n 10 500-worst-passwords.txt

Cette commande affichera les 10 premiers mots de passe de la liste. L'option -n 10 indique à la commande d'afficher exactement 10 lignes.

123456
password
12345678
1234
12345
dragon
qwerty
567sjej
mustang
letmein

Ces mots de passe sont des choix courants que beaucoup de gens utilisent malheureusement encore. Remarquez à quel point ils sont simples et prévisibles — principalement des séquences numériques ou des mots du langage courant. C'est précisément pour cela que les attaquants les essaient souvent en premier lorsqu'ils tentent d'obtenir un accès non autorisé.

En utilisant une liste comme celle-ci, un attaquant peut considérablement accélérer son attaque. Au lieu d'essayer chaque combinaison possible de caractères (ce qui pourrait prendre des années), il commence par les mots de passe les plus probables, augmentant ainsi ses chances de succès rapide. En cybersécurité, nous appelons cela une "attaque par dictionnaire" — une version plus intelligente de la force brute qui utilise des mots de passe connus plutôt que des suppositions aléatoires.

Configuration de Hydra

Maintenant que nous avons notre liste de mots de passe, configurons Hydra, l'outil que nous utiliserons pour automatiser notre simulation d'attaque par force brute. Hydra est un outil puissant de cassage de mots de passe qui aide les professionnels de la sécurité à tester la robustesse des accès en essayant systématiquement différentes combinaisons.

Tout d'abord, nous allons créer un fichier texte simple contenant les noms d'utilisateur courants que nous voulons tester. C'est important car de nombreux systèmes utilisent des noms d'utilisateur par défaut prévisibles que les attaquants pourraient essayer en premier. Exécutez ces commandes :

cd ~/project
echo -e "admin\nuser\nroot" > ~/project/usernames.txt
cat ~/project/usernames.txt

La première commande (cd ~/project) garantit que nous sommes dans le bon répertoire de travail. La deuxième commande crée un fichier nommé usernames.txt contenant trois noms d'utilisateur courants (admin, user et root), chacun sur une nouvelle ligne. La troisième commande affiche le contenu du fichier pour vérifier qu'il a été créé correctement.

Maintenant, assurons-nous que Hydra est installé. Dans un scénario réel, vous l'installeriez normalement vous-même, mais dans cet environnement d'atelier :

Note : Les utilisateurs gratuits ne peuvent pas se connecter à Internet, donc Hydra est déjà pré-installé dans l'environnement. Vous pouvez ignorer cette commande. Passez à un compte Pro pour vous entraîner à installer Hydra par vous-même.

Utilisateurs Pro uniquement
sudo apt-get update
sudo apt-get install hydra -y

Hydra fonctionne en prenant des listes de noms d'utilisateur et de mots de passe potentiels, puis en tentant de s'authentifier avec chaque combinaison contre un service cible. Il prend en charge de nombreux protocoles, notamment HTTP, FTP, SSH, et bien d'autres. L'outil est particulièrement utile pour les testeurs d'intrusion afin d'identifier les mots de passe faibles dans un système.

Pour vérifier que Hydra fonctionne correctement, nous pouvons consulter sa version et les options disponibles avec :

hydra -h

Cette commande affiche le menu d'aide de Hydra, montrant toutes les commandes et options disponibles. Vous verrez des informations sur les différents modes d'attaque, les protocoles pris en charge et la manière de personnaliser vos tentatives de cassage. C'est utile pour comprendre l'étendue des capacités de Hydra avant de commencer à l'utiliser.

Utilisation de Hydra pour le cassage de mots de passe

Maintenant que Hydra est installé et que notre liste de mots de passe est prête, utilisons-le pour simuler une attaque par force brute sur notre site web d'entraînement. Avant de commencer, il est important de comprendre que Hydra est un outil automatisé qui teste systématiquement différentes combinaisons de noms d'utilisateur et de mots de passe sur une page de connexion.

Exécutez la commande Hydra suivante :

hydra -L ~/project/usernames.txt -P ~/project/500-worst-passwords.txt localhost -s 8080 http-post-form "/:username=^USER^&password=^PASS^:Invalid username or password" -o ~/project/hydra_results.txt

Analysons cette commande point par point pour comprendre le rôle de chaque partie :

  • hydra : C'est la commande pour lancer l'outil Hydra.
  • -L ~/project/usernames.txt : Spécifie le fichier contenant les noms d'utilisateur potentiels à tester.
  • -P ~/project/500-worst-passwords.txt : Indique le fichier contenant les mots de passe courants que nous allons tester pour chaque utilisateur.
  • localhost -s 8080 : L'adresse du serveur web cible (localhost) et le port (8080) que nous testons.
  • "/:username=^USER^&password=^PASS^:Invalid username or password" : Cela indique à Hydra :
    • L'URL de la page de connexion (/)
    • Le nom des champs du formulaire de connexion (username et password)
    • À quoi ressemble le message d'erreur en cas d'échec de la connexion
  • -o ~/project/hydra_results.txt : Enregistre toutes les tentatives réussies dans ce fichier de sortie.

Hydra va commencer à s'exécuter, et vous verrez les résultats s'afficher au fur et à mesure qu'il teste chaque combinaison. Ce processus peut prendre quelques minutes car Hydra parcourt systématiquement toutes les combinaisons possibles présentes dans les fichiers fournis.

Sortie de l'exécution de la commande Hydra

Une fois que Hydra a terminé, nous pouvons vérifier les résultats pour voir si des combinaisons ont fonctionné :

cat ~/project/hydra_results.txt
Résultats de Hydra

Les connexions réussies apparaîtront sous forme de lignes telles que "login: [username] password: [password] found". Celles-ci représentent les identifiants qui permettraient d'accéder au système.

Cet exercice démontre plusieurs concepts de sécurité importants :

  • Hydra a testé des centaines de combinaisons de mots de passe en quelques minutes, montrant la rapidité des outils automatisés.
  • Les connexions réussies prouvent que les mots de passe faibles ou courants sont facilement cassés.
  • Dans des scénarios réels, les attaquants peuvent utiliser des dictionnaires contenant des millions de mots de passe, ce qui rend indispensable l'utilisation de mots de passe robustes et uniques.
  • La différence entre les tentatives manuelles (Étape 1) et les outils automatisés souligne l'importance des politiques de gestion des mots de passe.

Remarquez comment l'efficacité de l'outil rend les identifiants faibles extrêmement vulnérables. C'est pourquoi les professionnels de la sécurité insistent sur l'utilisation de mots de passe complexes et la mise en œuvre de politiques de verrouillage de compte.

Résumé

Dans cet atelier, vous avez appris les bases de la sécurité des mots de passe grâce à une expérience pratique avec Hydra, un puissant outil de cassage de mots de passe. Vous avez exploré le fonctionnement des attaques par force brute et compris pourquoi elles peuvent compromettre les mots de passe faibles, tout en saisissant le rôle critique des bonnes pratiques en matière de mots de passe dans la cybersécurité.

Cet exercice a démontré pourquoi les experts en cybersécurité insistent sur l'utilisation de mots de passe complexes et uniques. N'oubliez pas d'appliquer ces compétences de manière éthique alors que vous continuez à explorer les outils et techniques de sécurité au cours de votre apprentissage.