mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
82 lines
7.0 KiB
Markdown
82 lines
7.0 KiB
Markdown
# Tomada de domínio/subdomínio
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
|
|
## Tomada de domínio
|
|
|
|
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**.
|
|
|
|
### Tomada de subdomínio
|
|
|
|
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 de 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/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)
|
|
|
|
### Geração de Tomada de Subdomínio 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` 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 administrador do sistema apontá-lo para um **serviço de terceiros via CNAME**, como um subdomínio do G**ithub** 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 de DNS para um domínio específico na internet, permitindo que atacantes definam registros A para um domínio, levando 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 dos cookies, regida por políticas como a [Same-origin policy](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 de 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/)
|
|
- [https://www.stratussecurity.com/post/subdomain-takeover-guide](https://www.stratussecurity.com/post/subdomain-takeover-guide)
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|