Domain/Subdomain takeover

Reading time: 7 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

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 o takeover do subdomínio.

Existem várias ferramentas com dicionários para verificar possíveis takeovers:

Subdomain Takeover Generation 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 está 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 sysadmin 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 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

Exploiting a subdomain takeover

O takeover 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 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 ou Doppelganger domains 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

SSL Certificates

Certificados SSL, se gerados por atacantes via serviços como Let's Encrypt, aumentam a legitimidade desses domínios falsos, tornando os ataques de phishing mais convincentes.

A transparência do navegador também se estende à segurança dos cookies, regida por políticas como a Same-origin policy. Cookies, frequentemente usados para gerenciar sessões e armazenar tokens de login, podem ser explorados através do takeover 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.

CORS Bypass

Pode ser possível que cada subdomínio tenha permissão para acessar recursos CORS do domínio principal ou de outros subdomínios. Isso poderia ser explorado por um atacante para acessar informações sensíveis abusando de solicitações CORS.

CSRF - Same-Site Cookies bypass

Pode ser possível que o subdomínio tenha permissão para enviar cookies para o domínio ou outros subdomínios, o que foi impedido pelo atributo Same-Site dos cookies. No entanto, note que tokens anti-CSRF ainda impedirão esse ataque se forem implementados corretamente.

OAuth tokens redirect

Pode ser possível que o subdomínio comprometido tenha permissão para ser usado na URL redirect_uri de um fluxo OAuth. Isso poderia ser explorado por um atacante para roubar o token OAuth.

CSP Bypass

Pode ser possível que o subdomínio comprometido (ou qualquer subdomínio) tenha permissão para ser usado, por exemplo, no script-src do CSP. Isso poderia ser explorado por um atacante para injetar scripts maliciosos e abusar de potenciais vulnerabilidades XSS.

Emails and Subdomain Takeover

Outro aspecto do takeover 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.

Higher Order Risks

Outros riscos incluem NS record takeover. 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.

CNAME Record Vulnerability

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.

Mitigation Strategies

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 de vulnerabilidades - Ferramentas como 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 takeovers de subdomínio. Alguns, como GitLab, reconheceram esse problema e implementaram mecanismos de verificação de domínio.

References

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks