BLOG YAZILARIMIZ

November 30, 2020 / blog yazısı

Subdomain Takeover Zafiyeti

Subdomain Nedir?

Ana domaine bağlı fakat ayrı olarak, farklı bir içerik alanı için oluşturulmuş alt alan adlarıdır. Alan adı önüne getirilen eklerle belirlenen subdomainler, sayısız miktarda alınabilir.

Subdomainleri tespit edebilmek için oluşturulmuş pek çok araç vardır. Bunlardan birkaçına örnek olarak subfinder, sublist3r, assetfinder, amass gibi araçlar gösterilebilir. Daha fazla subdomain tespit edebilmek için araçları mümkün olduğunca bir arada kullanmak daha yararlıdır.

Yukarıda sayılan araçlar ve onlara ait tarama sonuçlarından birkaç örnek vermek gerekirse:

1.) Subfinder:

Pasif çevrimiçi kaynakları kullanarak geçerli subdomainleri tespit etmeye yarayan bir araçtır.

2.) Sublist3r:

Pythonla yazılmış bir program olan Sublist3r; Google, Yahoo, Bing, Baldu ve Ask gibi birçok arama motorunu kullanarak subdomainleri tespit eder. Ayrıca Netcraft, Virustotal, ThreatCrowd, DNSdumpster ve ReverseDNS de kullanır.

3.) Assetfinder:

Parametre olarak verilen domainle potansiyel olarak ilişkili domain ve subdomainleri tespit eder.

4.) Amass:

Bir OWASP projesi olan Amass, geniş bir yelpazede bilgi toplama teknikleri kullanarak tespit yapar.

Subdomain Takeover Nedir?

Belirli bir subdomain üzerinde yetkisi olmayan kişilerce tam yetki kontrolünün sağlanmasıdır. Bu kontrolü sağlayan bir saldırgan, ilgili subdomaine ait websitesine kendi dosyalarını yükleyebilir, kendi veritabanını oluşturabilir, network trafiğini görüntüleyebilir ve hatta sitenin aslına ait bir klon oluştup phishing tekniklerini kullanabilir.

Subdomain Takeover Hangi Durumlarda Söz Konusu Olabilir?

1.)Bir subdomain kaydı mevcut olmasına rağmen sayfanın herhangi bir nedenden dolayı aktif olarak kullanımda olmadığı durumlarda mümkün olabilir. Subdomain takeover zafiyeti, önceden oluşturulmuş bir subdomaine ait sitenin kurulmasının unutulmuş olmasından oluşabileceği gibi kullanım dışı/gereksiz subdomainlerin zamanında silinmesinin unutulmasından da kaynaklanabilir. Bunun yanında, zamanı dolmuş servisler tekrar aktive edilmemişse, yine subdomain takeover zafiyeti mümkündür.

2.)DNS kayıtlarının ya da sunucunun yanlış yapılandırılması, subdomain takeover zafiyetinin en yaygın nedenlerinden biridir. Özellikle birden fazla aşamalı subdomainlerde görülme olasılığı daha fazladır.

3.)Üçüncü parti sağlayıcıların (GitHub, WordPress, AWS, Heroku gibi) da aktif olarak kullanımda olmayan servisleri açık tutması saldırganın subdomain üzerinde kontrol sağlayabilmesine neden olmaktadır. Saldırgan bu servisler üzerinde web sayfası kurabilir.

Subdomain takeover zafiyeti muhtemel olduğunda site tarafından verilebilecek bazı hata türlerinin derlendiği bir GitHub sayfası:

https://github.com/EdOverflow/can-i-take-over-xyz

Zafiyetli Subdomainler Manuel Olarak Nasıl Tespit Edilir?

Subdomain Takeover zafiyetinin tespiti sözkonusu olduğunda öncelikle iki unsura dikkat edilmelidir:

  1. Web sayfasının görüntüsü önemlidir. Sayfada görebileceğimiz bazı belirli hata türleri (yukarıda bunların derlendiği bir link verilmişti) subdomainin mevcut olduğu fakat içerik sunulmadığını gösterir.

  2. DNS kayıt bilgileri önemlidir. Hangi sağlayıcıya yönlendirildiğimiz, hangi takeover yolunun tercih edileceğini belirlemede yardımcı olur.

Eğer bir subdomainden şüpheleniliyorsa, “host” komutu kullanılarak bir inceleme yapılabilir. Örnek vermek gerekirse “help.yandex.com” için host komutunu çalıştırdığımızda:

“bir diğer adıyla” anlamına gelen “alias” ifadesini görüyoruz. Teorik olarak bu ifade takeoverın uygulanabilir olduğu şeklinde yorumlanabilir. Ancak aktif bir subdomain söz konusuysa takeoverın uygulanması mümkün olmayacaktır. Subdomain kullanımda olmamalı ve bu durumu gösteren, sağlayıcıya özgü bir hata sayfası döndürüyor olmalıdır. Verilen help.yandex.com örneğinde de aktif bir subdomain söz konusu olduğundan takeover mümkün değildir.

Aquatone: Subdomain Takeover Zafiyetinin Mevcudiyetini Tespit Edebilen Bir Araç

Aquatone adlı araç, subdomaiin takeover zafiyetinin varlığının kolaylıkla tespit edilebilmesi konusunda oldukça yardımcı bir araç olarak karşımıza çıkmaktadır.

Araç, hem tek tek subdomainleri bulabilmekte hem de ilgili sitede zafiyetin mevcut olup olmadığını tespit etmektedir. Subdomainleri “aquatone-discover -d host.com” komutuyla bulurken, zafiyeti “aquatone-takeover -d host.com” komutuyla araştırmaktadır. Bu keşif aşamasından sonra sonuçları hem .txt hem de .json formatında kaydetmektedir.

Aquatone ayrıca “aquatone-scan” aracıyla açık portları tarayıp; “aquatone-gather” aracıyla da hazırlayacağı rapor için, aquatone-discover ve aquatone-scan aracılığıyla edindiği sayfalardan ekran görüntüsü toplamaktadır.

Tüm subdomainleri manuel olarak kontrol etmek yerine, aquatone gibi bir aracın kullanımı işi kolaylaştırabilir. Basit bir subdomain takeover zafiyet araştırması için aquatone-discover ve aquatone-takeover araçlarını sırasıyla kullanabiliriz.

Örnek olarak hackerone.com domainini kullandığımızda bir aquatone-discover tarama sonucu şu şekilde görünmektedir:

Bulunan her bir subdomainde zafiyetin olup olmadığını tespit etmek içinse aquatone-takeover aracını kullanabiliriz:

Yine “hackerone.com” domaini için aquatone-takeover tarama sonucu:

Subdomain Takeover Zafiyetinden Nasıl Korunuruz?

Bir domain sahibi olarak öncelikle:

1.)Aktif olan ama kullanımda olmayan bütün DNS girdilerinin silinmesi gerekmektedir. DNS bölge dosyasından CNAME kayıtları silinmelidir.

2.)Yeni bir kaynak oluşturuluyorsa, DNS kaydı oluşturma en son aşama olmalıdır.

3.)Fazladan bir kayıt olup olmadığına dair DNS girdileri sürekli olarak kontrol altında tutulmalıdır.


Deniz SAGULAR


YORUMLAR

  • YORUM