# Domain/Subdomain takeover {{#include ../banners/hacktricks-training.md}} ## Domain takeover Wenn Sie eine Domain (domain.tld) entdecken, die **von einem Dienst innerhalb des Geltungsbereichs verwendet wird**, aber das **Unternehmen** die **Eigentümerschaft** verloren hat, können Sie versuchen, sie **zu registrieren** (wenn sie günstig genug ist) und das Unternehmen darüber informieren. Wenn diese Domain einige **sensible Informationen** wie ein Sitzungscookie über einen **GET**-Parameter oder im **Referer**-Header erhält, ist dies mit Sicherheit eine **Schwachstelle**. ### Subdomain takeover Eine Subdomain des Unternehmens verweist auf einen **nicht registrierten Drittanbieterdienst**. Wenn Sie ein **Konto** in diesem **Drittanbieterdienst** **erstellen** und den **Namen**, der verwendet wird, **registrieren** können, können Sie den Subdomain-Takeover durchführen. Es gibt mehrere Tools mit Wörterbüchern, um mögliche Übernahmen zu überprüfen: - [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 Wenn ein DNS-Wildcard in einer Domain verwendet wird, wird jede angeforderte Subdomain dieser Domain, die keine andere Adresse hat, explizit **auf die gleichen Informationen aufgelöst**. Dies könnte eine A-IP-Adresse, ein CNAME... Wenn zum Beispiel `*.testing.com` auf `1.1.1.1` wildcarded ist. Dann wird `not-existent.testing.com` auf `1.1.1.1` zeigen. Wenn der Sysadmin jedoch anstelle der Verweisung auf eine IP-Adresse auf einen **Drittanbieterdienst über CNAME** verweist, wie zum Beispiel eine G**ithub-Subdomain** (`sohomdatta1.github.io`). Ein Angreifer könnte **seine eigene Drittanbieter-Seite** (in diesem Fall auf GitHub) erstellen und sagen, dass `something.testing.com` dorthin verweist. Denn das **CNAME-Wildcard** wird zustimmen, dass der Angreifer in der Lage sein wird, **willkürliche Subdomains für die Domain des Opfers zu generieren, die auf seine Seiten verweisen**. Ein Beispiel für diese Schwachstelle finden Sie im CTF-Bericht: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api) ## Exploiting a subdomain takeover Der Subdomain-Takeover ist im Wesentlichen DNS-Spoofing für eine bestimmte Domain im Internet, das es Angreifern ermöglicht, A-Records für eine Domain festzulegen, wodurch Browser Inhalte vom Server des Angreifers anzeigen. Diese **Transparenz** in Browsern macht Domains anfällig für Phishing. Angreifer können [_Typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) oder [_Doppelgänger-Domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) zu diesem Zweck verwenden. Besonders anfällig sind Domains, bei denen die URL in einer Phishing-E-Mail legitim erscheint, Benutzer täuscht und Spam-Filter aufgrund des inhärenten Vertrauens der Domain umgeht. Überprüfen Sie diesen [Beitrag für weitere Details](https://0xpatrik.com/subdomain-takeover/) ### **SSL Certificates** SSL-Zertifikate, die von Angreifern über Dienste wie [_Let's Encrypt_](https://letsencrypt.org/) generiert werden, erhöhen die Legitimität dieser gefälschten Domains und machen Phishing-Angriffe überzeugender. ### **Cookie Security and Browser Transparency** Die Transparenz von Browsern erstreckt sich auch auf die Sicherheit von Cookies, die durch Richtlinien wie die [Same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy) geregelt wird. Cookies, die häufig zur Verwaltung von Sitzungen und zur Speicherung von Anmeldetoken verwendet werden, können durch Subdomain-Takeover ausgenutzt werden. Angreifer können **Sitzungscookies sammeln**, indem sie Benutzer einfach auf eine kompromittierte Subdomain leiten, was die Benutzerdaten und die Privatsphäre gefährdet. ### CORS Bypass Es könnte möglich sein, dass jede Subdomain auf CORS-Ressourcen von der Hauptdomain oder anderen Subdomains zugreifen darf. Dies könnte von einem Angreifer ausgenutzt werden, um **sensible Informationen** durch Missbrauch von CORS-Anfragen zu **erlangen**. ### CSRF - Same-Site Cookies bypass Es könnte möglich sein, dass die Subdomain Cookies an die Domain oder andere Subdomains senden darf, was durch das `Same-Site`-Attribut der Cookies verhindert wurde. Beachten Sie jedoch, dass Anti-CSRF-Token diesen Angriff weiterhin verhindern, wenn sie ordnungsgemäß implementiert sind. ### OAuth tokens redirect Es könnte möglich sein, dass die kompromittierte Subdomain in der `redirect_uri`-URL eines OAuth-Flows verwendet werden darf. Dies könnte von einem Angreifer ausgenutzt werden, um das **OAuth-Token zu stehlen**. ### CSP Bypass Es könnte möglich sein, dass die kompromittierte Subdomain (oder jede Subdomain) beispielsweise für die `script-src` der CSP verwendet werden darf. Dies könnte von einem Angreifer ausgenutzt werden, um **schadhafte Skripte einzuschleusen** und potenzielle XSS-Schwachstellen auszunutzen. ### **Emails and Subdomain Takeover** Ein weiterer Aspekt des Subdomain-Takeovers betrifft E-Mail-Dienste. Angreifer können **MX-Records** manipulieren, um E-Mails von einer legitimen Subdomain zu empfangen oder zu senden, was die Wirksamkeit von Phishing-Angriffen erhöht. ### **Higher Order Risks** Weitere Risiken umfassen **NS-Record-Übernahmen**. Wenn ein Angreifer die Kontrolle über einen NS-Record einer Domain erlangt, kann er potenziell einen Teil des Traffics auf einen Server unter seiner Kontrolle umleiten. Dieses Risiko wird verstärkt, wenn der Angreifer eine hohe **TTL (Time to Live)** für DNS-Records festlegt, wodurch die Dauer des Angriffs verlängert wird. ### CNAME Record Vulnerability Angreifer könnten unbeanspruchte CNAME-Records ausnutzen, die auf externe Dienste verweisen, die nicht mehr verwendet werden oder stillgelegt wurden. Dies ermöglicht es ihnen, eine Seite unter der vertrauenswürdigen Domain zu erstellen, was Phishing oder die Verbreitung von Malware weiter erleichtert. ### **Mitigation Strategies** Minderungsstrategien umfassen: 1. **Entfernen von anfälligen DNS-Records** - Dies ist effektiv, wenn die Subdomain nicht mehr benötigt wird. 2. **Beanspruchen des Domainnamens** - Registrieren der Ressource beim jeweiligen Cloud-Anbieter oder Wiedererwerb einer abgelaufenen Domain. 3. **Regelmäßige Überwachung auf Schwachstellen** - Tools wie [aquatone](https://github.com/michenriksen/aquatone) können helfen, anfällige Domains zu identifizieren. Organisationen sollten auch ihre Infrastrukturmanagementprozesse überarbeiten, um sicherzustellen, dass die Erstellung von DNS-Records der letzte Schritt bei der Ressourcenerstellung und der erste Schritt bei der Ressourcenzerstörung ist. Für Cloud-Anbieter ist die Überprüfung des Domainbesitzes entscheidend, um Subdomain-Takeovers zu verhindern. Einige, wie [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), haben dieses Problem erkannt und Mechanismen zur Domainverifizierung implementiert. ## 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}}