Gobuster

💻 Introduction
Un outil de force brute rapide et flexible écrit en Go
Gobuster est un outil de force brute haute performance pour les répertoires/fichiers, DNS et hôtes virtuels, écrit en Go. Il est conçu pour être rapide, fiable et facile à utiliser pour les professionnels de la sécurité et les testeurs d'intrusion.
✨ Fonctionnalités
- 🚀 Haute performance : Scan multi-threadé avec concurrence configurable
- 🔍 Modes multiples : Répertoire, DNS, hôte virtuel, S3, GCS, TFTP et fuzzing
- 🛡️ Axé sur la sécurité : Conçu pour les tests d'intrusion et les évaluations de sécurité
- 🐳 Support Docker : Disponible en tant que conteneur Docker
- 🔧 Extensible : Scan basé sur des motifs et listes de mots personnalisées
🎯 Que peut faire Gobuster ?
- Énumération de répertoires/fichiers web : Découvrir des répertoires et fichiers cachés sur des serveurs web
- Découverte de sous-domaines DNS : Trouver des sous-domaines avec support des wildcards
- Détection d'hôtes virtuels : Identifier les hôtes virtuels sur les serveurs web cibles
- Énumération de stockage cloud : Découvrir les buckets Amazon S3 et Google Cloud Storage ouverts
- Découverte de fichiers TFTP : Trouver des fichiers sur des serveurs TFTP
- Fuzzing personnalisé : Fuzzing flexible avec paramètres personnalisables
🚀 Démarrage rapide
# Install gobuster
go install github.com/OJ/gobuster/v3@latest
# Basic directory enumeration
gobuster dir -u https://example.com -w /path/to/wordlist.txt
# DNS subdomain enumeration
gobuster dns -do example.com -w /path/to/wordlist.txt
# Virtual host discovery
gobuster vhost -u https://example.com -w /path/to/wordlist.txt
# S3 bucket enumeration
gobuster s3 -w /path/to/bucket-names.txt
📦 Installation
Installation rapide (recommandée)
go install github.com/OJ/gobuster/v3@latest
Prérequis : Go 1.24 ou supérieur
Méthodes d'installation alternatives
Utilisation des binaires pré-compilés
Téléchargez les binaires pré-compilés depuis la page des versions.
Utilisation de Docker
# Pull the latest image
docker pull ghcr.io/oj/gobuster:latest
# Run gobuster in Docker
docker run --rm -it ghcr.io/oj/gobuster:latest dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt
Compilation à partir des sources
git clone https://github.com/OJ/gobuster.git
cd gobuster
go mod tidy
go build
Dépannage de l'installation
Si vous rencontrez des problèmes :
- Assurez-vous que Go version 1.24+ est installé :
go version
- Vérifiez vos variables d'environnement
$GOPATH et $GOBIN
- Vérifiez que
$GOPATH/bin est dans votre $PATH
🎯 Utilisation
Gobuster utilise une approche basée sur des modes. Chaque mode est conçu pour des tâches d'énumération spécifiques :
gobuster [mode] [options]
Obtenir de l'aide
gobuster help # Show general help
gobuster help [mode] # Show help for specific mode
gobuster [mode] --help # Alternative help syntax
📊 Modes disponibles
🌐 Mode Répertoire (dir)
Énumérer les répertoires et fichiers sur les serveurs web.
Utilisation de base :
gobuster dir -u https://example.com -w wordlist.txt
Options avancées :
# With file extensions
gobuster dir -u https://example.com -w wordlist.txt -x php,html,js,txt
# With custom headers and cookies
gobuster dir -u https://example.com -w wordlist.txt -H "Authorization: Bearer token" -c "session=value"
# Show response length
gobuster dir -u https://example.com -w wordlist.txt -l
# Filter by status codes
gobuster dir -u https://example.com -w wordlist.txt -s 200,301,302
🔍 Mode DNS (dns)
Découvrir des sous-domaines par résolution DNS.
Utilisation de base :
gobuster dns -do example.com -w wordlist.txt
Options avancées :
# Use custom DNS server
gobuster dns -do example.com -w wordlist.txt -r 8.8.8.8:53
# Increase threads for faster scanning
gobuster dns -do example.com -w wordlist.txt -t 50
🏠 Mode Hôte virtuel (vhost)
Découvrir des hôtes virtuels sur les serveurs web.
Utilisation de base :
gobuster vhost -u https://example.com --append-domain -w wordlist.txt
☁️ Mode S3 (s3)
Énumérer les buckets Amazon S3.
Utilisation de base :
gobuster s3 -w bucket-names.txt
Avec sortie de débogage :
gobuster s3 -w bucket-names.txt --debug
🖥️ Mode TFTP (tftp)
Énumérer les fichiers sur les serveurs tftp.
Utilisation de base :
gobuster tftp -s 10.0.0.1 -w wordlist.txt
☁️ Mode GCS (gcs)
Énumérer les buckets Google Cloud Storage.
Utilisation de base :
gobuster gcs -w bucket-names.txt
Avec sortie de débogage :
gobuster gcs -w bucket-names.txt --debug
🔧 Mode Fuzzing (fuzz)
Fuzzing personnalisé avec le mot-clé FUZZ.
Utilisation de base :
gobuster fuzz -u https://example.com?FUZZ=test -w wordlist.txt
Exemples avancés :
# Fuzz URL parameters
gobuster fuzz -u https://example.com?param=FUZZ -w wordlist.txt
# Fuzz headers
gobuster fuzz -u https://example.com -H "X-Custom-Header: FUZZ" -w wordlist.txt
# Fuzz POST data
gobuster fuzz -u https://example.com -d "username=admin&password=FUZZ" -w passwords.txt
💰 Soutien

Vous aimez cet outil ? Soutenez-le !
Si vous nous soutenez déjà, vous êtes géniaux. Sinon, pas de problème ! Vous voulez nous soutenir ? Devenez contributeur !

Tous les fonds donnés à ce projet seront reversés à des œuvres caritatives. Un journal complet des dons sera disponible dans ce dépôt au fur et à mesure.
💡 Cas d'utilisation courants
Tests de sécurité d'applications web
# Comprehensive directory enumeration
gobuster dir -u https://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,asp,aspx,jsp
# API endpoint discovery
gobuster dir -u https://api.target.com -w /usr/share/wordlists/dirb/common.txt -x json
# Admin panel discovery
gobuster dir -u https://target.com -w admin-panels.txt -s 200,301,302,403
Reconnaissance DNS
# Comprehensive subdomain enumeration
gobuster dns -do target.com -w /usr/share/wordlists/dnsrecon/subdomains-top1mil-5000.txt -t 50
Évaluation du stockage cloud
# S3 bucket enumeration with patterns
gobuster s3 -w company-names.txt -v
# GCS bucket enumeration
gobuster gcs -w company-names.txt -v
🔧 Dépannage
Problèmes courants
« Permission refusée » ou « Accès refusé »
- Essayez de réduire le nombre de threads avec l'option
-t
- Ajoutez des délais entre les requêtes avec
--delay
- Utilisez un user-agent différent avec l'option
-a
« Délai de connexion dépassé »
- Augmentez le délai avec l'option
--timeout
- Réduisez le nombre de threads pour les cibles lentes
- Vérifiez votre connexion internet
« Aucun résultat trouvé »
- Vérifiez que l'URL cible est accessible
- Essayez différentes listes de mots
- Vérifiez le filtrage des codes d'état avec l'option
-s
Scan lent
- Augmentez le nombre de threads avec l'option
-t (mais faites attention à ne pas submerger la cible)
- Utilisez des listes de mots plus petites et plus ciblées
🎯 Bonnes pratiques
Directives pour les tests de sécurité
- Obtenez toujours une autorisation appropriée avant de tester une cible
- Commencez avec un faible nombre de threads pour éviter de submerger les serveurs
- Utilisez des listes de mots appropriées pour la technologie cible
- Respectez les limites de taux et implémentez des délais si nécessaire
- Surveillez votre trafic réseau pour éviter la détection
Sélection de la liste de mots
- Pour les applications web : Utilisez des listes de mots spécifiques à la technologie (PHP, ASP.NET, etc.)
- Pour les API : Concentrez-vous sur les points d'accès API courants et les modèles de version
- Pour le DNS : Utilisez des listes de mots spécifiques aux sous-domaines avec des motifs courants
- Pour le stockage cloud : Utilisez des motifs spécifiques à l'entreprise/marque
Gestion de la sortie
# Sauvegarder les résultats dans un fichier
gobuster dir -u https://example.com -w wordlist.txt -o results.txt
# Utiliser le mode silencieux pour une sortie propre
gobuster dir -u https://example.com -w wordlist.txt -q
📚 Ressources supplémentaires
Listes de mots recommandées
Bon hacking ! 🚀
Rappelez-vous : Testez toujours de manière responsable et avec une autorisation appropriée.
Changements
3.8.2
3.8.2
- Correction du mode étendu pour afficher à nouveau l'URL complète
3.8.1
3.8.1
- Correction du mode étendu affichant les entrées deux fois
3.8
3.8
- Ajout du drapeau exclude-hostname-length pour ajuster dynamiquement exclude-length par @0xyy66
- Correction des paramètres de requête de fuzzing
- Ajout du drapeau
--force en mode dir pour continuer l'exécution en cas d'erreurs de pré-vérification
3.7
3.7
- utilisation d'une nouvelle bibliothèque CLI
- beaucoup plus d'options courtes grâce à la nouvelle bibliothèque CLI
- messages d'erreur plus conviviaux
- nettoyage du mode DNS
- renommage de
show-cname en check-cname en mode dns
- suppression du drapeau
verbose et introduction de debug à la place
- la commande version affiche désormais aussi quelques variables de build pour plus d'informations
- passage à une autre bibliothèque pkcs12 pour prendre en charge les p12 générés avec openssl3 utilisant SHA256 HMAC
- les commentaires dans les listes de mots (chaînes commençant par #) ne sont plus ignorés
- avertissement en mode vhost si le commutateur --append-domain pourrait avoir été oublié
- permet d'exclure le code d'état et la longueur en mode vhost
- ajout d'automaxprocs pour une utilisation dans docker avec des limites CPU
- journalisation des requêtes http avec le débogage activé
- permet le fuzzing de l'en-tête Host en mode fuzz
- désactivation automatique de la sortie de progression lorsque la sortie est redirigée
- correction des caractères spéciaux supplémentaires lors de l'exécution avec
--no-progress
- avertissement lors de l'utilisation du mode vhost avec un proxy et des urls basées sur http car cela pourrait ne pas fonctionner comme prévu
- ajout des paramètres
interface et local-ip pour spécifier l'interface de sortie pour les requêtes http
3.6
3.6
- Paramètre de décalage de liste de mots pour sauter x lignes de la liste de mots
- empêcher les doubles barres obliques lors de la construction d'une url en mode dir
- permettre plusieurs valeurs et plages sur
--exclude-length
- paramètre
no-fqdn sur le bruteforce dns pour désactiver l'utilisation des domaines de recherche du système. Cela devrait accélérer l'exécution si vous avez configuré des domaines de recherche. https://github.com/OJ/gobuster/pull/418
3.5
3.5
- Autoriser les plages dans le code d'état et la liste noire des codes d'état. Exemple : 200,300-305,404
3.4
3.4
- Activer le support TLS1.0 et TLS1.1
- Ajouter le mode TFTP pour rechercher des fichiers sur les serveurs tftp
3.3
3.3
- Support des certificats clients TLS / mtls
- support du chargement d'extensions à partir d'un fichier
- support du fuzzing du corps POST, des en-têtes HTTP et de l'authentification de base
- nouvelle option pour ne pas canonicaliser les noms d'en-têtes
3.2
3.2
- Utiliser go 1.19
- utiliser les contextes de la bonne manière
- se débarrasser du drapeau wildcard (sauf en mode DNS)
- sortie colorée
- réessayer en cas de dépassement de délai
- énumération de buckets Google Cloud
- correction des erreurs de référence nulle
3.1
3.1
- énumération des buckets AWS S3 publics
- mode de fuzzing
- spécifier la méthode HTTP
- ajout du support des motifs. Vous pouvez désormais spécifier un fichier contenant des motifs qui sont appliqués à chaque mot, un par ligne. Chaque occurrence du terme
{GOBUSTER} sera remplacée par l'élément actuel de la liste de mots. Veuillez utiliser avec précaution car cela peut considérablement augmenter le nombre de requêtes émises.
- Le drapeau court
p qui était assigné au proxy est désormais utilisé par le drapeau de motif
3.0
3.0
- Nouvelles options CLI pour que les modes soient strictement séparés (
-m a disparu !)
- Optimisations des performances et meilleure gestion des connexions
- Capacité à énumérer les noms d'hôtes virtuels
- Option pour fournir des en-têtes HTTP personnalisés