Resumo para quem tem 30 segundos
- Certificate Transparency entrega o melhor custo-benefício inicial, mas ignora tudo que nunca teve certificado.
- Bruteforce de DNS só rende com wordlist derivada do próprio ambiente do cliente.
- Sem resolução, verificação de vida e deduplicação, a lista de subdomínios é um passivo, não um inventário.
Enumerar subdomínios é a tarefa mais repetida do reconhecimento e também a mais mal executada. O erro comum é medir sucesso pelo tamanho da lista. Uma lista de 12 mil nomes com 80% de registros mortos atrasa a operação inteira e enche o painel de ruído.
Fontes passivas
| Fonte | Cobertura | Ruído | Melhor uso |
|---|---|---|---|
| Certificate Transparency | Alta | Médio | Base inicial e detecção de nomes internos vazados |
| DNS passivo histórico | Média | Alto | Achar infraestrutura desativada e takeover |
| Motores de busca e arquivos | Baixa | Baixo | Descobrir hosts referenciados em conteúdo público |
| Registros ASN e WHOIS | Média | Baixo | Expandir para faixas de IP e domínios irmãos |
| Repositórios públicos | Baixa | Médio | Ambientes de homologação citados em código e CI |
CT logs são o ponto de partida óbvio porque qualquer host com TLS público deixa rastro. O ponto cego é igualmente óbvio: hosts sem certificado emitido publicamente, wildcard que esconde o nome real, e infraestrutura interna exposta por engano em IP sem nome.
Fontes ativas
- Bruteforce de DNS com wordlist genérica: barato, previsível e com retorno decrescente rápido.
- Bruteforce com wordlist contextual, derivada de nomes já descobertos, do produto e do vocabulário da empresa: retorno muito maior.
- Permutação de nomes conhecidos (api, api2, api-dev, api-stg) para achar variantes de ambiente.
- Varredura de faixas de IP próprias com inspeção de certificado e cabeçalho de host virtual.
Wildcard e falso positivo
Antes de qualquer bruteforce, teste um nome aleatório improvável. Se ele resolver, o domínio tem wildcard e toda a sua lista precisa de verificação de conteúdo, não apenas de resolução.
Pipeline de deduplicação que usamos
- 1Normalização: minúsculas, remoção de ponto final, expansão de IDN.
- 2Resolução: A, AAAA e CNAME com múltiplos resolvers para descartar envenenamento e timeout.
- 3Agrupamento por destino: nomes que apontam para o mesmo IP e devolvem a mesma resposta viram um único ativo lógico.
- 4Fingerprint de resposta: hash do corpo, título e cabeçalhos para detectar páginas padrão de hospedagem.
- 5Classificação: produção, homologação, parado, potencial takeover, terceiro.
# checagem rápida de wildcard antes de enumerar
for i in 1 2 3; do
dig +short "$(openssl rand -hex 6).exemplo.com.br"
doneSubdomain takeover: o achado que ainda paga a conta
Todo inventário maduro encontra CNAMEs apontando para serviços desprovisionados. O padrão é sempre o mesmo: um time criou um ambiente em um SaaS, o registro DNS ficou, o recurso foi deletado. A verificação precisa comparar o CNAME com a assinatura de erro do provedor, e não apenas concluir pelo NXDOMAIN.
1 em 9
perímetros analisados tinham ao menos um CNAME órfão explorável
73%
dos nomes descobertos por CT já estavam fora de operação
4x
ganho de achados úteis usando wordlist contextual
Como saber se sua enumeração está boa
- Taxa de nomes vivos acima de 40% da lista final.
- Cada ativo tem dono, ambiente e criticidade atribuídos, não só um nome.
- Novos nomes aparecem no inventário em horas, não em ciclos de projeto.
- Nomes que somem são marcados como desativados, com histórico preservado para investigação.
