Domain/Subdomain takeover

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Domain takeover

यदि आप कोई domain (domain.tld) पाते हैं जो scope के अंदर किसी service द्वारा उपयोग हो रहा है लेकिन कंपनी ने उसकी ownership खो दी है, तो आप उसे register करने की कोशिश कर सकते हैं (अगर सस्ता हो) और कंपनी को सूचित कर सकते हैं। यदि यह domain किसी sensitive information को प्राप्त कर रहा है जैसे session cookie via GET parameter या Referer header में, तो यह निश्चित रूप से एक vulnerability है।

Subdomain takeover

कंपनी का एक subdomain किसी third-party service के नाम पर पॉइंट कर रहा है जो register नहीं है। यदि आप उस third party service में एक account बना कर उस उपयोग में आने वाले name को register कर सकते हैं, तो आप subdomain takeover कर सकते हैं।

कुछ tools हैं जिनमें dictionaries होती हैं जो संभावित takeovers की जांच करती हैं:

Subdomain Takeover Generation via DNS Wildcard

जब किसी domain में DNS wildcard उपयोग होता है, तो उस domain के किसी भी requested subdomain जो explicitly किसी अलग address पर नहीं है, वह एक ही information की ओर resolve होगा। यह A ip address, CNAME… कुछ भी हो सकता है।

उदाहरण के लिए, अगर *.testing.com को wildcarded किया गया है और वह 1.1.1.1 की ओर पॉइंट करता है। तो, not-existent.testing.com भी 1.1.1.1 की ओर पॉइंट करेगा।

हालाँकि, अगर IP address की बजाय sysadmin इसे CNAME के जरिए किसी third party service की ओर पॉइंट करता है, जैसे कि एक GitHub subdomain (sohomdatta1.github.io)। एक attacker अपना खुद का third party page (इस मामले में GitHub पर) बना सकता है और कह सकता है कि something.testing.com वहाँ पॉइंट कर रहा है। क्योंकि CNAME wildcard सहमति देगा, attacker arbitrary subdomains generate कर सकेगा जो victim के domain के pages की ओर पॉइंट करेंगे।

इस vulnerability का एक उदाहरण आप CTF write-up में देख सकते हैं: https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api

Exploiting a subdomain takeover

Subdomain takeover मूलतः एक specific domain के लिए इंटरनेट पर DNS spoofing जैसा है, जो attackers को domain के लिए A records सेट करने की अनुमति देता है, जिससे browsers attacker के server से content दिखाते हैं। ब्राउज़रों में यह पारदर्शिता domains को phishing के लिए संवेदनशील बनाती है। Attackers इसके लिए typosquatting या Doppelganger domains का उपयोग कर सकते हैं। विशेष रूप से वे domains जोखिम में होते हैं जहां phishing email में URL वैध दिखता है, उपयोगकर्ताओं को धोखा देता है और domain की inherent trust के कारण spam filters को भी चकमा दे देता है।

अधिक विवरण के लिए यह पोस्ट देखें: https://0xpatrik.com/subdomain-takeover/

SSL Certificates

यदि attackers द्वारा Let’s Encrypt जैसी services के जरिए SSL certificates generate किए जा सकते हैं, तो यह इन fake domains की वैधता बढ़ा देता है और phishing attacks को और convincing बनाता है।

ब्राउज़र पारदर्शिता cookie security तक भी जाती है, जिसे Same-origin policy जैसी नीतियाँ नियंत्रित करती हैं। Cookies, जो अक्सर sessions और login tokens स्टोर करने के लिए उपयोग होती हैं, subdomain takeover के जरिए exploit की जा सकती हैं। Attackers बस users को compromised subdomain पर redirect करके session cookies gather कर सकते हैं, जिससे user data और privacy खतरे में पड़ सकती है।

CORS Bypass

ऐसा संभव हो सकता है कि हर subdomain को main domain या अन्य subdomains से CORS resources तक पहुँचने की अनुमति हो। इसे attacker CORS requests का दुरुपयोग करके sensitive information access करने के लिए exploit कर सकता है।

CSRF - Same-Site Cookies bypass

संभव है कि subdomain को domain या अन्य subdomains को cookies भेजने की अनुमति हो जो सामान्यतः cookies के Same-Site attribute द्वारा रोकी जाती है। हालांकि, ध्यान दें कि यदि anti-CSRF tokens सही तरीके से लागू हैं तो वे इस attack को रोक देंगे।

OAuth tokens redirect

संभव है कि compromised subdomain को OAuth flow के redirect_uri URL में उपयोग करने की अनुमति हो। इसे attacker द्वारा OAuth token steal करने के लिए exploit किया जा सकता है।

CSP Bypass

संभव है कि compromised subdomain (या हर subdomain) को उदाहरण के लिए CSP के script-src में उपयोग की अनुमति हो। इसे attacker द्वारा malicious scripts inject करने और संभावित XSS vulnerabilities का दुरुपयोग करने के लिए exploit किया जा सकता है।

Emails and Subdomain Takeover

Subdomain takeover का एक और पहलू email services शामिल है। Attackers MX records को manipulate करके legitimate subdomain से emails receive या send कर सकते हैं, जिससे phishing attacks और अधिक प्रभावी हो जाते हैं।

Higher Order Risks

आगे के जोखिमों में NS record takeover शामिल है। यदि attacker किसी domain के एक NS record पर नियंत्रण हासिल कर लेता है, तो वे संभावित रूप से ट्रैफिक के एक हिस्से को अपने नियंत्रण वाले server पर direct कर सकते हैं। यह जोखिम बढ़ जाता है यदि attacker DNS records के लिए उच्च TTL (Time to Live) सेट कर दे, जिससे attack का प्रभाव लंबा चलेगा।

CNAME Record Vulnerability

Attackers उन unclaimed CNAME records का फायदा उठा सकते हैं जो external services की ओर पॉइंट करते हैं जिन्हें अब इस्तेमाल नहीं किया जा रहा या जो decommissioned हो चुकी हैं। इससे वे trusted domain के अंतर्गत एक page बना सकते हैं, जो phishing या malware वितरण को आसान बना देता है।

Mitigation Strategies

Mitigation strategies में शामिल हैं:

  1. Removing vulnerable DNS records - यदि subdomain अब आवश्यक नहीं है तो यह प्रभावी है।
  2. Claiming the domain name - संबंधित cloud provider के साथ resource को register करना या expired domain को पुनः खरीदना।
  3. Regular monitoring for vulnerabilities - tools जैसे aquatone संभावित susceptible domains की पहचान करने में मदद कर सकते हैं। Organizations को अपनी infrastructure management प्रक्रियाओं की भी समीक्षा करनी चाहिए, यह सुनिश्चित करते हुए कि DNS record creation resource creation का अंतिम चरण हो और resource destruction का पहला कदम हो।

Cloud providers के लिए domain ownership verify करना subdomain takeovers को रोकने के लिए महत्वपूर्ण है। कुछ providers, जैसे कि GitLab ने इस समस्या को पहचाना है और domain verification mechanisms लागू किए हैं: https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/

Detection techniques

  • Find dangling DNS records: CNAME/A/AAAA/ALIAS/ANAME records खोजें जो non-existent resources (deleted buckets, apps, pages, load balancers) की ओर पॉइंट करते हैं।
  • Check provider error signatures: HTTP responses, TLS certs, या DNS errors को known takeover patterns से match करें (देखें can-i-take-over-xyz)।
  • Look for orphaned cloud assets: S3/CloudFront, Azure Websites, GCP App Engine/Storage, GitHub Pages, Heroku, Fastly, Netlify, Vercel, Zendesk, Shopify, Atlassian, और समान services की जाँच करें।
  • Passive DNS and historical records: पुराने CNAME अक्सर पहले उपयोग किए गए third-party services को प्रकट करते हैं जो अभी भी vulnerable हो सकते हैं।
  • Wildcard pitfalls: false positives से बचने और takeover amplification को समझने के लिए wildcard DNS बनाम explicit records की पुष्टि करें।

APIs and data sources

References

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें