Attaques par force brute
Attaques par force brute et énumération
Notions théoriques
1. Qu'est-ce qu'une attaque par force brute ?
Une attaque par force brute est une méthode utilisée pour deviner un mot de passe ou une clé de chiffrement en essayant toutes les combinaisons possibles jusqu'à trouver la bonne.
Elle est souvent utilisée contre :
- Les comptes utilisateurs (connexion à un site Web, SSH, etc.).
- Les fichiers chiffrés.
- Les clés de chiffrement.
Cette attaque est efficace si le mot de passe est court ou simple.
Par exemple, un mot de passe comme "123456"
sera facilement trouvé en quelques secondes.
2. Qu'est-ce que l'énumération ?
L’énumération est une technique qui consiste à collecter des informations sur un système avant une attaque.
Cela peut inclure :
- La découverte d’utilisateurs existants sur un site web.
- La récupération de noms de fichiers ou de répertoires cachés.
- L’identification des services actifs sur un serveur.
Elle est souvent utilisée avant une attaque par force brute pour réduire le nombre de tentatives nécessaires.
3. Comment se protéger ?
Pour se protéger contre ces attaques, il est recommandé de :
- Utiliser des mots de passe longs et complexes.
- Mettre en place une limitation du nombre de tentatives (ex. : blocage après 5 essais).
- Activer l’authentification à deux facteurs (2FA).
- Configurer des CAPTCHAs pour éviter les attaques automatisées.
Exemple pratique
Nous allons voir comment un attaquant pourrait utiliser un outil pour trouver un mot de passe par force brute et comment il pourrait découvrir des utilisateurs existants sur un site.
1. Attaque par force brute sur un mot de passe
Un attaquant peut utiliser Hydra, un outil permettant de tester des mots de passe sur un service comme SSH.
Commande pour tester des mots de passe sur un serveur SSH :
hydra -l admin -P passwords.txt ssh://192.168.1.10
Explication :
-l admin
: Nom d'utilisateur ciblé.-P passwords.txt
: Liste de mots de passe à tester.ssh://192.168.1.10
: Adresse du serveur cible.
Si le mot de passe est dans la liste, Hydra affichera :
[22][ssh] host: 192.168.1.10 login: admin password: password123
2. Énumération des utilisateurs sur un site web
Avec WFuzz, un attaquant peut tester des noms d'utilisateur sur un formulaire de connexion.
Commande pour tester des noms d’utilisateur :
wfuzz -c -z file,users.txt --hc 403 http://site.com/login?username=FUZZ
Explication :
-z file,users.txt
: Liste de noms d’utilisateur à tester.--hc 403
: Ignore les réponses avec un code 403 (accès refusé).FUZZ
: RemplaceFUZZ
par chaque nom d’utilisateur de la liste.
Si un utilisateur existe, la réponse du serveur sera différente.
4 outils très utilisés en cybersécurité
Voici 4 outils très utilisés en cybersécurité pour tester la robustesse des systèmes et identifier les failles potentielles.
Il est essentiel de les utiliser uniquement dans un cadre légal et éthique.
Outil | Utilisation principale |
---|---|
Hydra | Attaque par force brute sur SSH et autres services |
WFuzz | Énumération des utilisateurs et fichiers cachés |
John the Ripper | Crackage de mots de passe chiffrés |
Gobuster | Découverte de répertoires cachés sur un site Web |
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif : Comprendre et expérimenter les attaques par force brute et énumération sur un environnement de test.
Matériel requis :
- Une machine virtuelle avec Kali Linux (attaquant)
- Une machine virtuelle Metasploitable 2 (cible)
- Un éditeur de texte et un terminal
1. Introduction
1.1. Présentation du TP
Dans ce TP, vous allez apprendre à :
- Effectuer une attaque par force brute sur un service SSH avec Hydra.
- Réaliser une énumération d’utilisateurs sur un site web avec WFuzz.
- Comprendre les mécanismes de protection contre ces attaques.
⚠️ Important : Ce TP est réalisé dans un cadre pédagogique et éthique. Il est interdit d’utiliser ces techniques sur des systèmes sans autorisation.
2. Préparation de l’environnement
2.1. Lancer les machines virtuelles
- Démarrer Kali Linux (machine attaquante).
- Démarrer Metasploitable 2 (machine cible).
- Identifier l’adresse IP de la cible en exécutant la commande suivante sur Metasploitable :
Notez l’adresse IP affichée (ex:
ifconfig
192.168.1.100
).
3. Attaque par force brute sur SSH avec Hydra
3.1. Présentation de Hydra
Hydra est un outil permettant d’effectuer des attaques par force brute sur divers protocoles (SSH, FTP, HTTP, etc.).
3.2. Objectif
Nous allons essayer de trouver un mot de passe SSH en testant une liste de mots de passe courants.
3.3. Étapes
Étape 1 : Vérifier que SSH est actif sur la cible
Sur Kali Linux, exécutez :
nmap -p 22 192.168.1.100
Si le port 22/tcp open apparaît, cela signifie que SSH est activé.
Étape 2 : Lancer une attaque par force brute avec Hydra
Exécutez la commande suivante :
hydra -l msfadmin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100
Explication des options :
-l msfadmin
: Nom d’utilisateur ciblé.-P /usr/share/wordlists/rockyou.txt
: Liste de mots de passe à tester.ssh://192.168.1.100
: Adresse IP de la cible.
Étape 3 : Analyser les résultats
Si Hydra trouve un mot de passe valide, il affichera :
[22][ssh] host: 192.168.1.100 login: msfadmin password: msfadmin
Essayez de vous connecter avec :
ssh msfadmin@192.168.1.100
4. Énumération d’utilisateurs sur un site web avec WFuzz
4.1. Présentation de WFuzz
WFuzz est un outil permettant de tester différentes valeurs dans une requête HTTP, utile pour découvrir des utilisateurs, fichiers cachés, etc.
4.2. Objectif
Nous allons essayer de trouver des noms d’utilisateurs valides sur un formulaire de connexion.
4.3. Étapes
Étape 1 : Identifier une page de connexion
Sur votre navigateur, entrez :
http://192.168.1.100/mutillidae
Allez sur la page de connexion et observez le formulaire.
Étape 2 : Lancer WFuzz pour tester des utilisateurs
Exécutez la commande suivante :
wfuzz -c -z file,/usr/share/wordlists/names.txt --hc 403 http://192.168.1.100/login.php?username=FUZZ&password=test
Explication des options :
-z file,/usr/share/wordlists/names.txt
: Liste de noms d’utilisateur à tester.--hc 403
: Ignore les réponses avec un code 403 (accès refusé).FUZZ
: Remplacé par chaque nom dans la liste.
Étape 3 : Analyser les résultats
Si un utilisateur existe, la réponse HTTP sera différente (ex: 200 OK
).
5. Questions de réflexion
- Pourquoi une attaque par force brute est-elle plus efficace sur des mots de passe courts ?
- Quels sont les indices qui permettent de détecter une attaque par énumération ?
- Quels mécanismes de protection peuvent être mis en place contre la force brute et l’énumération ?
- Pourquoi est-il important d’utiliser un mot de passe unique pour chaque service ?
- Comment l’authentification à deux facteurs (2FA) empêche-t-elle ces attaques ?
6. Conclusion et bonnes pratiques
- Les attaques par force brute et énumération sont courantes et peuvent être utilisées pour compromettre des systèmes mal protégés.
- Les protections efficaces incluent : limitation des tentatives, verrouillage de compte, 2FA, CAPTCHA.
- Dans un cadre professionnel, il est essentiel de tester la sécurité de ses propres systèmes pour identifier et corriger les vulnérabilités.
7. Pour aller plus loin
- Tester d’autres services (FTP, HTTP Basic Auth) avec Hydra.
- Explorer d’autres outils d’énumération comme Gobuster ou Dirb.
- Mettre en place des protections et tester leur efficacité.