Aller au contenu principal

Attaques par force brute

Attaques par force brute et énumération

Notions théoriques

1. Qu'est-ce qu'une attaque par force brute ?

Définition

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 ?

Définition

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 : Remplace FUZZ 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.

attention

Il est essentiel de les utiliser uniquement dans un cadre légal et éthique.

OutilUtilisation principale
HydraAttaque par force brute sur SSH et autres services
WFuzzÉnumération des utilisateurs et fichiers cachés
John the RipperCrackage de mots de passe chiffrés
GobusterDécouverte de répertoires cachés sur un site Web


Test de mémorisation/compréhension


Quelle est la principale caractéristique d'une attaque par force brute ?


Pourquoi l'énumération est-elle utile avant une attaque par force brute ?


Quel outil est souvent utilisé pour les attaques par force brute sur SSH ?


Que signifie l'option `-P` dans la commande Hydra ?


Comment un site peut-il se protéger contre la force brute ?


Quel est l’objectif principal de WFuzz ?


Que signifie `FUZZ` dans la commande WFuzz ?


Pourquoi l’authentification à deux facteurs protège contre la force brute ?


Quel type de réponse HTTP peut indiquer qu'un utilisateur existe lors d'une énumération ?


Quel est le principal inconvénient d'une attaque par force brute ?


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

⚠️ 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
  1. Démarrer Kali Linux (machine attaquante).
  2. Démarrer Metasploitable 2 (machine cible).
  3. Identifier l’adresse IP de la cible en exécutant la commande suivante sur Metasploitable :
    ifconfig
    Notez l’adresse IP affichée (ex: 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

  1. Pourquoi une attaque par force brute est-elle plus efficace sur des mots de passe courts ?
  2. Quels sont les indices qui permettent de détecter une attaque par énumération ?
  3. Quels mécanismes de protection peuvent être mis en place contre la force brute et l’énumération ?
  4. Pourquoi est-il important d’utiliser un mot de passe unique pour chaque service ?
  5. 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é.