Gobuster: Web sayfalarında dizin ve dosya arama

Bir web uygulaması sızma testi yapacak ya da zafiyet istismarı için çalışılacaksa ilk yapılması gereken ilgili uygulama hakkında olabildiğince fazla bilgi toplamaktır. Toplanan bilgiler ışığında saldırıların planlanması, hata ve boş yere zaman kaybından kurtulmanın bilinen en iyi yoludur.

Bu bilgi toplama aşamasında kullanılabilecek pek çok araç mevcut, örneğin daha önce URLBUSTER aracı hakkında bir yazı yayınlamıştık. Gobuster da bu araçlardan biri olmakla birlikte kendisini benzeri araçlardan ayrılan birçok iyi özelliği bulunuyor.

Gobuster, Go dilinde yazılmış bir dizin tarayıcı. Dirbuster ve Dirb gibi geleneksel kaba-kuvvet (brute-force) tarama araçlarından daha hızlı çalışmak ve daha az hata vermek gibi iki iyi ve önemli özelliği öne çıkıyor. Gobuster için diğerlerinin geliştirilmiş hali diyebiliriz.

En önemli avantajı Go dilini kullanmasından kaynaklanan ekstra bir hız sağlaması.

Bir de dezavantajlarına bakalım dersek, recursive yani yinelemeli dizin arama eksiğini görüyoruz. İlk seviye altındaki (birden fazla düzey derinliği bulunan) dizinler için ikinci bir tarama aracı kullanmak gerekiyor.

Gobuster kolay bir komut satırı arayüzü ile kullanılıyor. Araç kullanımı için birçok faydalı opsiyon sunulmuş, bu opsiyonları aşağıda incelemeye çalışacağız.

GOBUSTER NASIL YÜKLENİR?

Gobuster, Kali’de yüklü gelmediği için manuel olarak yüklenmesi gerekiyor.

İlk olarak bir çalışma dizini yaratarak yükleme işlemlerine başlayabiliriz:

mkdir gobuster
cd gobuster/

Mkdir komutu ile gobuster dizinini oluşturup, cd komutu ile bu dizinin içerisine girdikten sonra yükleme işlemine başlayabiliriz:

apt-get install gobuster

Yükleme tamamlandıktan sonra komut satırına gobuster yazarak aracı çalıştırabiliriz:

gobuster start

Yukarıdaki resimde görüldüğü gibi gobuster yazıp enter tuşuna bastığımızda aracın farklı kullanım opsiyonlarını da inceleyebiliyoruz. Aynı sonuç için -h (help) flag de kullanılabilir.

WORDLIST KULLANIMI

Gobuster ile birlikte, benzeri dizin tarama araçlarında olduğu gibi, wordlist yani önceden hazırlanmış kelime listeleri kullanmak gerekiyor.

Bu kelime listeleri Kali’de /usr/share/wordlists dizini altında yer alıyor.

gobuster wordlist

Bu dizin altında gördüğünüz tüm kelime listeleri standart olarak Kali ile birlikte gelmiyor ancak ihtiyaca göre internet üzerinden bulup indirmek mümkün.

Genellikle dirb ve dirbuster altında yer alan listeler yeterli olmakla birlikte https://github.com/danielmiessler/SecLists linkinde yer alan wordlistlerin de elinizin altında bulunmasını öneriyoruz.

Üstte yer alan resimde görebileceğiniz gibi SecLists içerisinde Discovery, Fuzzing, Passwords, Payloads, Usernames, Web-Shells gibi klasörler altında çok sayıda işe yarar liste bulunuyor.

SecLists/Discovery/Web-Content/ altında yer alan “common.txt” wordlist ise bilinen çok sayıda dizin ismini barındırdığı için en sık kullanacağımız liste oluyor.

Bu wordlistlerin tümü ya da bir kısmının indirilmesi için yapılması gerekenlere yukarıda verilen ilgili github linkinden erişilebilir.

GOBUSTER İLE DOSYA VE DİZİN TARAMA NASIL YAPILIR?

Aşağıdaki komutu kullanarak kendi sistemimde bir tarama yapacağım:

gobuster dir -u http://192.168.1.17 -w /usr/share/wordlists/seclists/SecLists-master/Discovery/Web-Content/common.txt

dir flag ile bir dizin taraması yapacağımı,

-u flag ile tarama yapılmasını istediğim URL’yi,

-w flag ile de kullanılmasını istediğim wordlist’i belirtiyorum.

Görülebileceği gibi “Status Code” bilgisi ile birlikte dosya ebatları hakkında da bilgi toplayabildim. Bu bilgi özellikle büyük web sitelerinde fazla sayıda dizin bilgisi alındığında “0 byte” olarak görülen dizinleri ayıklamak için faydalı olacaktır.

-o bir başka faydalı flag ve sonuçları istediğimiz bir dosyaya kaydetmek için belirteceğimiz bir dosya adı ile birlikte kullanabiliyoruz.

gobuster dir -u http://192.168.1.17 -w /usr/share/wordlists/seclists/SecLists-master/Discovery/Web-Content/common.txt -o results

Edindiğimiz bilgilere yeniden erişmemiz gerektiğinde cat results komutu ile sonuçları tekrar görüntüleyebiliyoruz:

gobuster results

SONUÇ

Gobuster, sadece dizin değil dns, fuzzing,  vhost (virtual host) bilgi toplama ve çeşitli servislerin versiyon bilgilerine erişme gibi amaçlarla da kullanılabilen, hızlı ve kolay kullanımlı bir araçtır.

Başa dön