Gobuster Kullanımı
Gobuster ile yalnızca kendi web uygulamalarınızda dizin, dosya ve alt alan adı keşfi yapın; sonuçları güvenli şekilde yorumlayın ve gereksiz açık içerikleri kapatın.
1. Gobuster Nedir?
Gobuster, web sunucularında dizin ve dosya adlarını, DNS alt alan adlarını ve bazı sanal host yapılarını wordlist kullanarak keşfetmeye yarayan açık kaynaklı bir araçtır.
Web uygulaması envanteri çıkarma ve yanlışlıkla açık bırakılmış içerikleri belirleme çalışmalarında kullanılabilir.
Gobuster'ı yalnızca size ait sistemlerde veya açıkça izin verilmiş laboratuvar ortamlarında kullanın.
2. Gobuster Modları
| Mod | Açıklama |
|---|---|
| dir | Web dizinleri ve dosyaları için kelime listesi tabanlı keşif yapar. |
| dns | Alan adına ait alt alan adlarını wordlist ile kontrol eder. |
| vhost | Aynı IP üzerinde barındırılan sanal host adlarını test eder. |
| fuzz | Belirlenen FUZZ noktasında kontrollü içerik denemeleri yapar. |
Bu dokümanda ağırlıklı olarak güvenli laboratuvar için
dir ve kendi alan adınız için
dns modları ele alınır.
3. Kali Linux'ta Gobuster Kurulumu
Paket listesini güncelleyin:
sudo apt update
Gobuster paketini yükleyin:
sudo apt install gobuster -y
Sürüm bilgisini kontrol edin:
gobuster version
4. Yardım Ekranı
Genel yardım ekranı:
gobuster --help
Dir modu seçeneklerini görmek için:
gobuster dir --help
5. Wordlist Nedir?
Wordlist, Gobuster'ın test edeceği olası dizin, dosya veya alt alan adlarını içeren metin dosyasıdır.
Kali Linux'ta bazı listeler şu dizinlerde bulunabilir:
find /usr/share/wordlists -type f | head
İlk testlerde küçük bir wordlist kullanmak sunucuya gönderilen istek sayısını azaltır.
6. Küçük Laboratuvar Wordlist'i Oluşturma
Kendi yerel test uygulamanız için küçük bir wordlist oluşturabilirsiniz:
cat > lab-dizinleri.txt << 'EOF'
admin
docs
images
css
js
uploads
backup
test
EOF
Dosyayı kontrol edin:
cat lab-dizinleri.txt
7. Temel Dizin Keşfi
Yalnızca kendi yerel web sunucunuzda temel dir taraması:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt
8. Yerel Ağdaki Test Sunucusu
Size ait laboratuvar web sunucusu başka bir sanal makinedeyse:
gobuster dir -u http://192.168.56.101 -w lab-dizinleri.txt
9. Dosya Uzantılarını Kontrol Etme
Belirli dosya uzantılarını da denemek için
-x kullanılabilir:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt -x html,txt,php
Yalnızca uygulamanızda gerçekten kullanılan uzantıları seçin.
10. HTTPS Hedefi
Kendi HTTPS sitenizde:
gobuster dir -u https://alanadiniz.com -w lab-dizinleri.txt
11. HTTP Durum Kodlarını Yorumlama
| Kod | Anlamı |
|---|---|
| 200 | İçerik doğrudan erişilebilir. |
| 301 / 302 | Başka bir adrese yönlendirme vardır. |
| 401 | Kimlik doğrulama gerekir. |
| 403 | Sunucu isteği anladı ancak erişimi reddetti. |
| 404 | İçerik bulunamadı. |
| 500 | Sunucu tarafında hata oluştu. |
403 sonucu içeriğe yetkisiz erişim yapılabileceği anlamına gelmez; yalnızca yolun sunucu tarafından tanındığını gösterebilir.
12. Durum Kodlarını Filtreleme
Belirli durum kodlarını göstermek için:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt -s 200,204,301,302,307,401,403
13. Cevap Uzunluğunu Hariç Tutma
Uygulama her bilinmeyen yol için aynı özel sayfayı döndürüyorsa belirli içerik uzunluğu hariç tutulabilir:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt --exclude-length 1234
Hariç tutulacak uzunluğu yalnızca kendi uygulamanızdaki gerçek cevapları inceleyerek belirleyin.
14. Thread Sayısını Sınırlama
Sunucuyu gereksiz yükten korumak için paralel iş sayısını düşük tutun:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt -t 5
15. İstekler Arasına Gecikme Ekleme
Kontrollü laboratuvar taraması için gecikme eklenebilir:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt --delay 250ms
16. Özel User-Agent Kullanma
Loglarda taramayı kolay ayırt etmek için:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt -a "Kemal-Lab-Gobuster"
17. Sonuçları Dosyaya Kaydetme
Tarama çıktısını metin dosyasına kaydetmek için:
gobuster dir -u http://127.0.0.1 -w lab-dizinleri.txt -o gobuster-sonucu.txt
18. DNS Alt Alan Adı Keşfi
Yalnızca size ait alan adı için küçük bir alt alan adı listesi hazırlayın:
cat > lab-subdomains.txt << 'EOF'
www
docs
blog
mail
status
dev
EOF
DNS modu:
gobuster dns -d alanadiniz.com -w lab-subdomains.txt
19. VHost Modu
Aynı laboratuvar sunucusunda size ait sanal host adlarını kontrol etmek için:
gobuster vhost -u http://lab.example.local -w lab-subdomains.txt
Bu kullanım yalnızca kendi DNS ve web sunucusu yapılandırmanız için yapılmalıdır.
20. Sunucu Loglarını İzleme
Nginx erişim logu:
sudo tail -f /var/log/nginx/access.log
Özel User-Agent ile filtreleme:
sudo grep "Kemal-Lab-Gobuster" /var/log/nginx/access.log
21. Bulguları Yorumlama
| Bulgu | Savunma açısından kontrol |
|---|---|
| /admin | Yönetim paneli internete açık mı, MFA ve IP kısıtı var mı? |
| /backup | Yedek dosyalar web kökünde tutuluyor mu? |
| /uploads | Dosya yükleme izinleri ve içerik türleri güvenli mi? |
| /test | Test ortamı üretimde yanlışlıkla açık mı? |
| 403 dizin | Dizin gerçekten gerekli mi, erişim politikası doğru mu? |
22. curl ile Manuel Doğrulama
Kendi sunucunuzda bulunan bir yolu doğrulamak için:
curl -I http://127.0.0.1/docs
Yönlendirmeyi takip etmek için:
curl -I -L http://127.0.0.1/docs
23. Web Sunucusu Savunma Önlemleri
- Gereksiz dosya ve dizinleri kaldırın.
- Yedek dosyaları web kökü dışında saklayın.
- Yönetim panellerini VPN veya IP kısıtı arkasına alın.
- Dizin listelemeyi kapatın.
- Test ve geliştirme ortamlarını üretimden ayırın.
- Dosya yükleme dizinlerinde çalıştırma iznini kapatın.
- Güvenlik başlıklarını ve HTTPS'i etkinleştirin.
- Log ve alarm mekanizması kullanın.
24. Uygulamalı Güvenli Laboratuvar
- Kendi yerel web sunucunuzu başlatın.
- Küçük bir laboratuvar wordlist'i oluşturun.
- Gobuster dir taramasını düşük thread sayısıyla başlatın.
- Özel User-Agent kullanın.
- Sonuçları dosyaya kaydedin.
- Nginx veya Apache loglarını inceleyin.
- Bulunan yolları curl ile doğrulayın.
- Gereksiz içerikleri kaldırın veya erişimi sınırlandırın.
- Aynı taramayı yeniden çalıştırın.
- Önceki ve sonraki sonuçları karşılaştırın.
25. Sık Karşılaşılan Hatalar
gobuster komutu bulunamadı
sudo apt update
sudo apt install gobuster -y
Wordlist bulunamadı
Dosya yolunu ve okuma izinlerini kontrol edin:
ls -lh lab-dizinleri.txt
Wildcard response hatası
Sunucu bilinmeyen her yol için aynı cevabı dönüyor olabilir. Cevap kodu veya içerik uzunluğu filtrelerini dikkatle ayarlayın.
Çok fazla 403 sonucu
403 bulgularını erişim atlatma amacıyla kullanmayın; kendi sunucunuzda yapılandırma ve gereklilik açısından inceleyin.
26. Komut Özeti
| İşlem | Komut |
|---|---|
| Temel dir taraması |
gobuster dir -u http://127.0.0.1 -w
lab-dizinleri.txt
|
| Uzantı kontrolü | -x html,txt,php |
| Thread sınırı | -t 5 |
| Gecikme | --delay 250ms |
| Sonuç kaydetme |
-o gobuster-sonucu.txt
|
| DNS modu |
gobuster dns -d alanadiniz.com -w
lab-subdomains.txt
|
27. Sonuç
Bu dokümanda Gobuster kurulumu, dir ve dns modları, wordlist hazırlama, dosya uzantıları, durum kodları, thread ve gecikme ayarları, çıktı kaydetme ve bulguların manuel doğrulanması ele alındı.
Gobuster en güvenli şekilde, kendi web uygulamanızın içerik envanterini çıkarmak ve gereksiz açık dosya veya dizinleri kapatmak amacıyla kullanılmalıdır.