Dirsearch Kullanımı
Dirsearch ile yalnızca kendi web uygulamalarınızda dizin ve dosya keşfi yapın, çıktıları filtreleyin, raporlayın ve gereksiz açık içerikleri savunma odaklı kapatın.
1. Dirsearch Nedir?
Dirsearch, web sunucularında dizin ve dosya adlarını wordlist tabanlı olarak keşfetmek için kullanılan açık kaynaklı bir araçtır.
Python ile geliştirilmiştir ve durum kodu, uzantı, thread, gecikme ve özel header gibi ayrıntılı seçenekler sunar.
Dirsearch'ü yalnızca size ait sistemlerde veya açıkça izin verilmiş laboratuvar ortamlarında kullanın.
2. Dirsearch ve Gobuster Farkı
| Özellik | Dirsearch | Gobuster |
|---|---|---|
| Dil | Python | Go |
| Temel amaç | Dizin ve dosya keşfi | Dizin, DNS ve VHost keşfi |
| Uzantı yönetimi | Gelişmiş | Temel |
| Rapor formatları | Birden fazla seçenek | Metin çıktısı ağırlıklı |
| Performans | Esnek ve ayrıntılı | Genellikle daha hızlı |
3. Kali Linux Paket Kurulumu
Paket listesini güncelleyin:
sudo apt update
Dirsearch paketini yükleyin:
sudo apt install dirsearch -y
Kurulumu kontrol edin:
dirsearch --help
4. Git Üzerinden Kurulum
Paket sürümü bulunmuyorsa veya güncel kaynak kod kullanılacaksa:
sudo apt install git python3 python3-venv -y
git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
Sanal ortam oluşturun:
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
Yardım ekranı:
python3 dirsearch.py --help
5. Yardım Ekranı
Paket kurulumu kullanıyorsanız:
dirsearch --help
Git kurulumu kullanıyorsanız:
python3 dirsearch.py --help
6. Güvenli Laboratuvar Hazırlığı
- Yalnızca kendi web sunucunuzu kullanın.
- Mümkünse Host-only veya Internal Network kullanın.
- Tarama öncesinde snapshot veya yedek alın.
- Küçük bir wordlist ile başlayın.
- Thread sayısını düşük tutun.
- Sunucu loglarını izleyin.
7. Küçük Laboratuvar Wordlist'i
Kendi test uygulamanız için küçük liste oluşturun:
cat > dirsearch-lab.txt << 'EOF'
admin
docs
images
css
js
uploads
backup
test
api
EOF
Dosyayı kontrol edin:
cat dirsearch-lab.txt
8. Temel Dizin Taraması
Yalnızca kendi yerel web sunucunuz için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt
9. Yerel Ağdaki Test Sunucusu
Size ait başka bir sanal makinede çalışan web sunucusu için:
dirsearch -u http://192.168.56.101 -w dirsearch-lab.txt
10. Dosya Uzantılarını Belirtme
Belirli uzantıları kontrol etmek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -e html,txt,php,json
Yalnızca uygulamanızda kullanılan uzantıları seçin.
11. HTTPS Sitesini Tarama
Kendi HTTPS siteniz için:
dirsearch -u https://alanadiniz.com -w dirsearch-lab.txt
12. HTTP Durum Kodlarını Yorumlama
| Kod | Anlamı |
|---|---|
| 200 | İçerik doğrudan erişilebilir. |
| 301 / 302 | Yönlendirme bulunur. |
| 401 | Kimlik doğrulama gerekir. |
| 403 | Erişim reddedilmiştir. |
| 404 | İçerik bulunamamıştır. |
| 500 | Sunucu tarafında hata oluşmuştur. |
13. Gösterilecek Durum Kodları
Yalnızca belirli durum kodlarını göstermek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -i 200,204,301,302,307,401,403
14. Hariç Tutulacak Durum Kodları
Örneğin 404 cevaplarını gizlemek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -x 404
15. Cevap Boyutunu Hariç Tutma
Uygulama her bilinmeyen yol için aynı özel hata sayfasını dönüyorsa:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --exclude-sizes 1234
Boyutu kendi laboratuvar cevabınızı inceleyerek belirleyin.
16. Thread Sayısını Sınırlama
Sunucuya aşırı yük bindirmemek için düşük thread değeri kullanın:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -t 5
17. İstekler Arasına Gecikme Ekleme
Kontrollü laboratuvar taraması için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --delay 0.25
18. Timeout Ayarı
Yavaş laboratuvar sunucusunda zaman aşımı süresi belirlemek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --timeout 10
19. Özel User-Agent
Loglarda taramayı kolay tanımak için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --user-agent "Kemal-Lab-Dirsearch"
20. Özel Header Kullanımı
Kendi laboratuvar uygulamanız özel bir header bekliyorsa:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -H "X-Lab-Test: Kemal"
Gerçek kimlik doğrulama tokenlarını komut satırında veya ekran görüntülerinde paylaşmayın.
21. Recursive Tarama
Bulunan dizinlerin altını da kontrol etmek için recursive tarama kullanılabilir:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt -r
Recursive tarama daha fazla istek üretir. Küçük wordlist ve düşük thread değeriyle kullanın.
22. Sonuçları Dosyaya Kaydetme
Metin raporu oluşturmak için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --plain-text-report dirsearch-raporu.txt
23. JSON Raporu Kaydetme
Sonuçları programatik olarak işlemek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --json-report dirsearch-raporu.json
24. CSV Raporu Kaydetme
Tablo olarak incelemek için:
dirsearch -u http://127.0.0.1 -w dirsearch-lab.txt --csv-report dirsearch-raporu.csv
25. Sunucu Loglarını İzleme
Nginx loglarını izlemek için:
sudo tail -f /var/log/nginx/access.log
Özel User-Agent ile filtrelemek için:
sudo grep "Kemal-Lab-Dirsearch" /var/log/nginx/access.log
26. Bulguları Yorumlama
| Bulgu | Savunma kontrolü |
|---|---|
| /admin | Yönetim paneli IP veya VPN ile sınırlandırılmış mı? |
| /backup | Yedekler web kökü dışında mı tutuluyor? |
| /uploads | Dosya yükleme dizininde çalıştırma engellenmiş mi? |
| /api | Kimlik doğrulama ve rate limiting uygulanmış mı? |
| /test | Test ortamı üretimde açık mı? |
27. curl ile Manuel Doğrulama
Kendi web sunucunuzdaki 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
28. Web Sunucusu Savunma Önlemleri
- Gereksiz dosya ve dizinleri kaldırın.
- Yedekleri web kökü dışında saklayın.
- Dizin listelemeyi kapatın.
- Yönetim panellerini VPN veya IP kısıtı arkasına alın.
- Test ortamlarını üretimden ayırın.
- Dosya yükleme dizinlerinde script çalıştırmayı engelleyin.
- HTTPS ve güvenlik başlıklarını etkinleştirin.
- Log ve alarm mekanizması kullanın.
29. Uygulamalı Güvenli Laboratuvar
- Kendi yerel web sunucunuzu başlatın.
- Küçük laboratuvar wordlist'i oluşturun.
- Dirsearch taramasını 5 thread ile başlatın.
- İstekler arasına gecikme ekleyin.
- Özel User-Agent kullanın.
- Sonuçları JSON veya metin raporuna kaydedin.
- Nginx veya Apache loglarını inceleyin.
- Bulunan yolları curl ile doğrulayın.
- Gereksiz içerikleri kaldırın veya sınırlandırın.
- Taramayı tekrar çalıştırıp raporları karşılaştırın.
30. Sık Karşılaşılan Hatalar
dirsearch komutu bulunamadı
sudo apt update
sudo apt install dirsearch -y
Wordlist bulunamadı
ls -lh dirsearch-lab.txt
Çok fazla aynı sonuç
Özel 404 sayfasının durum kodunu ve cevap boyutunu kontrol edin. Gerekirse durum kodu veya boyut filtresi kullanın.
Sunucu yavaşlıyor
Thread sayısını düşürün, gecikme ekleyin ve küçük wordlist kullanın.
31. Komut Özeti
| İşlem | Komut |
|---|---|
| Temel tarama |
dirsearch -u http://127.0.0.1 -w
dirsearch-lab.txt
|
| Uzantı seçme |
-e html,txt,php,json
|
| Thread sınırı | -t 5 |
| Gecikme | --delay 0.25 |
| Recursive | -r |
| Metin raporu |
--plain-text-report rapor.txt
|
| JSON raporu |
--json-report rapor.json
|
32. Sonuç
Bu dokümanda Dirsearch kurulumu, temel dizin ve dosya keşfi, uzantı ve durum kodu filtreleri, thread, gecikme, özel header, recursive tarama, raporlama ve bulguların manuel doğrulanması ele alındı.
Dirsearch 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.