dnsmap - Enumeração de Subdomínios via DNS
O dnsmap é uma ferramenta de enumeração de subdomínios baseada em força bruta de DNS. Lançada originalmente em 2006 por Gonzalo N-Baron (pagvac), ela recebe um domínio como alvo e, a partir de uma lista de nomes possíveis (wordlist), tenta resolver cada combinação via DNS para descobrir quais subdomínios realmente existem.
A enumeração de subdomínios é uma etapa central na fase de reconhecimento, pois expande o mapa da infraestrutura de um alvo. Um único domínio como example.com pode esconder dezenas de subdomínios — mail.example.com, vpn.example.com, dev.example.com, admin.example.com — e cada um deles pode representar um serviço, um servidor ou uma aplicação diferente. Descobrir esses nomes revela pontos de entrada que não estão visíveis a partir do site principal.
Ao contrário de técnicas passivas que apenas consultam registros públicos, o dnsmap trabalha de forma ativa: ele gera nomes de subdomínios e verifica, um a um, se resolvem para um endereço IP válido.
Instalação
Section titled “Instalação”Debian / Ubuntu / Kali Linux
Section titled “Debian / Ubuntu / Kali Linux”Em distribuições baseadas em Debian, o dnsmap está disponível diretamente nos repositórios oficiais:
sudo apt updatesudo apt install dnsmapInstalação a partir do código-fonte
Section titled “Instalação a partir do código-fonte”O dnsmap é escrito em C e distribuído como um único arquivo-fonte, o que torna a compilação bastante simples. Após obter o código-fonte de um repositório mantido (como forks disponíveis no GitHub):
# Instalar as ferramentas de compilação (Debian/Ubuntu)sudo apt install build-essential
# Dentro do diretório do código-fontemake
# Ou compilando diretamente com o gccgcc -O3 -o dnsmap dnsmap.cVerificando a instalação
Section titled “Verificando a instalação”Executar o dnsmap sem argumentos exibe a versão e a sintaxe de uso:
dnsmapComo Funciona a Wordlist
Section titled “Como Funciona a Wordlist”O desempenho e a abrangência da enumeração dependem diretamente da wordlist utilizada. O dnsmap já inclui uma lista interna de subdomínios comuns, o que permite executá-lo sem nenhuma lista externa. No entanto, para resultados mais completos, é recomendável fornecer uma wordlist própria e mais robusta.
A ferramenta também costuma acompanhar arquivos auxiliares, como listas de combinações de três letras (TLAs — Three-Letter Acronyms), úteis para descobrir subdomínios curtos e não óbvios.
Uso Básico
Section titled “Uso Básico”A sintaxe fundamental do dnsmap é:
dnsmap <domínio-alvo> [opções]A forma mais simples utiliza a wordlist interna da ferramenta:
dnsmap example.comDurante a execução, o dnsmap exibe cada subdomínio encontrado junto com o endereço IP para o qual ele resolve:
[+] searching (sub)domains for example.com using built-in wordlist
mail.example.comIP address #1: 93.184.216.34
www.example.comIP address #1: 93.184.216.34
[+] 2 (sub)domains and 2 IP address(es) foundOpções
Section titled “Opções”O dnsmap possui um conjunto enxuto e direto de opções:
| Opção | Descrição |
|---|---|
-w <wordlist> | Utiliza uma wordlist personalizada em vez da lista interna |
-r <arquivo> | Salva os resultados em um arquivo de texto comum |
-c <arquivo> | Salva os resultados em formato CSV (útil para planilhas e processamento) |
-d <milissegundos> | Define um atraso entre as requisições, em milissegundos |
-i <ips> | Ignora os IPs informados (útil para eliminar falsos positivos) |
Usando uma wordlist personalizada
Section titled “Usando uma wordlist personalizada”dnsmap example.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txtSalvando os resultados
Section titled “Salvando os resultados”# Salvar em arquivo de textodnsmap example.com -r resultados.txt
# Salvar em formato CSVdnsmap example.com -c resultados.csvAdicionando atraso entre as requisições
Section titled “Adicionando atraso entre as requisições”Um atraso reduz a intensidade da varredura, tornando-a mais discreta e menos propensa a sobrecarregar servidores DNS:
# Atraso de 3000 ms (3 segundos) entre as consultasdnsmap example.com -d 3000Lidando com Falsos Positivos (Wildcard DNS)
Section titled “Lidando com Falsos Positivos (Wildcard DNS)”Alguns domínios utilizam wildcard DNS, uma configuração em que qualquer subdomínio — mesmo inexistente — resolve para um mesmo endereço IP. Nesses casos, o dnsmap pode reportar dezenas de subdomínios “encontrados” que, na verdade, não existem de forma independente.
A opção -i permite instruir o dnsmap a ignorar determinados IPs, eliminando esses falsos positivos. Se você perceber que muitos subdomínios apontam para o mesmo IP genérico, basta informá-lo:
# Ignorar o IP associado ao wildcarddnsmap example.com -i 93.184.216.34Exemplo de Fluxo Completo
Section titled “Exemplo de Fluxo Completo”Um fluxo típico de enumeração combina uma boa wordlist, atraso entre consultas e registro dos resultados. Suponha que você precise mapear os subdomínios de um domínio autorizado e documentar os achados:
# 1. Enumeração completa com wordlist externa, atraso e saída em CSVdnsmap example.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -d 1000 -c subdominios.csv
# 2. Enumeração rápida com a wordlist interna, salvando em textodnsmap example.com -r resultado_rapido.txt
# 3. Nova varredura filtrando o IP de wildcard identificadodnsmap example.com -i 93.184.216.34 -r resultado_filtrado.txtCom a lista de subdomínios e seus respectivos IPs em mãos, você terá um mapa da infraestrutura pública do alvo. Esse mapa serve de base para as etapas seguintes — como identificar quais serviços rodam em cada host e investigar as tecnologias de cada aplicação (por exemplo, com o WhatWeb, abordado anteriormente nesta seção).
Considerações Finais
Section titled “Considerações Finais”O dnsmap é uma ferramenta leve, simples e eficaz para a enumeração de subdomínios por força bruta. Por depender apenas de consultas DNS, é rápido e de baixo custo computacional. Sua principal limitação é justamente a natureza de força bruta: ele só encontra subdomínios que estejam na wordlist utilizada — daí a importância de escolher listas bem elaboradas.
Como sempre, a enumeração de subdomínios deve ser conduzida de forma ética e autorizada. Do ponto de vista defensivo, executar essa análise sobre a própria infraestrutura é extremamente útil: revela subdomínios esquecidos, ambientes de teste expostos e serviços que talvez não devessem estar publicamente acessíveis.