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

124 lines
10 KiB
Markdown

# Domínio/Subdomínio takeover
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus 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>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as **ferramentas comunitárias mais avançadas do mundo**.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Domínio takeover
Se você descobrir que algum domínio (domínio.tld) 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 algumas **informações sensíveis** como um cookie de sessão via parâmetro **GET** ou no cabeçalho **Referer**, isso é com certeza uma **vulnerabilidade**.
### Subdomínio takeover
Um subdomínio da empresa está apontando para um **serviço de terceiros com um nome não registrado**. Se você puder **criar** uma **conta** neste **serviço de terceiros** e **registrar** o **nome** em uso, você pode realizar o subdomínio takeover.
Existem várias ferramentas com dicionários para verificar possíveis takeovers:
* [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)
#### Verificação de Subdomínios Suscetíveis a Sequestro com [BBOT](https://github.com/blacklanternsecurity/bbot):
As verificações de subdomínio takeover estão incluídas na enumeração padrão de subdomínios do BBOT. As assinaturas são retiradas 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 Subdomínio Takeover via DNS Wildcard
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` for wildcarded 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 administrador de sistema apontar 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 **wildcard CNAME** concordará e o atacante será capaz de **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 CTF write-up: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## Explorando um subdomínio takeover
Subdomínio takeover é essencialmente um spoofing DNS para um domínio específico em toda a internet, permitindo que atacantes configurem 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. Atacantes podem empregar [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) ou [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) para esse fim. 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.
Confira 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 dos cookies, governada 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 de subdomínio takeover. Atacantes podem **coletar cookies de sessão** simplesmente direcionando usuários para um subdomínio comprometido, colocando em risco os dados e a privacidade do usuário.
### **E-mails e Subdomínio Takeover**
Outro aspecto do subdomínio takeover envolve serviços de e-mail. 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 **takeover de registros NS**. Se um atacante ganhar controle sobre um registro NS de um domínio, eles podem potencialmente direcionar uma parte do tráfego para um servidor sob seu controle. Esse risco é ampliado se o atacante definir um alto **TTL (Time to Live)** para registros DNS, prolongando a duração do ataque.
### Vulnerabilidade de Registro CNAME
Atacantes podem explorar registros CNAME não reclamados apontando para serviços externos que não são mais usados ou foram desativados. Isso lhes permite criar 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 de domínio** - Registrar o recurso com o provedor de nuvem respectivo ou recomprar um domínio expirado.
3. **Monitoramento regular de 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 etapa final 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 evitar subdomínio takeovers. 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 (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\
Tenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>