Gobuster : énumérer répertoires, fichiers, sous-domaines et vhosts d'une cible web
Brute-force rapide de répertoires, sous-domaines et vhosts d'une cible web avec Gobuster et les bonnes wordlists ;)
Lors de la phase de reconnaissance d'un audit de sécurité web ou sur un challenge CTF, trouver les pages d'administration cachées, les fichiers oubliés ou les sous-domaines de test est souvent le point de départ.
Écrit en Go, Gobuster est conçu pour être ultra-rapide et très léger en ressources grâce à la gestion native du multi-threading. C'est l'un des outils de brute-force d'URL les plus efficaces aux côtés de ffuf.
Rappel : L'énumération agressive sur un serveur sans autorisation préalable reste interdite. À pratiquer sur vos propres applications ou dans un cadre d'audit autorisé.
Les modes principaux de Gobuster
Gobuster propose plusieurs modes d'attaque spécialisés :
| Mode | Rôle | Cas d'usage |
|---|---|---|
dir |
Découverte de répertoires et fichiers HTTP/HTTPS | Dénicher des panels /admin, des sauvegardes .bak, des .env ou des endpoints d'API. |
dns |
Brute-force de sous-domaines | Repérer dev.exemple.com, vpn.exemple.com, test.exemple.com. |
vhost |
Énumération de virtual hosts (en-tête Host:) |
Trouver des sites hébergés sur la même IP mais invisibles dans le DNS public. |
fuzz |
Remplacement du mot-clé FUZZ |
Tester des paramètres d'URL ou des valeurs d'en-tête personnalisées. |
s3 |
Recherche de buckets Amazon S3 | Vérifier si des buckets cloud mal configurés sont accessibles. |
Mode 1 : Découverte de répertoires et fichiers (dir)
C'est le mode le plus courant. Il teste les entrées d'une liste de mots (wordlist) à la racine du site web :
gobuster dir \
-u https://exemple.com \
-w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-medium-directories.txt \
-x php,html,txt,json,bak,env \
-t 30 \
-s "200,204,301,302,307,401,403" \
-b "404" \
-o resultats_dir.txt
Les options clés à retenir :
-u: L'URL cible.-w: Le chemin vers votre dictionnaire.-x: Les extensions de fichiers à tester systématiquement (ex:php,txt,env,bak,sql).-t: Nombre de threads (10 par défaut, on peut monter à 30-50 sur un réseau stable).-s: Codes HTTP considérés comme positifs (200, 301, 403...).-b: Codes HTTP à masquer (typiquement 404).-k: Ignore les alertes de certificats SSL/TLS invalides (pratique sur un lab local).
Mode 2 : Brute-force de sous-domaines (dns)
Pour cartographier les sous-domaines d'une organisation en interrogeant un résolveur DNS :
gobuster dns \
-d exemple.com \
-w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-r 1.1.1.1:53 \
-t 50 \
-o sous_domaines.txt
-d: Le domaine principal.-r: Spécifier un résolveur DNS rapide pour ne pas saturer sa box locale.
Mode 3 : Trouver les Virtual Hosts cachés (vhost)
Sur un serveur web (Nginx / Apache / Traefik), plusieurs sites peuvent cohabiter sur la même adresse IP en étant filtrés uniquement via l'en-tête HTTP Host:.
Le mode vhost interroge directement l'IP en faisant varier cet en-tête avec les mots de votre dictionnaire :
gobuster vhost \
-u http://192.168.1.50 \
-w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
--append-domain \
-o vhosts.txt
L'option --append-domain ajoute automatiquement le domaine cible à chaque mot testé (admin.exemple.com, git.exemple.com...).
Quelles wordlists utiliser ?
L'efficacité de l'outil dépend à 90 % de votre dictionnaire. Le projet incontournable est SecLists (disponible sous Debian/Ubuntu avec sudo apt install seclists ou sur GitHub) :
- Pour les répertoires classiques :
Discovery/Web-Content/raft-medium-directories.txtoucommon.txt. - Pour les fichiers sensibles et backups :
Discovery/Web-Content/quickhits.txt. - Pour les sous-domaines :
Discovery/DNS/subdomains-top1million-20000.txt.
En résumé
- Gobuster allie rapidité et simplicité pour cartographier une application web.
- Pensez toujours au paramètre
-xpour cibler les extensions sensibles (.env,.bak,.conf). - L'enchaînement classique
dnspuisdiretvhostdonne une vision claire de la surface exposée ;)