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

126 lines
10 KiB
Markdown

# Domain/Subdomain takeover
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=domain-subdomain-takeover) para construir e **automatizar fluxos de trabalho** facilmente, impulsionados pelas **ferramentas** da **comunidade mais avançadas** do mundo.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
## Domain takeover
Se você descobrir algum domínio (domain.tld) que está **sendo usado por algum serviço dentro do escopo** mas a **empresa** perdeu a **propriedade** dele, você pode tentar **registrá-lo** (se for barato o suficiente) e informar a empresa. Se este domínio estiver recebendo alguma **informação sensível** como um cookie de sessão via **GET** parâmetro ou no cabeçalho **Referer**, isso é com certeza uma **vulnerabilidade**.
### Subdomain takeover
Um subdomínio da empresa está apontando para um **serviço de terceiros com um nome não registrado**. Se você conseguir **criar** uma **conta** neste **serviço de terceiros** e **registrar** o **nome** que está em uso, você pode realizar a tomada do subdomínio.
Existem várias ferramentas com dicionários para verificar possíveis tomadas:
* [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/m4ll0k/takeover](https://github.com/m4ll0k/takeover)
* [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)
#### Scanning for Hijackable Subdomains with [BBOT](https://github.com/blacklanternsecurity/bbot):
As verificações de tomada de subdomínio estão incluídas na enumeração de subdomínios padrão do BBOT. As assinaturas são extraídas diretamente de [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz).
```bash
bbot -t evilcorp.com -f subdomain-enum
```
### Geração de Tomada de Subdomínio via Wildcard DNS
Quando um wildcard DNS é usado em um domínio, qualquer subdomínio solicitado desse domínio que não tenha um endereço diferente explicitamente será **resolvido para as mesmas informações**. Isso pode ser um endereço IP A, um CNAME...
Por exemplo, se `*.testing.com` estiver wildcard para `1.1.1.1`. Então, `not-existent.testing.com` estará apontando para `1.1.1.1`.
No entanto, se em vez de apontar para um endereço IP, o sysadmin apontá-lo para um **serviço de terceiros via CNAME**, como um **subdomínio do github** por exemplo (`sohomdatta1.github.io`). Um atacante poderia **criar sua própria página de terceiros** (no Github neste caso) e dizer que `something.testing.com` está apontando para lá. Porque, o **CNAME wildcard** concordará que o atacante poderá **gerar subdomínios arbitrários para o domínio da vítima apontando para suas páginas**.
Você pode encontrar um exemplo dessa vulnerabilidade no write-up do CTF: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## Explorando uma Tomada de Subdomínio
A tomada de subdomínio é essencialmente um spoofing DNS para um domínio específico na internet, permitindo que atacantes definam registros A para um domínio, levando os navegadores a exibir conteúdo do servidor do atacante. Essa **transparência** nos navegadores torna os domínios propensos a phishing. Os atacantes podem empregar [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) ou [_domínios Doppelganger_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) para esse propósito. Especialmente vulneráveis são os domínios onde a URL em um e-mail de phishing parece legítima, enganando os usuários e evitando filtros de spam devido à confiança inerente do domínio.
Verifique este [post para mais detalhes](https://0xpatrik.com/subdomain-takeover/)
### **Certificados SSL**
Certificados SSL, se gerados por atacantes via serviços como [_Let's Encrypt_](https://letsencrypt.org/), aumentam a legitimidade desses domínios falsos, tornando os ataques de phishing mais convincentes.
### **Segurança de Cookies e Transparência do Navegador**
A transparência do navegador também se estende à segurança de cookies, regida por políticas como a [política de mesma origem](https://en.wikipedia.org/wiki/Same-origin_policy). Cookies, frequentemente usados para gerenciar sessões e armazenar tokens de login, podem ser explorados através da tomada de subdomínio. Os atacantes podem **coletar cookies de sessão** simplesmente direcionando os usuários para um subdomínio comprometido, colocando em risco os dados e a privacidade dos usuários.
### **E-mails e Tomada de Subdomínio**
Outro aspecto da tomada de subdomínio envolve serviços de e-mail. Os atacantes podem manipular **registros MX** para receber ou enviar e-mails de um subdomínio legítimo, aumentando a eficácia dos ataques de phishing.
### **Riscos de Ordem Superior**
Outros riscos incluem **tomada de registro NS**. Se um atacante ganhar controle sobre um registro NS de um domínio, ele pode potencialmente direcionar uma parte do tráfego para um servidor sob seu controle. Esse risco é amplificado se o atacante definir um **TTL (Time to Live)** alto para os registros DNS, prolongando a duração do ataque.
### Vulnerabilidade de Registro CNAME
Os atacantes podem explorar registros CNAME não reivindicados que apontam para serviços externos que não estão mais em uso ou foram desativados. Isso permite que eles criem uma página sob o domínio confiável, facilitando ainda mais o phishing ou a distribuição de malware.
### **Estratégias de Mitigação**
As estratégias de mitigação incluem:
1. **Remover registros DNS vulneráveis** - Isso é eficaz se o subdomínio não for mais necessário.
2. **Reivindicar o nome do domínio** - Registrar o recurso com o respectivo provedor de nuvem ou recomprar um domínio expirado.
3. **Monitoramento regular para vulnerabilidades** - Ferramentas como [aquatone](https://github.com/michenriksen/aquatone) podem ajudar a identificar domínios suscetíveis. As organizações também devem revisar seus processos de gerenciamento de infraestrutura, garantindo que a criação de registros DNS seja a última etapa na criação de recursos e a primeira etapa na destruição de recursos.
Para provedores de nuvem, verificar a propriedade do domínio é crucial para prevenir tomadas de subdomínio. Alguns, como [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), reconheceram esse problema e implementaram mecanismos de verificação de domínio.
## Referências
* [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/)
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=domain-subdomain-takeover) para construir e **automatizar fluxos de trabalho** facilmente com as **ferramentas** da comunidade **mais avançadas** do mundo.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}