# Domain/Subdomain takeover {{#include ../banners/hacktricks-training.md}} ## Domain takeover Ako otkrijete neki domen (domain.tld) koji se **koristi od strane neke usluge unutar opsega** ali je **kompanija** **izgubila** **vlasništvo** nad njim, možete pokušati da ga **registrujete** (ako je dovoljno jeftin) i obavestite kompaniju. Ako ovaj domen prima neku **osetljivu informaciju** poput sesijskog kolačića putem **GET** parametra ili u **Referer** headeru, to je sigurno **ranjivost**. ### Subdomain takeover Subdomen kompanije pokazuje na **uslugu treće strane sa imenom koje nije registrovano**. Ako možete **napraviti** **nalog** u ovoj **usluzi treće strane** i **registrujete** **ime** koje se koristi, možete izvršiti preuzimanje subdomena. Postoji nekoliko alata sa rečnicima za proveru mogućih preuzimanja: - [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 Kada se koristi DNS wildcard u domenu, svaki traženi subdomen tog domena koji nema drugačiju adresu eksplicitno će biti **rešavan na iste informacije**. Ovo može biti A IP adresa, CNAME... Na primer, ako je `*.testing.com` wildcardovan na `1.1.1.1`. Tada će `not-existent.testing.com` pokazivati na `1.1.1.1`. Međutim, ako umesto da pokazuje na IP adresu, sysadmin usmeri na **uslugu treće strane putem CNAME**, kao što je G**ithub subdomen** na primer (`sohomdatta1.github.io`). Napadač može **napraviti svoju stranicu treće strane** (u Gihubu u ovom slučaju) i reći da `something.testing.com` pokazuje tamo. Zato, **CNAME wildcard** će omogućiti napadaču da **generiše proizvoljne subdomene za domen žrtve koji pokazuju na njegove stranice**. Možete pronaći primer ove ranjivosti u CTF izveštaju: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api) ## Exploiting a subdomain takeover Preuzimanje subdomena je u suštini DNS spoofing za određeni domen širom interneta, omogućavajući napadačima da postave A zapise za domen, što dovodi do toga da pregledači prikazuju sadržaj sa napadačevog servera. Ova **transparentnost** u pregledačima čini domene podložnim phishingu. Napadači mogu koristiti [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) ili [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) u tu svrhu. Posebno su ranjivi domeni gde URL u phishing emailu izgleda legitimno, obmanjujući korisnike i izbegavajući spam filtere zbog inherentnog poverenja domena. Proverite ovaj [post za dalje detalje](https://0xpatrik.com/subdomain-takeover/) ### **SSL Certificates** SSL sertifikati, ako ih generišu napadači putem usluga poput [_Let's Encrypt_](https://letsencrypt.org/), dodaju legitimitet ovim lažnim domenima, čineći phishing napade uverljivijim. ### **Cookie Security and Browser Transparency** Transparentnost pregledača se takođe proteže na sigurnost kolačića, kojom upravljaju politike poput [Same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy). Kolačići, koji se često koriste za upravljanje sesijama i čuvanje tokena za prijavu, mogu biti iskorišćeni putem preuzimanja subdomena. Napadači mogu **prikupiti sesijske kolačiće** jednostavno usmeravajući korisnike na kompromitovani subdomen, ugrožavajući podatke i privatnost korisnika. ### CORS Bypass Može biti moguće da svaki subdomen ima dozvolu za pristup CORS resursima iz glavnog domena ili drugih subdomena. Ovo bi napadač mogao iskoristiti da **pristupi osetljivim informacijama** zloupotrebljavajući CORS zahteve. ### CSRF - Same-Site Cookies bypass Može biti moguće da subdomen ima dozvolu da šalje kolačiće na domen ili druge subdomene što je sprečeno atributom `Same-Site` kolačića. Međutim, imajte na umu da će anti-CSRF tokeni i dalje sprečiti ovaj napad ako su pravilno implementirani. ### OAuth tokens redirect Može biti moguće da se kompromitovani subdomen može koristiti u `redirect_uri` URL-u OAuth toka. Ovo bi napadač mogao iskoristiti da **ukrade OAuth token**. ### CSP Bypass Može biti moguće da se kompromitovani subdomen (ili svaki subdomen) može koristiti, na primer, za `script-src` CSP. Ovo bi napadač mogao iskoristiti da **ubaci zlonamerne skripte** i zloupotrebi potencijalne XSS ranjivosti. ### **Emails and Subdomain Takeover** Još jedan aspekt preuzimanja subdomena uključuje email usluge. Napadači mogu manipulisati **MX zapisima** da primaju ili šalju emailove sa legitimnog subdomena, povećavajući efikasnost phishing napada. ### **Higher Order Risks** Dalji rizici uključuju **NS record takeover**. Ako napadač dobije kontrolu nad jednim NS zapisom domena, može potencijalno usmeriti deo saobraćaja na server pod svojom kontrolom. Ovaj rizik se povećava ako napadač postavi visoki **TTL (Time to Live)** za DNS zapise, produžavajući trajanje napada. ### CNAME Record Vulnerability Napadači bi mogli iskoristiti neizdane CNAME zapise koji pokazuju na spoljne usluge koje više nisu korišćene ili su ukinute. Ovo im omogućava da kreiraju stranicu pod poverenim domenom, dodatno olakšavajući phishing ili distribuciju malvera. ### **Mitigation Strategies** Strategije ublažavanja uključuju: 1. **Uklanjanje ranjivih DNS zapisa** - Ovo je efikasno ako subdomen više nije potreban. 2. **Pribavljanje imena domena** - Registracija resursa kod odgovarajućeg provajdera u oblaku ili ponovna kupovina istekao domen. 3. **Redovno praćenje ranjivosti** - Alati poput [aquatone](https://github.com/michenriksen/aquatone) mogu pomoći u identifikaciji podložnih domena. Organizacije bi takođe trebale revidirati svoje procese upravljanja infrastrukturom, osiguravajući da kreiranje DNS zapisa bude poslednji korak u kreiranju resursa i prvi korak u uništavanju resursa. Za provajdere u oblaku, verifikacija vlasništva domena je ključna za sprečavanje preuzimanja subdomena. Neki, poput [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), su prepoznali ovaj problem i implementirali mehanizme verifikacije domena. ## 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}}