Subdomain Takeover Açığı (Saldırı)

S

Shiva

Veteran
Joined
Jul 31, 2019
Messages
4,067
Reaction score
13,322
Location
Berlin
SENARYOLAR
Saldırgan bulunan bu zafiyetten nasıl yararlanabilir? Saldırı senaryolarını tartışalım ve çözüm üretelim.

SALDIRI SENARYOLARI
Teknik bilgi birikimi olmadan da subdomain takeover zafiyetinin tespit edilebileceğinden bahsetmiştik. Yalnız zafiyetin
exploiting yani sömürme aşamasında uygulayacağımız teknikler daha hassas verilerin ifşa edilmesine yol açarak zafiyetin riskini arttıracaktır.
Temelde subdomain takeover zafiyeti «Stored XSS» açıklığı olarak düşünülse de aslında bundan çok daha fazlasıdır.
Stored XSS olarak exploit edilebildiği gibi subdomain’lerin kimi zaman entegre kullanılması ve internet sitelerinin birbirleriyle bağlantı içerisinde çalışması bu zafiyeti çok daha riskli bir hale getirmektedir.
Saldırgan hedef adres üzerinde yetki elde ettikten sonra kullanıcı hesaplarının ele geçirilmesi, ziyaretçilerin
cihazlarının hack’lenmesi ve hassas veri ifşası gibi etkiler üzerine yoğunlaşarak birbirine alternatif saldırı senaryoları üretecektir.
Bu bölümde « saldırgan olsaydı ne yapardı? » sorusuna cevap arayacağız. Saldırgan gibi düşünüp nasıl farklı yollarla kullanıcılara zarar verilebilir ve bunlardan nasıl korunabiliriz konusunu tartışacağız.

1. SENARYO
AYNALAMA TEKNİĞİ

Bu senaryoda saldırgan diğer subdomain’lerin veya domain’in tasarımını klonlar. Saldırganlar tarafından ele geçirilmiş
subdomain’i ziyaret edenler sayfanın ele geçirilmiş olduğunu anlayamayacak ve orijinal olduğunu zannederek hassas
verilerin girişini yapacaklar. Hassas verilere kullanıcı ve yöneticilerin şifreleri, kredi kartı bilgileri, telefon numaraları
örnek verilebilir.
Bu örneği daha iyi anlatmak için Microsoft örneğinden yola çıkacağım.Bu senaryoların birinde saldırganın Microsoft’un giriş yapma sayfasını klonlayıp kullanıcıların şifrelerini nasıl ele geçirebileceğini görelim.
Kod:​
Kullandığım kodlar: https://controlc.com/97dc47cf & https://controlc.com/e04bcae9
2. SENARYO
KUZU POSTUNDAKİ KURT

Kuzu POST’una bürünmüş kurt diyince aklımıza gelmesi gereken iki nokta var: POST (request olan ) ve saldırganın kendisini yetkili gibi tanıtarak sergileyeceği ofansif tutum.
CSP (Content Security Policy) ve CORS (Cross-Origin Resource Sharing) mekanizmalarını duymuşsunuzdur. Bu mekanizmalar tarayıcı ve sunucu arasındaki isteklerimize birtakım kısıtlamalar getiriyor.
CSP: Genellikle enjeksiyon saldırılarını önlemek için oluşturulan ve zararlı amaç güden isteklerin client tabanlı engellenmesini sağlayan bir mekanizmadır.
CORS: İnternet adresine yapılan isteklerin kaynak bazlı filtrelenmesini sağlayan bir mekanizmadır. Basit şekilde özetlemek gerekirse: kullanıcı sitede XSS, CSRF, Clickjacking tarzı bir güvenlik açığı bulduğunda bu mekanizmaların kullanılması saldırının bir miktar önüne geçebilir. İsteklerden bahsetmişken yalnızca POST metodunu düşünmemek gerek, diğer metodlar için de aynı önlemler uygulanabilir. Peki ya saldırgan subdomain takeover zafiyeti keşfettiyse? Yanlış yapılandırıldığı takdirde bu mekanizmaları atlatabilir. Bu ihtimallerden korunmak için mekanizmaları doğru şekilde yapılandırmalı ve beyaz listemizi olabildiğince limitli tutmalıyız.

Tanımlanan örnek bir CSP istek başlığında şöyle görünür:
! • Content-Security-Policy: script-src 'self’ *.hedefadres.com
Bu şu anlama gelmektedir: hedefadres.com ve subdomain’lerine ait olmayan kaynaklardan komut dosyası çalıştırma!
Bunu deneyen saldırgan aşağıdaki gibi bir hata kaydıyla karşılaşacaktır:
XIf3ER.png

Fakat saldırgan subdomain takeover sonucu ele geçirmiş olduğu xxx.hedefadres.com üzerinden komut çalıştırabilir, çünkü
CSP başlığında bütün subdomain’lere izin verilmiş. Aynı teknik CORS veya referer doğrulamasını atlatmak için de geçerlidir.
İpucu: Birçok adres googleapis.com’u beyaz listeye eklemektedir, CSP bypass için şu payload çok işinize yarayacak:
Kod:​
• <script src="https://www.googleapis.com/customsearch/v1?callback=alert(1337)"></script>
3. SENARYO
ZİNCİRLEME SALDIRI

Günümüzde birçok internet sitesi farklı kaynaklardan içerik çekmektedir. Resimler, stil (CSS) dosyaları, JavaScript
dosyaları ve iframe çerçeveleri en sık rastladığımız örneklerdir. Verileri çektiğimiz internet adresinin kontrolü saldırganların eline geçerse ne olur?Tahmin edebileceğiniz gibi saldırgan sitenize dahil ettiğiniz resim dosyalarını düzenleyerek istenmeyen içeriklerin görüntülenmesine sebep olabilir. Iframe metodu kullanıldıysa sebebiyet vereceği açıklık «iframe injection» olarak adlandırılabilir. Burada özellikle değinmek istediğim nokta CSS ve JavaScript üzerinden izlenebilecek senaryolar.
Subdomain takeover zafiyetine savunmasız bir adresten sitenize dahil ettiğiniz CSS dosyalarını saldırgan istediği an düzenleyebilir ve sitenin stilinin bozulmasına yol açabilir. Veya dahil edeceği resim dosyalarıyla ziyaretçilerin IP adresi ve birtakım tarayıcı bilgilerine ulaşabilir. Daha kritik olanıysa, saldırgan stil üzerinde değişiklik yapmaz ve CSS aracılığıyla formlara girilen klavye girdilerini kayıt altına alabilir. Buna kısaca keylogger diyoruz.
CSS keylogger hakkında daha fazla bilgiye buradan ulaşabilirsiniz: https://github.com/maxchehab/CSS-Keylogging

Aynı tekniğin JavaScript dosyaları üzerinden uygulandığını düşünelim. Beğendiğiniz bir eklenti var ve internet sitenize
eklenti dosyalarını uzak sunucudan dahil ettiniz. İlgili adresin ele geçirilmesi sonucu saldırgan siteniz üzerinde «Stored
XSS» zafiyeti seviyesinde yetkilere sahip olacaktır. Subdomain takeover sonucu ele geçirdiğimiz adreslerin HTTP
access log’larını inceleyerek hangi dosyaların farklı sitelerde kullanıldığını görebiliriz. Peki saldırgan bununla ne
yapabilir?
• Sitenizin tasarımını değiştirerek formları manipüle edebilir ve kullanıcıların şifre ve kart bilgilerini ele geçirebilir,
• Kullanıcıların çerezlerini ele geçirerek hesaplarına şifresiz şekilde erişim sağlayabilir,
• Ziyaretçileri ve arama motoru botlarını zararlı içerik barındıran sitelere yönlendirebilir,
• Ziyaretçilerin tarayıcıları aracılığıyla kripto-para madenciliği yapabilir bu da ziyaretçiye elektrik faturası olarak geri dönecektir. Ayrıca kullanıcının internet kotası da işgal edilebilir.
• Kullanıcıların klavye girdileri kayıt altına alınabilir, tıpkı CSS keylogger örneğindeki gibi.
• Ziyaretçilerin kamera/mikrofonuna erişim izni istenerek kayıtlar alınabilir. Sitemize farklı kaynaklardan dahil ettiğimiz dosyaların daha sonra güncellenmesi halinde etkilenmememiz için SRI (Subresource Integrity) metodu geliştirilmiştir. Kullanımı ise çok basit:
Kod:​
• <script src="https://hedefadres.com/plugin.js" integrity="hash" crossorigin="anonymous"></script>
Hash üretmek için ise şu komutu çalıştırmak yeterli:
Kod:​
• openssl dgst -sha384 -binary dosya.js | openssl base64 -A
DİĞER SENARYOLAR
Tıpkı diğer zafiyetlerde olduğu gibi subdomain takeover saldırılarında da saldırgan yüzlerce farklı senaryo üretebilir.
Önceki sayfalarda saydıklarım dışında birkaç örnek daha vermek istiyorum:
• Kurumsal bilgiler manipüle edilebilir. Ödeme sayfalarındaki veriler saldırgana gönderilecek şekilde yapılandırılabilir.
• İndirme bağlantıları manipüle edilerek kullanıcılar zararlı yazılım indirmeye zorlanabilir. Hatta eğer otomatik güncelleştirmeler etkinleştirilmişse kullanıcının haberi olmadan cihazına zararlı yazılım yüklenebilir.
• Yasadışı faaliyetlerde istekler kullanıcının tarayıcısı üzerinden gönderilebilir.
Unutmayalım ki saldırganlar artık «Hack’lendiniz» temalı propaganda mesajları yayınlamak yerine sistemden mümkün olabildiğince veri sızdırmayı amaçlıyor. Dolayısıyla saldırılar geç tespit ediliyor ve telafisi sağlanamıyor. Bu noktada sistem yetkilileri olarak her zaman «saldırgan ben olsaydım nasıl bir yol izlerdim» sorusunu sormak ve olası bütün senaryoların önüne geçmek gerekiyor.​
 
SPAM IS FORBIDDEN!
  • SPAMMERS ARE BANNED FROM THE FORUM AND CANNOT USE ANY OF THE CHEATS
  • For example: thanks, thx, very good, asdqwe, working, ty and so on!
  • For example: Writing the same message over and over. thanks, thx and so on!
  • Copying and copying someone else's message is prohibited.
  • It is forbidden to send messages to increase the number of comments on threads that you have no knowledge of.
  • Write your own opinion when commenting!
  • If you see spam message, please let us know with the REPORT button!

Tema düzenleyici

Top Bottom