mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
98 lines
8.7 KiB
Markdown
98 lines
8.7 KiB
Markdown
# Prise de contrôle de domaine/sous-domaine
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
## Prise de contrôle de domaine
|
|
|
|
Si vous découvrez un domaine (domain.tld) qui est **utilisé par un service dans le périmètre** mais que la **société** a **perdu** la **propriété** de celui-ci, vous pouvez essayer de **l'enregistrer** (si c'est assez bon marché) et informer la société. Si ce domaine reçoit des **informations sensibles** comme un cookie de session via un paramètre **GET** ou dans l'en-tête **Referer**, c'est certainement une **vulnérabilité**.
|
|
|
|
### Prise de contrôle de sous-domaine
|
|
|
|
Un sous-domaine de la société pointe vers un **service tiers avec un nom non enregistré**. Si vous pouvez **créer** un **compte** dans ce **service tiers** et **enregistrer** le **nom** en cours d'utilisation, vous pouvez effectuer la prise de contrôle du sous-domaine.
|
|
|
|
Il existe plusieurs outils avec des dictionnaires pour vérifier les prises de contrôle possibles :
|
|
|
|
- [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)
|
|
|
|
### Génération de prise de contrôle de sous-domaine via DNS Wildcard
|
|
|
|
Lorsque le wildcard DNS est utilisé dans un domaine, tout sous-domaine demandé de ce domaine qui n'a pas d'adresse différente explicitement sera **résolu vers les mêmes informations**. Cela pourrait être une adresse IP A, un CNAME...
|
|
|
|
Par exemple, si `*.testing.com` est wildcardé vers `1.1.1.1`. Alors, `not-existent.testing.com` pointera vers `1.1.1.1`.
|
|
|
|
Cependant, si au lieu de pointer vers une adresse IP, l'administrateur système le pointe vers un **service tiers via CNAME**, comme un sous-domaine G**ithub** par exemple (`sohomdatta1.github.io`). Un attaquant pourrait **créer sa propre page tierce** (dans Gihub dans ce cas) et dire que `something.testing.com` pointe là-bas. Parce que, le **CNAME wildcard** permettra à l'attaquant de **générer des sous-domaines arbitraires pour le domaine de la victime pointant vers ses pages**.
|
|
|
|
Vous pouvez trouver un exemple de cette vulnérabilité dans le rapport CTF : [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
|
|
|
|
## Exploitation d'une prise de contrôle de sous-domaine
|
|
|
|
La prise de contrôle de sous-domaine est essentiellement un spoofing DNS pour un domaine spécifique sur Internet, permettant aux attaquants de définir des enregistrements A pour un domaine, amenant les navigateurs à afficher du contenu depuis le serveur de l'attaquant. Cette **transparence** dans les navigateurs rend les domaines vulnérables au phishing. Les attaquants peuvent utiliser [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) ou [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) à cette fin. Sont particulièrement vulnérables les domaines où l'URL dans un e-mail de phishing semble légitime, trompant les utilisateurs et évitant les filtres anti-spam en raison de la confiance inhérente au domaine.
|
|
|
|
Consultez ce [post pour plus de détails](https://0xpatrik.com/subdomain-takeover/)
|
|
|
|
### **Certificats SSL**
|
|
|
|
Les certificats SSL, s'ils sont générés par des attaquants via des services comme [_Let's Encrypt_](https://letsencrypt.org/), ajoutent à la légitimité de ces faux domaines, rendant les attaques de phishing plus convaincantes.
|
|
|
|
### **Sécurité des cookies et transparence des navigateurs**
|
|
|
|
La transparence des navigateurs s'étend également à la sécurité des cookies, régie par des politiques comme la [Same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy). Les cookies, souvent utilisés pour gérer les sessions et stocker des jetons de connexion, peuvent être exploités par la prise de contrôle de sous-domaine. Les attaquants peuvent **rassembler des cookies de session** simplement en dirigeant les utilisateurs vers un sous-domaine compromis, mettant en danger les données et la vie privée des utilisateurs.
|
|
|
|
### Contournement CORS
|
|
|
|
Il pourrait être possible que chaque sous-domaine soit autorisé à accéder aux ressources CORS du domaine principal ou d'autres sous-domaines. Cela pourrait être exploité par un attaquant pour **accéder à des informations sensibles** en abusant des requêtes CORS.
|
|
|
|
### CSRF - Contournement des cookies Same-Site
|
|
|
|
Il pourrait être possible que le sous-domaine soit autorisé à envoyer des cookies au domaine ou à d'autres sous-domaines, ce qui était empêché par l'attribut `Same-Site` des cookies. Cependant, notez que les jetons anti-CSRF empêcheront toujours cette attaque s'ils sont correctement implémentés.
|
|
|
|
### Redirection des jetons OAuth
|
|
|
|
Il pourrait être possible que le sous-domaine compromis soit autorisé à être utilisé dans l'URL `redirect_uri` d'un flux OAuth. Cela pourrait être exploité par un attaquant pour **voler le jeton OAuth**.
|
|
|
|
### Contournement CSP
|
|
|
|
Il pourrait être possible que le sous-domaine compromis (ou chaque sous-domaine) soit autorisé à être utilisé par exemple dans le `script-src` du CSP. Cela pourrait être exploité par un attaquant pour **injecter des scripts malveillants** et abuser des vulnérabilités potentielles XSS.
|
|
|
|
### **E-mails et prise de contrôle de sous-domaine**
|
|
|
|
Un autre aspect de la prise de contrôle de sous-domaine concerne les services de messagerie. Les attaquants peuvent manipuler les **enregistrements MX** pour recevoir ou envoyer des e-mails depuis un sous-domaine légitime, améliorant l'efficacité des attaques de phishing.
|
|
|
|
### **Risques de niveau supérieur**
|
|
|
|
D'autres risques incluent la **prise de contrôle des enregistrements NS**. Si un attaquant prend le contrôle d'un enregistrement NS d'un domaine, il peut potentiellement diriger une partie du trafic vers un serveur sous son contrôle. Ce risque est amplifié si l'attaquant définit un **TTL (Time to Live)** élevé pour les enregistrements DNS, prolongeant la durée de l'attaque.
|
|
|
|
### Vulnérabilité des enregistrements CNAME
|
|
|
|
Les attaquants pourraient exploiter des enregistrements CNAME non revendiqués pointant vers des services externes qui ne sont plus utilisés ou ont été désactivés. Cela leur permet de créer une page sous le domaine de confiance, facilitant davantage le phishing ou la distribution de logiciels malveillants.
|
|
|
|
### **Stratégies d'atténuation**
|
|
|
|
Les stratégies d'atténuation incluent :
|
|
|
|
1. **Suppression des enregistrements DNS vulnérables** - Cela est efficace si le sous-domaine n'est plus nécessaire.
|
|
2. **Revendiquer le nom de domaine** - Enregistrer la ressource auprès du fournisseur de cloud respectif ou racheter un domaine expiré.
|
|
3. **Surveillance régulière des vulnérabilités** - Des outils comme [aquatone](https://github.com/michenriksen/aquatone) peuvent aider à identifier les domaines susceptibles. Les organisations devraient également réviser leurs processus de gestion d'infrastructure, en s'assurant que la création d'enregistrements DNS est la dernière étape dans la création de ressources et la première étape dans la destruction de ressources.
|
|
|
|
Pour les fournisseurs de cloud, vérifier la propriété du domaine est crucial pour prévenir les prises de contrôle de sous-domaine. Certains, comme [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), ont reconnu ce problème et mis en œuvre des mécanismes de vérification de domaine.
|
|
|
|
## Références
|
|
|
|
- [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}}
|