hacktricks/src/pentesting-web/domain-subdomain-takeover.md

99 lines
7.8 KiB
Markdown

# Domein/Subdomein oorneem
{{#include ../banners/hacktricks-training.md}}
## Domein oorneem
As jy 'n domein (domain.tld) ontdek wat **gebruik word deur 'n diens binne die omvang** maar die **maatskappy** het die **besit** daarvan **verloor**, kan jy probeer om dit te **registreer** (as dit goedkoop genoeg is) en die maatskappy laat weet. As hierdie domein 'n paar **sensitiewe inligting** ontvang soos 'n sessie koekie via **GET** parameter of in die **Referer** kop, is dit beslis 'n **kwesbaarheid**.
### Subdomein oorneem
'n Subdomein van die maatskappy wys na 'n **derdeparty diens met 'n naam wat nie geregistreer is nie**. As jy 'n **rekening** in hierdie **derdeparty diens** kan **skep** en die **naam** wat in gebruik is kan **registreer**, kan jy die subdomein oorneem.
Daar is verskeie gereedskap met woordeboeke om moontlike oornames te kontroleer:
- [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)
### Subdomein Oorneem Generasie via DNS Wildcard
Wanneer DNS wildcard in 'n domein gebruik word, sal enige aangevraagde subdomein van daardie domein wat nie 'n ander adres het nie, **opgelos word na dieselfde inligting**. Dit kan 'n A IP adres, 'n CNAME...
Byvoorbeeld, as `*.testing.com` gewild gemaak word na `1.1.1.1`. Dan sal `not-existent.testing.com` na `1.1.1.1` wys.
As die stelselsadministrateur egter dit na 'n **derdeparty diens via CNAME** wys, soos 'n G**ithub subdomein** byvoorbeeld (`sohomdatta1.github.io`). 'n Aanvaller kan **sy eie derdeparty bladsy skep** (in Gihub in hierdie geval) en sê dat `something.testing.com` daarheen wys. Omdat die **CNAME wildcard** sal saamstem, sal die aanvaller in staat wees om **arbitraire subdomeine vir die domein van die slagoffer te genereer wat na sy bladsye wys**.
Jy kan 'n voorbeeld van hierdie kwesbaarheid in die CTF skrywe vind: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## Exploiteer 'n subdomein oorneem
Subdomein oorneem is in wese DNS spoofing vir 'n spesifieke domein oor die internet, wat aanvallers toelaat om A rekords vir 'n domein in te stel, wat blaaiers lei om inhoud van die aanvaller se bediener te vertoon. Hierdie **deursigtigheid** in blaaiers maak domeine geneig tot phishing. Aanvallers mag [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) of [_Doppelganger domeine_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) vir hierdie doel gebruik. Veral kwesbaar is domeine waar die URL in 'n phishing e-pos legitiem lyk, wat gebruikers mislei en spamfilters ontduik weens die domein se inherente vertroue.
Kyk na hierdie [plasing vir verdere besonderhede](https://0xpatrik.com/subdomain-takeover/)
### **SSL Sertifikate**
SSL sertifikate, as dit deur aanvallers gegenereer word via dienste soos [_Let's Encrypt_](https://letsencrypt.org/), voeg by tot die legitimiteit van hierdie vals domeine, wat phishing-aanvalle meer oortuigend maak.
### **Koekie Sekuriteit en Blaaier Deursigtigheid**
Blaaier deursigtigheid strek ook na koekie sekuriteit, wat gereguleer word deur beleide soos die [Same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy). Koekies, wat dikwels gebruik word om sessies te bestuur en aanmeld tokens te stoor, kan deur subdomein oorneem uitgebuit word. Aanvallers kan **sessie koekies versamel** bloot deur gebruikers na 'n gecompromitteerde subdomein te lei, wat gebruikersdata en privaatheid in gevaar stel.
### CORS Bypass
Dit mag moontlik wees dat elke subdomein toegelaat word om CORS hulpbronne van die hoofdomein of ander subdomeine te benader. Dit kan deur 'n aanvaller uitgebuit word om **sensitiewe inligting** te bekom deur CORS versoeke te misbruik.
### CSRF - Same-Site Koekies bypass
Dit mag moontlik wees dat die subdomein toegelaat word om koekies na die domein of ander subdomeine te stuur wat deur die `Same-Site` attribuut van die koekies verhoed is. Let egter daarop dat anti-CSRF tokens steeds hierdie aanval sal voorkom as hulle behoorlik geïmplementeer is.
### OAuth tokens herlei
Dit mag moontlik wees dat die gecompromitteerde subdomein toegelaat word om gebruik te word in die `redirect_uri` URL van 'n OAuth vloei. Dit kan deur 'n aanvaller uitgebuit word om die **OAuth token** te **steel**.
### CSP Bypass
Dit mag moontlik wees dat die gecompromitteerde subdomein (of elke subdomein) toegelaat word om byvoorbeeld die `script-src` van die CSP te gebruik. Dit kan deur 'n aanvaller uitgebuit word om **kwaadwillige skripte in te voeg** en potensiële XSS kwesbaarhede te misbruik.
### **E-pos en Subdomein Oorneem**
'n Ander aspek van subdomein oorneem behels e-posdienste. Aanvallers kan **MX rekords** manipuleer om e-posse van 'n legitieme subdomein te ontvang of te stuur, wat die doeltreffendheid van phishing-aanvalle verbeter.
### **Hoër Orde Risiko's**
Verder risiko's sluit **NS rekord oorneem** in. As 'n aanvaller beheer oor een NS rekord van 'n domein verkry, kan hulle potensieel 'n gedeelte van die verkeer na 'n bediener onder hul beheer lei. Hierdie risiko word versterk as die aanvaller 'n hoë **TTL (Time to Live)** vir DNS rekords stel, wat die duur van die aanval verleng.
### CNAME Rekord Kwesbaarheid
Aanvallers mag onopgeëiste CNAME rekords wat na eksterne dienste wys wat nie meer gebruik word of afgeskakel is nie, uitbuit. Dit stel hulle in staat om 'n bladsy onder die vertroude domein te skep, wat phishing of malware verspreiding verder vergemaklik.
### **Mitigering Strategieë**
Mitigering strategieë sluit in:
1. **Verwydering van kwesbare DNS rekords** - Dit is effektief as die subdomein nie meer benodig word nie.
2. **Eise van die domeinnaam** - Registreer die hulpbron by die betrokke wolkverskaffer of heraankoop 'n vervalde domein.
3. **Gereelde monitering vir kwesbaarhede** - Gereedskap soos [aquatone](https://github.com/michenriksen/aquatone) kan help om kwesbare domeine te identifiseer. Organisasies moet ook hul infrastruktuur bestuur proses hersien, om te verseker dat die skepping van DNS rekords die finale stap in hulpbron skepping en die eerste stap in hulpbron vernietiging is.
Vir wolkverskaffers is dit van kardinale belang om domeinbesit te verifieer om subdomein oornames te voorkom. Sommige, soos [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), het hierdie probleem erken en domeinverifikasiemeganismes geïmplementeer.
## Verwysings
- [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}}