# Domain/Subdomain takeover {{#include ../banners/hacktricks-training.md}} ## Domain takeover Eğer **kapsam içinde bir hizmet tarafından kullanılan** bir alan adı (domain.tld) keşfettiyseniz ancak **şirket** bu alanın **sahipliğini kaybetmişse**, bunu **kaydetmeyi** (eğer yeterince ucuzsa) deneyebilir ve şirkete bildirebilirsiniz. Eğer bu alan adı, bir oturum çerezi gibi **duyarlı bilgiler** alıyorsa **GET** parametresi veya **Referer** başlığı aracılığıyla, bu kesinlikle bir **zafiyet**dir. ### Subdomain takeover Şirketin bir alt alan adı, **kayıtlı olmayan bir üçüncü taraf hizmete** işaret ediyor. Eğer bu **üçüncü taraf hizmette** bir **hesap oluşturabilir** ve kullanılan **adı kaydedebilirseniz**, alt alan adı ele geçirmeyi gerçekleştirebilirsiniz. Olası ele geçirmeleri kontrol etmek için çeşitli sözlüklerle birlikte birkaç araç bulunmaktadır: - [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz) - [https://github.com/blacklanternsecurity/bbot](https://github.com/blacklanternsecurity/bbot) - [https://github.com/punk-security/dnsReaper](https://github.com/punk-security/dnsReaper) - [https://github.com/haccer/subjack](https://github.com/haccer/subjack) - [https://github.com/anshumanbh/tko-sub](https://github.com/anshumanbh/tko-subs) - [https://github.com/ArifulProtik/sub-domain-takeover](https://github.com/ArifulProtik/sub-domain-takeover) - [https://github.com/SaadAhmedx/Subdomain-Takeover](https://github.com/SaadAhmedx/Subdomain-Takeover) - [https://github.com/Ice3man543/SubOver](https://github.com/Ice3man543/SubOver) - [https://github.com/antichown/subdomain-takeover](https://github.com/antichown/subdomain-takeover) - [https://github.com/musana/mx-takeover](https://github.com/musana/mx-takeover) - [https://github.com/PentestPad/subzy](https://github.com/PentestPad/subzy) - [https://github.com/Stratus-Security/Subdominator](https://github.com/Stratus-Security/Subdominator) - [https://github.com/NImaism/takeit](https://github.com/NImaism/takeit) ### Subdomain Takeover Generation via DNS Wildcard Bir alan adında DNS wildcard kullanıldığında, o alan adının farklı bir adresi olmayan herhangi bir istenen alt alan adı **aynı bilgilere çözülür**. Bu bir A IP adresi, bir CNAME olabilir... Örneğin, `*.testing.com` `1.1.1.1`'e wildcard olarak ayarlandıysa, `not-existent.testing.com` `1.1.1.1`'e işaret edecektir. Ancak, bir IP adresine işaret etmek yerine, sistem yöneticisi bunu bir **üçüncü taraf hizmete CNAME aracılığıyla** yönlendirirse, örneğin bir G**ithub alt alan adı** (`sohomdatta1.github.io`) gibi. Bir saldırgan, **kendi üçüncü taraf sayfasını** (bu durumda Gihub'da) oluşturabilir ve `something.testing.com`'un oraya işaret ettiğini söyleyebilir. Çünkü, **CNAME wildcard** saldırgana **kurbanın alanı için keyfi alt alan adları oluşturma** yetkisi verecektir. Bu zafiyetin bir örneğini CTF yazısında bulabilirsiniz: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api) ## Exploiting a subdomain takeover Alt alan adı ele geçirme, temelde belirli bir alan adı için internet genelinde DNS sahtekarlığıdır ve saldırganların bir alan adı için A kayıtları ayarlamasına olanak tanır, bu da tarayıcıların saldırganın sunucusundan içerik göstermesine neden olur. Bu tarayıcılardaki **şeffaflık**, alan adlarını phishing'e yatkın hale getirir. Saldırganlar bu amaçla [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) veya [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) kullanabilir. Özellikle, bir phishing e-postasındaki URL'nin meşru göründüğü alan adları, kullanıcıları kandırarak ve alan adının doğuştan güveni nedeniyle spam filtrelerinden kaçınarak daha savunmasızdır. Daha fazla ayrıntı için bu [gönderiyi kontrol edin](https://0xpatrik.com/subdomain-takeover/) ### **SSL Certificates** SSL sertifikaları, saldırganlar tarafından [_Let's Encrypt_](https://letsencrypt.org/) gibi hizmetler aracılığıyla oluşturulursa, bu sahte alanların meşruiyetini artırarak phishing saldırılarını daha inandırıcı hale getirir. ### **Cookie Security and Browser Transparency** Tarayıcı şeffaflığı, [Aynı köken politikası](https://en.wikipedia.org/wiki/Same-origin_policy) gibi politikalarla yönetilen çerez güvenliğine de uzanır. Oturumları yönetmek ve giriş belirteçlerini depolamak için sıklıkla kullanılan çerezler, alt alan adı ele geçirme yoluyla istismar edilebilir. Saldırganlar, kullanıcıları tehlikeye atarak çerezleri toplamak için yalnızca kullanıcıları tehlikeye atılmış bir alt alan adına yönlendirebilir. ### CORS Bypass Her alt alan adının ana alan veya diğer alt alanlardan CORS kaynaklarına erişmesine izin verilebilir. Bu, bir saldırganın CORS isteklerini kötüye kullanarak **duyarlı bilgilere erişmesine** olanak tanıyabilir. ### CSRF - Same-Site Cookies bypass Alt alan adının, çerezlerin `Same-Site` niteliği tarafından engellenen alan veya diğer alt alanlara çerez göndermesine izin verilebilir. Ancak, anti-CSRF belirteçlerinin düzgün bir şekilde uygulanması durumunda bu saldırıyı engelleyeceğini unutmayın. ### OAuth tokens redirect Kompromize edilmiş alt alan adının, bir OAuth akışının `redirect_uri` URL'sinde kullanılmasına izin verilebilir. Bu, bir saldırganın **OAuth belirtecini çalmasına** olanak tanıyabilir. ### CSP Bypass Kompromize edilmiş alt alan adı (veya her alt alan adı), örneğin CSP'nin `script-src`'sinde kullanılmasına izin verilebilir. Bu, bir saldırganın **kötü niyetli betikler enjekte etmesine** ve potansiyel XSS zafiyetlerini kötüye kullanmasına olanak tanıyabilir. ### **Emails and Subdomain Takeover** Alt alan adı ele geçirmenin bir diğer yönü, e-posta hizmetleridir. Saldırganlar, meşru bir alt alan adından e-posta almak veya göndermek için **MX kayıtlarını** manipüle edebilir, bu da phishing saldırılarının etkinliğini artırır. ### **Higher Order Risks** Daha fazla risk, **NS kayıt ele geçirme** içerir. Eğer bir saldırgan bir alanın bir NS kaydını kontrol altına alırsa, trafiğin bir kısmını kendi kontrolündeki bir sunucuya yönlendirebilir. Bu risk, saldırganın DNS kayıtları için yüksek bir **TTL (Time to Live)** ayarlaması durumunda artar ve saldırının süresini uzatır. ### CNAME Record Vulnerability Saldırganlar, artık kullanılmayan veya devre dışı bırakılan dış hizmetlere işaret eden talep edilmemiş CNAME kayıtlarını istismar edebilir. Bu, onlara güvenilir bir alan altında bir sayfa oluşturma olanağı tanır ve phishing veya kötü amaçlı yazılım dağıtımını kolaylaştırır. ### **Mitigation Strategies** Azaltma stratejileri şunları içerir: 1. **Zayıf DNS kayıtlarını kaldırmak** - Bu, alt alan adı artık gerekli değilse etkilidir. 2. **Alan adını talep etmek** - İlgili bulut sağlayıcısıyla kaynağı kaydetmek veya süresi dolmuş bir alan adını yeniden satın almak. 3. **Zafiyetler için düzenli izleme** - [aquatone](https://github.com/michenriksen/aquatone) gibi araçlar, savunmasız alan adlarını tanımlamaya yardımcı olabilir. Kuruluşlar ayrıca, DNS kayıtlarının oluşturulmasının kaynak oluşturmanın son adımı ve kaynak yok etmenin ilk adımı olduğundan emin olarak altyapı yönetim süreçlerini gözden geçirmelidir. Bulut sağlayıcıları için, alan adı sahipliğini doğrulamak, alt alan adı ele geçirmelerini önlemek için kritik öneme sahiptir. Bazıları, [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/) gibi, bu sorunu tanımış ve alan doğrulama mekanizmaları uygulamıştır. ## References - [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/) - [https://www.stratussecurity.com/post/subdomain-takeover-guide](https://www.stratussecurity.com/post/subdomain-takeover-guide) - [https://www.hackerone.com/blog/guide-subdomain-takeovers-20](https://www.hackerone.com/blog/guide-subdomain-takeovers-20) {{#include ../banners/hacktricks-training.md}}