Gobuster
Gobuster ist ein Directory/File-Brute-Force Tool, das schnell versteckte Subdomänen, Verzeichnisse und Dateien auf Webservern findet. Es ist in Go geschrieben und nutzt Multi-Threading, was es deutlich schneller macht als viele andere Tools.
Das Tool kann verschiedene Modi:
- dir: Directory/File-Brute-Force
- dns: DNS-Subdomain-Brute-Force
- vhost: Virtual Host-Brute-Force
- fuzz: Fuzzing-Modus
Installation
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install gobuster
macOS
# Mit Homebrew
brew install gobuster
# Mit MacPorts
sudo port install gobuster
Mit Go installieren (plattformübergreifend)
go install github.com/OJ/gobuster/v3@latest
Grundlegende Verwendung
Directory Brute-Force
gobuster dir -u http://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Die wichtigsten Parameter:
-u: Target URL-w: Wordlist-Datei-t: Anzahl Threads (default: 10)-x: File-Extensions (z.B. php,txt,html)-s: Status Codes zum Anzeigen-k: SSL-Zertifikat ignorieren
Beispiel mit Extensions
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt -x php,html,txt -t 20
Praktische Beispiele
Standard Web-Scan
gobuster dir -u http://10.10.10.10 \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,html,txt,jsp,aspx \
-t 30 \
-s 200,204,301,302,307,401,403
Parameter erklärt:
-u http://10.10.10.10: Die Ziel-URL die gescannt werden soll-w /usr/share/...: Pfad zur Wordlist mit Directory-Namen-x php,html,txt,jsp,aspx: File-Extensions die angehängt werden (testet z. B. admin.php, admin.html)-t 30: 30 gleichzeitige Threads für Speed-s 200,204,301,302,307,401,403: Zeige nur diese HTTP Status Codes an (filtert 404s raus)
Mit Custom Headers
gobuster dir -u http://target.com \
-w /usr/share/wordlists/dirb/common.txt \
-H "User-Agent: Mozilla/5.0..." \
-H "Authorization: Bearer token123"
Parameter erklärt:
-H "User-Agent: ...": Setzt einen Custom User-Agent (um wie ein echter Browser auszusehen)-H "Authorization: ...": Fügt Authorization Header hinzu (für authenticated Bereiche)- Du kannst mehrere
-HParameter verwenden für verschiedene Headers
Subdomain Enumeration
gobuster dns -d example.com -w /usr/share/wordlists/dnsrecon/subdomains-top1mil-5000.txt
Parameter erklärt:
dns: Modus für DNS-Subdomain-Brute-Force-d example.com: Die Domain, für die Subdomains gesucht werden-w: Wordlist mit möglichen Subdomain-Namen (admin, mail, dev, etc.)
Virtual Host Discovery
gobuster vhost -u http://target.com -w /usr/share/wordlists/dirb/common.txt
Parameter erklärt:
vhost: Modus für Virtual Host Discovery-u http://target.com: Target URL als Basis-w: Wordlist mit Virtual Host Namen- Testet z. B. admin.target.com, dev.target.com über den Host-Header
Wordlists
Für Directories
# Klein und schnell
/usr/share/wordlists/dirb/common.txt
# Mittelgroß, gute Balance
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# Groß, für gründliche Scans
/usr/share/wordlists/dirbuster/directory-list-2.3-big.txt
# SecLists (muss separat installiert werden)
/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
Für Subdomains
/usr/share/wordlists/dnsrecon/subdomains-top1mil-5000.txt
/usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt
Tipps und Tricks
1. Output speichern
gobuster dir -u http://target.com -w wordlist.txt -o output.txt
2. Mehrere Extensions gleichzeitig
gobuster dir -u http://target.com -w wordlist.txt -x php,asp,aspx,jsp,html,txt,pdf,zip
3. Proxy verwenden (für Burp Suite)
gobuster dir -u http://target.com -w wordlist.txt --proxy http://127.0.0.1:8080
4. Timeout anpassen
gobuster dir -u http://target.com -w wordlist.txt --timeout 30s
5. Bestimmte Status Codes ausschließen
gobuster dir -u http://target.com -w wordlist.txt -b 404,403
Erweiterte Techniken
Recursive Scanning
gobuster dir -u http://target.com -w wordlist.txt -r
Gobuster scannt nicht nur die Hauptebene, sondern auch alle gefundenen Subdirectories automatisch weiter. Wenn es /admin/ findet, scannt es auch /admin/backup/, /admin/config/ usw.
Pattern-based Fuzzing
gobuster fuzz -u http://target.com/FUZZ -w wordlist.txt
Das Wort „FUZZ“ wird durch jedes Wort aus der Wordlist ersetzt. Du kannst mehrere FUZZ-Marker setzen: http://target.com/FUZZ/admin/FUZZ.php. Nützlich für komplexere URL-Strukturen.
Mit Cookies
gobuster dir -u http://target.com -w wordlist.txt -c "sessionid=abc123"
Gobuster sendet bei jedem Request die angegebenen Cookies mit. Das ist wichtig, wenn du authenticated Bereiche scannen willst oder wenn die Webseite Session-basiert funktioniert.
Multiple FUZZ-Marker
gobuster fuzz -u http://target.com/FUZZDIR/FUZZFILE.php -w wordlist.txt
Jedes Wort aus der Wordlist wird für beide FUZZ-Marker verwendet. Das erstellt Kombinationen wie /admin/admin.php, /backup/backup.php usw.
Performance-Tuning
Gobuster ist schnell, aber du kannst es noch optimieren:
# Mehr Threads (aber vorsichtig mit dem Target)
gobuster dir -u http://target.com -w wordlist.txt -t 50
# Kleinere Wordlists für schnelle Scans
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/small.txt
# Timeout reduzieren
gobuster dir -u http://target.com -w wordlist.txt --timeout 10s
Standard-Befehle
Hier sind die Befehle, die häufig verwendet werden:
# Quick Scan
gobuster dir -u $TARGET -w /usr/share/wordlists/dirb/common.txt -x php,html,txt
# Detailed Scan
gobuster dir -u $TARGET -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,asp,aspx,jsp,html,txt,pdf,zip -t 30 -s 200,204,301,302,307,401,403 -o gobuster_results.txt
# Subdomain Scan
gobuster dns -d $DOMAIN -w /usr/share/wordlists/dnsrecon/subdomains-top1mil-5000.txt -t 30
Legale Hinweise
Gobuster darf nur auf Systemen eingesetzt werden, die im eigenen Besitz sind oder für die eine ausdrückliche Genehmigung des Eigentümers vorliegt.
Fazit
Gobuster ist ein solides Tool für Directory-Brute-Force-Attacks. Es ist schnell, einfach zu bedienen und macht seinen Job gut 🥳.