Sublist3r
Last updated
Last updated
Sublist3r, OSINT kullanarak web sitelerinin alt alan adlarını sıralamak için tasarlanmış bir Python aracıdır. Penetrasyon testçilerine ve hata avcılarına, hedefledikleri alan adı için alt alan adlarını sıralama ve toplama konusunda yardımcı olur. Google, Yahoo, Bing, Baidu ve Ask gibi birçok arama motorunu kullanarak alt alan adlarını toplar. Ayrıca Sublist3r(PassiveDNS), Netcraft, Virustotal, ThreatCrowd, DNSdumpster, CrtSearch ve araçlarını kullanarak da alt alan adlarını sıralar.
Subbrute aracı Sublist3r ile entegre edilerek, daha gelişmiş bir kelime listesiyle brute force kullanarak daha fazla alt alan adı bulma olasılığını artırmak için Sublist3r aracının içerisinde kullanılıyor.
Subdomain alan adınızın altına oluşturabildiğiniz fakat birincil alan adınızdan bağımsız bir şekilde çalışabilen alan adı özelliğidir. Birincil alan adından önce gelecek şekilde birlikte yazılırlar. Özetle bir web sitesindeki farklı içerik alanları için oluşturulan web adreslerinden oluşur.
Bir hedefi değerlendirirken, subdomainler genellikle geniş bir yüzey sunar. Ana domainin ötesinde, farklı servisler, uygulamalar veya sistemler subdomainler aracılığıyla erişilebilir olabilir. Bu da saldırı yüzeyini genişletir ve potansiyel zayıf noktaları ortaya çıkarabilir.
Sublist3r, bazı popüler arama motorlarından faydalanarak subdomainleri toplar. Bu işlemi yapmak için tarayıcıların Search Engine Dork dediğimiz kavramından faydalanıyor. Search Engine Dork dediğimiz kavram arama motorlarının filtrelenmiş aramalar yapılmasına yardımcı olacak sorgu kalıplarıdır.
Örnek olarak Yahoo arama motorundan alt alan adlarını nasıl çıkardığını inceleyelim:
Satır 326: YahooEnum sınıfına ait base_url değişkenine Yahoo arama motoruna ait search uç noktasına yapılan ve bazı parametreleri içeren bir istek daha sonra formatlanmak üzere yazılmıştır.
Satır 366 ve Satır 370: Bu satırlarda bir search engine dork formatlanacak şekilde tanımlanmıştır. Formatlandıktan sonra satır 326 da tanımladığımız base_url değişkenimizin içeriğindeki {query} ile seçilmiş olan kısıma yazılma işlemi gerçekleşecektir.
Satır 334-356: Bu blokta yazılmış olan fonksiyonun yaptığı işlem Yahoo arama motoruna yaptığımız istekten dönen yanıtı işlemektir. Response üzerinden regex kütüphanesinden faydalanılarak domainler çıkartılmaktadır.
Bu şekilde doğrudan bir web scrapping kütüphanesi kullanılmadan search engine dorks kullanılarak yapılan isteğin cevabından domainler regex yardımı ile ayrıştırılmaktadır. Araç burada doğrudan alt alan adlarını ayrıştırmıyor birincil domain ve top level domain kısımlarını da dahil ediyor.
Diğer tüm arama motorları içinde temel olarak aynı yaklaşım izlenmiştir. Doğal olarak base_url değişkenleri ve düzenli ifadeler üzerinde değişiklikler yapılmıştır.
Sublist3r arama motorları dışında yazımızın başında bahsetmiş olduğumuz bazı araçlardan yardım alıyor. Subdomain keşfi için yardımcı araçların servislerinden doğrudan veya dolaylı olarak faydalandığını söyleyebiliriz. Asıl veya yan amacı subdomain keşfi olmayan araçlarında sublist3r aracının kullandığı araçlara dahil olduğunu görüyoruz bunun nedeni ise bu araçlar dolaylı olarak alt alan adı sağlamakta.
Asıl amacı ilgili domaine ait güncel veya geçmiş SSL/TLS sertifikaları hakkında bilgi sunmak olan crt.sh üzerinden örnek verecek olursak:
Satır 768: Aracın diğer sınıflarında da olduğu gibi istek yapılacak olan uygulamanın adresi base_url değişkeninde sorgumuzla birlikte formatlanmak üzere tutuluyor.
Sonrasında ise bir istek yapılıyor ve response üzerinden regex yardımı ile domainler ayrıştırılıyor.
Görselde gözüktüğü üzere books, docs ve www alt alan adlarına güncel olarak sahip olabileceği bilgisine bu araç sayesinde erişebildik.
Sublist3r aracı pasif tarama işlemlerini bu yöntemlerle gerçekleştiriyor. Kullanıcının isteğine bağlı olarak yazımızın başında da bahsettiğimiz gibi ilgili hedefle doğrudan etkileşime girecek şekilde brute force kullanabiliyor.
Sublister aracını edindikten sonra kullanımı aşağıdaki anlatıldığı gibi yapılabilir.
-d parametresi ile listelenmesi istediğimiz Alan adını (hedef) belirtiyoruz.
-b parametresi ile subbrute aracından sağlanan brute force modülünü aktif ediyoruz.
-p parametresi ile bulunan alt alan adlarından sadece belirtilen TCP portları açık olan alt alan adlarını döndürür.
-v parametresi ile araç çalışırken ekrana ekstra anlamlı (detaylı) çıktılar basar.
-t parametresi ile aracın brute force modu açıkken ne kadar thread kullanacağını belirtiriz.
-e parametresi ile arama yaparken kullanılmasını istediğimiz servisleri beliriyoruz. Sadece arama motorlarını kastetmiyor crt.sh ve Virustotal uygulamaları da bu belirtmeye dahildir.
-o parametrei ile çıktımızı bir dosyaya kayıt eder.
-h parametresi ile ekrana yardım mesajını basar.
Görselin en alt kısmında 3 tane subdomain keşfini görüyoruz.
-p parametresi ile yapılmış bir örnek sonucunda ilgili domaine ait 2 tane subdomainin aktif web servisi olduğunu düşünüyoruz.
-e parametresi ile sadece google, yahoo ve crt.sh uygulamaları üzerinden subdomain keşfi yaptık.
-o parametresi ile belirttiğimiz dosyaya aracın çıktısını yazdırdık.