Introdução
Neste laboratório, você aprenderá como usar a ferramenta dnsenum para enumeração DNS, a fim de descobrir informações críticas sobre a infraestrutura de um domínio alvo. Você praticará a instalação da ferramenta, a seleção de alvos apropriados, a execução de varreduras e a interpretação de resultados como subdomínios e registros DNS.
O laboratório oferece experiência prática em reconhecimento DNS sistemático, cobrindo a configuração da ferramenta, a verificação do alvo e a execução de comandos. Você desenvolverá habilidades essenciais para identificar vulnerabilidades de segurança por meio da análise de dados DNS.
Instalar dnsenum
Nesta etapa, você instalará a ferramenta dnsenum, que é um utilitário de enumeração DNS usado para coletar informações sobre a infraestrutura DNS de um domínio. A enumeração DNS é uma técnica fundamental de reconhecimento em segurança cibernética que ajuda a identificar possíveis superfícies de ataque. A ferramenta dnsenum automatiza o processo de descoberta de subdomínios, registros DNS (como registros A, MX, NS) e outras informações valiosas sobre a configuração de rede de um domínio alvo.
Antes de começarmos, vamos entender por que estamos usando esta estrutura de diretórios específica. O diretório ~/project é um espaço de trabalho limpo que preparamos para você manter suas ferramentas organizadas. Esta é uma boa prática em avaliações de segurança do mundo real também.
Primeiro, certifique-se de estar no diretório de trabalho padrão:
cd ~/project
O próximo comando instala Perl e vários módulos Perl dos quais dnsenum depende para funcionar corretamente. Perl é uma linguagem de script na qual dnsenum é escrito, enquanto os outros módulos fornecem funcionalidade de rede e DNS.
Instale as dependências necessárias para
dnsenum:sudo apt-get update && sudo apt-get install -y perl libnet-dns-perl libnet-netmask-perl libnet-ip-perl
Agora, faremos o download da ferramenta dnsenum real de seu repositório oficial no GitHub. O GitHub é onde os desenvolvedores compartilham projetos de código aberto como este.
Baixe
dnsenumde seu repositório oficial:git clone https://github.com/fwaeytens/dnsenum.git
Após o download, precisamos entrar no diretório dnsenum para acessar os arquivos da ferramenta. É aqui que o script principal dnsenum.pl está localizado.
Navegue para o diretório
dnsenum:cd dnsenum
Finalmente, verificaremos se a instalação foi bem-sucedida verificando o menu de ajuda. Esta é uma etapa importante com qualquer ferramenta nova - entender suas opções antes de executá-la contra alvos reais.
Verifique a instalação verificando o menu de ajuda:
perl dnsenum.pl --helpVocê deve ver as informações de uso da ferramenta e as opções disponíveis. Esta saída mostra todos os comandos e opções que você pode usar com
dnsenumpara diferentes tipos de tarefas de enumeração DNS.
Selecionar um Domínio Alvo
Nesta etapa, você selecionará um domínio alvo apropriado para enumeração DNS. A enumeração DNS é o processo de descoberta de todos os registros DNS associados a um domínio, o que ajuda os profissionais de segurança a entender a infraestrutura de um site. Escolher o alvo certo é crucial para testes de segurança éticos - sempre usamos domínios autorizados ou domínios de teste especiais como example.com.
Primeiro, certifique-se de estar no diretório de trabalho correto. É aqui que armazenaremos todos os nossos arquivos de enumeração DNS:
cd ~/project/dnsenumPara este laboratório, usaremos example.com como nosso domínio alvo. Este domínio é especificamente reservado para documentação e testes pela IANA (Internet Assigned Numbers Authority), tornando-o perfeito para aprender técnicas de enumeração DNS. Lembre-se: em avaliações de segurança reais, você deve sempre obter a autorização adequada antes de escanear qualquer domínio.
Vamos verificar se o domínio é acessível com uma pesquisa DNS básica. Este comando verifica se o nome do domínio pode ser resolvido para um endereço IP:
nslookup example.comVocê deve ver informações de resolução DNS mostrando os endereços IP do domínio. Se você receber um erro, verifique sua conexão com a internet.
Criaremos um arquivo de texto para armazenar nosso domínio alvo. Este arquivo será usado posteriormente pelo dnsenum:
echo "example.com" > target_domain.txtVisualize o conteúdo do seu arquivo alvo para confirmar se ele foi criado corretamente:
cat target_domain.txtA saída deve mostrar:
example.com. Esta etapa simples de verificação ajuda a evitar erros em etapas posteriores do processo de enumeração.
Executar Enumeração DNS
Nesta etapa, você realizará a enumeração DNS em seu domínio alvo usando a ferramenta dnsenum instalada anteriormente. A enumeração DNS é uma técnica fundamental de reconhecimento que ajuda os profissionais de segurança a mapear a infraestrutura digital de um domínio, descobrindo subdomínios, registros DNS e outras informações de rede.
Primeiro, navegue até o diretório dnsenum onde a ferramenta está localizada. Isso garante que você esteja trabalhando no local correto com todos os arquivos necessários:
cd ~/project/dnsenumExecute dnsenum em seu domínio alvo (example.com) com enumeração básica. A flag
--enumdiz à ferramenta para realizar a enumeração DNS padrão:perl dnsenum.pl --enum example.comEsta varredura básica revelará informações importantes de DNS, incluindo:
- Endereços de host (registros A mapeando domínios para IPs)
- Servidores de nomes (registros NS mostrando servidores DNS autoritativos)
- Servidores de e-mail (registros MX para infraestrutura de e-mail)
- Subdomínios comuns por meio de adivinhação por força bruta
Para resultados mais abrangentes, aprimoraremos a varredura com parâmetros adicionais. Esta varredura mais profunda é útil quando você precisa de informações completas sobre um alvo:
perl dnsenum.pl --enum -f dns.txt --threads 5 example.comEste comando avançado:
- Usa uma lista de palavras de subdomínio (dns.txt) para testar padrões de nomenclatura comuns
- Executa com 5 threads paralelas para acelerar o processo de varredura
- Realiza verificações exaustivas, incluindo pesquisas reversas e tentativas de transferência de zona
Examine cuidadosamente a saída, que exibirá:
- Subdomínios descobertos (potenciais pontos de entrada para sistemas alvo)
- Endereços IP (mostrando onde os serviços estão hospedados)
- Vários tipos de registro DNS (A, MX, NS, etc., revelando configurações de serviço)
- Tentativas de transferência de zona (testando servidores DNS mal configurados)
Revisar Subdomínios e Registros
Nesta etapa, você analisará os resultados da enumeração DNS para identificar subdomínios e vários registros DNS. A enumeração DNS é uma técnica crucial de reconhecimento que revela a estrutura da rede de um domínio. Ao examinar esses resultados, você pode entender como o domínio alvo organiza seus serviços e identificar potenciais pontos de entrada para investigação posterior.
Primeiro, navegue até o diretório de resultados do dnsenum onde seus dados de varredura são armazenados:
cd ~/project/dnsenumEste diretório contém os arquivos de saída da sua varredura de enumeração DNS anterior. Estaremos trabalhando com a saída em formato XML, que contém dados estruturados sobre o domínio.
Visualize o arquivo de saída XML da sua varredura anterior:
cat dnsenum_example.com.xmlEste comando exibe os dados XML brutos contendo todas as informações DNS coletadas. O arquivo inclui vários tipos importantes de registro DNS:
- Endereços de host (registros A) - Estes mapeiam nomes de domínio para endereços IP
- Servidores de nomes (registros NS) - Os servidores DNS autoritativos para o domínio
- Servidores de e-mail (registros MX) - Servidores responsáveis pela entrega de e-mail
- Subdomínios descobertos - Domínios adicionais sob o domínio principal
Para melhor legibilidade ao trabalhar com grandes conjuntos de resultados, você pode filtrar tipos específicos de registro:
grep -E "<host>|<a>" dnsenum_example.com.xmlEste comando grep extrai apenas as entradas de host e seus respectivos endereços IP, tornando mais fácil ver quais nomes de domínio são resolvidos para quais IPs.
Para visualizar apenas os subdomínios encontrados durante a enumeração:
grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1Este pipeline primeiro encontra todas as entradas de host e, em seguida, usa cut para extrair apenas os nomes de domínio entre as tags XML. Subdomínios podem revelar serviços adicionais ou sistemas potencialmente vulneráveis.
Examine os servidores de nomes, que são críticos para a infraestrutura DNS do domínio:
grep -A1 "<nameserver>" dnsenum_example.com.xmlA flag -A1 mostra cada entrada de servidor de nomes mais uma linha após ela, fornecendo a tag e o nome real do servidor.
Verifique os servidores de e-mail que lidam com a entrega de e-mail para o domínio:
grep -A1 "<mx>" dnsenum_example.com.xmlOs registros MX mostram a prioridade e o nome do host dos servidores de e-mail. Estes são frequentemente alvos em avaliações de segurança, pois lidam com comunicações sensíveis.
Salvar Dados da Enumeração
Nesta etapa, você salvará e organizará adequadamente seus resultados de enumeração DNS para referência futura e relatórios. A documentação adequada é essencial em avaliações de segurança cibernética, pois ajuda a manter registros, rastrear descobertas e compartilhar resultados com os membros da equipe.
Primeiro, certifique-se de estar no diretório correto onde seus arquivos de saída do dnsenum estão localizados. Isso é importante porque todos os comandos subsequentes funcionarão com arquivos neste diretório:
cd ~/project/dnsenumCrie um diretório com carimbo de data/hora para seus resultados. Usar datas nos nomes dos diretórios ajuda a organizar várias varreduras cronologicamente. A flag
-pcria diretórios pai se eles não existirem:mkdir -p results/$(date +%Y-%m-%d)Copie todos os arquivos relevantes para o diretório de resultados. Aqui, estamos movendo especificamente o arquivo de saída XML do dnsenum para nosso local de armazenamento organizado:
cp dnsenum_example.com.xml results/$(date +%Y-%m-%d)/Crie um relatório de resumo legível por humanos. Este script extrai informações-chave do arquivo XML e as formata em um relatório de texto simples. Os comandos
grepfiltram dados específicos, enquanto os comandoscutextraem apenas as partes relevantes entre as tags XML:{ echo "Relatório de Enumeração DNS - $(date)" echo "==============================" echo -e "\nSubdomínios Encontrados:" grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1 echo -e "\nServidores de Nomes:" grep -A1 "<nameserver>" dnsenum_example.com.xml | grep "<host>" | cut -d'>' -f2 | cut -d'<' -f1 } > results/$(date +%Y-%m-%d)/report.txtVerifique seus arquivos salvos para confirmar se tudo foi copiado corretamente. O comando
ls -lmostra informações detalhadas do arquivo, incluindo permissões e carimbos de data/hora:ls -l results/$(date +%Y-%m-%d)/Comprima os resultados para facilitar o compartilhamento. O comando tar agrupa os arquivos, enquanto a compressão gzip (a opção z) reduz o tamanho do arquivo para transferência:
tar -czvf example.com_enum_results.tar.gz results/$(date +%Y-%m-%d)/
Resumo
Neste laboratório, você aprendeu como conduzir a enumeração DNS usando a ferramenta dnsenum para fins de segurança cibernética. O processo abordou a instalação da ferramenta, a verificação da acessibilidade do domínio e a realização de pesquisas DNS básicas, enfatizando as considerações éticas.
Você praticou etapas essenciais, incluindo a clonagem do repositório, a navegação no diretório e a verificação da instalação por meio do menu de ajuda. O laboratório demonstrou a configuração adequada da ferramenta e técnicas de validação do alvo usando example.com como um domínio de prática segura.



