diff --git a/src/pentesting-web/domain-subdomain-takeover.md b/src/pentesting-web/domain-subdomain-takeover.md index 8d069556b..85f0eaca6 100644 --- a/src/pentesting-web/domain-subdomain-takeover.md +++ b/src/pentesting-web/domain-subdomain-takeover.md @@ -5,13 +5,13 @@ ## Domain takeover -Eğer **kapsam içinde bir hizmet tarafından kullanılan** bir alan adı (domain.tld) keşfettiyseniz ancak **şirket** bu alan adının **sahipliğini kaybetmişse**, bunu **kaydetmeyi** (eğer yeterince ucuzsa) deneyebilir ve şirkete bildirebilirsiniz. Eğer bu alan adı, bir oturum çerezi gibi **hassas bilgiler** alıyorsa **GET** parametresi veya **Referer** başlığı aracılığıyla, bu kesinlikle bir **açık**tır. +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çirme işlemini gerçekleştirebilirsiniz. +Ş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 birçok araç bulunmaktadır: +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) @@ -29,53 +29,70 @@ Olası ele geçirmeleri kontrol etmek için çeşitli sözlüklerle birlikte bir ### 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ümlenecektir**. Bu bir A IP adresi, bir CNAME olabilir... +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` adresine wildcard olarak ayarlandıysa, `not-existent.testing.com` `1.1.1.1` adresine işaret edecektir. +Ö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` adresinin oraya işaret ettiğini söyleyebilir. Çünkü, **CNAME wildcard** saldırgana **kurbanın alan adı için keyfi alt alan adları oluşturma** yetkisi verecektir. +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 açığın 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) +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 internet üzerindeki belirli bir alan adı için 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 **şeffaflık**, tarayıcıların alan adlarını oltalama saldırılarına karşı savunmasız 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, oltalama e-postasında URL'nin meşru göründüğü alan adları savunmasızdır, bu da kullanıcıları kandırarak alan adının doğuştan güveni nedeniyle spam filtrelerinden kaçınmalarına neden olur. +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 alan adlarının meşruiyetini artırır ve oltalama saldırılarını daha inandırıcı hale getirir. +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, tehlikeye atılmış bir alt alan adına yönlendirerek **oturum çerezlerini** toplayabilir. +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 oltalama saldırılarının etkinliğini artırır. +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 adını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. +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 adı altında bir sayfa oluşturma imkanı tanır ve oltalama veya kötü amaçlı yazılım dağıtımını daha da kolaylaştırır. +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. **Savunmasız DNS kayıtlarını kaldırmak** - Bu, alt alan adı artık gerekli değilse etkilidir. +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. **Savunmasızlıklar 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. +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 adı doğrulama mekanizmaları uygulamıştır. +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}} diff --git a/src/pentesting-web/hacking-with-cookies/README.md b/src/pentesting-web/hacking-with-cookies/README.md index 1b190696a..a0d17547e 100644 --- a/src/pentesting-web/hacking-with-cookies/README.md +++ b/src/pentesting-web/hacking-with-cookies/README.md @@ -12,7 +12,7 @@ Bir çerezin son kullanma tarihi `Expires` niteliği ile belirlenir. Tersine, `M ### Alan -Bir çerezi alacak ana bilgisayarlar `Domain` niteliği ile belirtilir. Varsayılan olarak, bu çerezi veren ana bilgisayara ayarlanır, alt alan adlarını içermez. Ancak, `Domain` niteliği açıkça ayarlandığında, alt alan adlarını da kapsar. Bu, `Domain` niteliğinin belirlenmesini daha az kısıtlayıcı bir seçenek haline getirir ve alt alan adları arasında çerez paylaşımının gerekli olduğu senaryolar için faydalıdır. Örneğin, `Domain=mozilla.org` ayarlandığında, `developer.mozilla.org` gibi alt alan adlarında çerezlere erişim sağlanır. +Bir çerezi alacak olan ana bilgisayarlar `Domain` niteliği ile belirtilir. Varsayılan olarak, bu çerezi veren ana bilgisayara ayarlanır, alt alan adlarını içermez. Ancak, `Domain` niteliği açıkça ayarlandığında, alt alan adlarını da kapsar. Bu, `Domain` niteliğinin belirlenmesini daha az kısıtlayıcı bir seçenek haline getirir ve alt alan adları arasında çerez paylaşımının gerekli olduğu senaryolar için faydalıdır. Örneğin, `Domain=mozilla.org` ayarlandığında, `developer.mozilla.org` gibi alt alan adlarında çerezlere erişim sağlanır. ### Yol @@ -20,9 +20,9 @@ Bir çerezi alacak ana bilgisayarlar `Domain` niteliği ile belirtilir. Varsayı ### Sıralama Kuralları -İki çerez aynı adı taşıdığında, gönderilmek üzere seçilen çerez: +İki çerez aynı isme sahip olduğunda, gönderilmek üzere seçilen çerez: -- İstenen URL'deki en uzun yolu eşleştiren çerez. +- İstenen URL'deki en uzun yolu eşleşen çerez. - Yollar aynıysa en son ayarlanan çerez. ### SameSite @@ -35,20 +35,20 @@ Bir çerezi alacak ana bilgisayarlar `Domain` niteliği ile belirtilir. Varsayı Çerezleri yapılandırırken, bu nitelikleri anlamak, farklı senaryolar arasında beklenildiği gibi davranmalarını sağlamaya yardımcı olabilir. | **İstek Türü** | **Örnek Kod** | **Çerezler Ne Zaman Gönderilir** | -| ---------------- | ---------------------------------- | --------------------- | -| Bağlantı | \\ | NotSet\*, Lax, None | -| Önceden Yükleme | \ | NotSet\*, Lax, None | -| Form GET | \