Lab 5.2: Enumeração DNS Avançada
Objetivos de Aprendizagem
Ao final deste laboratório, você será capaz de:
- Compreender o papel do DNS na segurança de redes
- Realizar consultas DNS de diferentes tipos (A, MX, NS, TXT, etc.)
- Descobrir subdomínios ocultos
- Tentar transferências de zona DNS
- Identificar vazamentos de informações via DNS
- Utilizar ferramentas automatizadas de enumeração DNS
- Analisar a configuração DNS para identificar vulnerabilidades
- Aplicar medidas de segurança em DNS
Duração Estimada
35 minutos
Pré-requisitos
- VM Windows e/ou Kali Linux
- Acesso à Internet (para este lab, usaremos domínios de teste legais)
- Compreensão do sistema DNS (aula teórica)
- Lab 5.1 (Nmap) concluído
Contexto Profissional
A enumeração DNS é uma etapa crítica em reconhecimento passivo. Ela permite:
- Descobrir a infraestrutura de uma organização
- Identificar servidores e serviços expostos inadvertidamente
- Encontrar subdomínios de desenvolvimento/teste
- Coletar endereços de e-mail para phishing direcionado
- Mapear a arquitetura de rede
- Identificar configurações incorretas
Utilizado por:
- Pentesters durante reconhecimento
- Bug bounty hunters para encontrar ativos
- Administradores para auditoria de sua própria infraestrutura
- Atacantes para identificar alvos
AVISO ÉTICO E LEGAL
Enumeração DNS excessiva ou direcionada pode ser considerada reconhecimento malicioso.
PERMITIDO:
- Em seus próprios domínios
- Em domínios públicos de teste (example.com, testphp.vulnweb.com)
- No contexto de bug bounty com autorização
- Para auditoria de segurança com contrato
PROIBIDO:
- Enumeração massiva de domínios sem permissão
- Escanear infraestruturas governamentais ou militares
- Utilizar para direcionar ataques
- Brute force agressivo causando negação de serviço
NOTA: Usaremos apenas domínios de teste legais neste lab.
Parte 1: Consultas DNS Básicas
Etapa 1.1: Comando nslookup
Consulta DNS simples:
nslookup example.com
Resultado:
Server: dns.google
Address: 8.8.8.8
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
Informações obtidas:
- Servidor DNS utilizado
- Endereço IP do domínio
Consulta de tipo específico:
nslookup -type=MX example.com
Tipos comuns:
A- Endereço IPv4AAAA- Endereço IPv6MX- Servidores de e-mailNS- Servidores de nomesTXT- Registros de texto (SPF, DKIM, etc.)CNAME- Nome canônico (alias)SOA- Start of Authority
Etapa 1.2: Comando dig (Linux)
Mais poderoso que nslookup:
dig example.com
Consulta de tipo específico:
dig example.com MX
dig example.com NS
dig example.com TXT
dig example.com ANY
Opção ANY: Todos os tipos de registros (às vezes limitado por servidores DNS)
Servidor DNS específico:
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
Perguntas:
- Quais são os servidores de e-mail (MX) de example.com?
- Quais são os name servers (NS)?
Etapa 1.3: Registros TXT e Vazamentos de Informações
Os registros TXT frequentemente contêm informações sensíveis:
dig example.com TXT
Informações normalmente encontradas:
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. 3600 IN TXT "google-site-verification=xxxxxx"
Pode revelar:
- Serviços utilizados (Google Workspace, Microsoft 365)
- Configurações de segurança (SPF, DKIM, DMARC)
- Verificações de domínio
- Às vezes: informações internas não intencionais
Perguntas: 3. Quais serviços a organização utiliza (baseado nos registros TXT)? 4. Há informações sensíveis nos registros TXT?
Parte 2: Transferência de Zona DNS
Etapa 2.1: Entendendo Transferências de Zona
Zone Transfer (AXFR):
- Mecanismo legítimo para replicar DNS entre servidores
- Deve ser restrito a servidores secundários autorizados
- Se mal configurado: Permite fazer dump de TODA a zona DNS!
Resultado de uma transferência bem-sucedida:
- Lista COMPLETA de todos os subdomínios
- Todos os endereços IP
- Toda a configuração DNS
É como obter a lista telefônica completa da organização!
Etapa 2.2: Tentando uma Transferência de Zona
Com dig:
dig axfr @ns1.example.com example.com
Resultado se vulnerável:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. ...
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.com.
www.example.com. 3600 IN A 93.184.216.34
mail.example.com. 3600 IN A 93.184.216.35
ftp.example.com. 3600 IN A 93.184.216.36
admin.example.com. 3600 IN A 192.168.1.50
dev.example.com. 3600 IN A 192.168.1.100
test.example.com. 3600 IN A 10.0.0.50
...
JACKPOT! Todos os subdomínios revelados, incluindo internos!
Resultado se protegido:
; Transfer failed.
Com nslookup (Windows):
nslookup
server ns1.example.com
ls -d example.com
Etapa 2.3: Identificar os Name Servers
Antes de tentar transferência, identifique os NS:
dig example.com NS
Resultado:
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.com.
Tente transferência em cada um:
dig axfr @ns1.example.com example.com
dig axfr @ns2.example.com example.com
Às vezes um servidor está mal configurado, mas o outro não!
Perguntas: 5. A transferência de zona foi bem-sucedida? 6. Quantos subdomínios você descobriu?
Parte 3: Descoberta de Subdomínios
Etapa 3.1: Brute Force de Subdomínios
Wordlist de subdomínios comuns:
Crie subdomains.txt:
www
mail
ftp
admin
webmail
portal
vpn
remote
dev
test
staging
api
Script bash simples:
#!/bin/bash
DOMAIN=$1
WORDLIST="subdomains.txt"
while read subdomain; do
result=$(host "$subdomain.$DOMAIN" 2>/dev/null)
if [[ $result != *"not found"* ]]; then
echo "[+] Found: $subdomain.$DOMAIN"
echo "$result"
fi
done < $WORDLIST
Uso:
chmod +x subdomain_enum.sh
./subdomain_enum.sh example.com
Etapa 3.2: Ferramentas Automatizadas
dnsenum (pré-instalado no Kali):
dnsenum example.com
Funcionalidades:
- Tentativa de transferência de zona
- Brute force de subdomínios
- Resolução reversa (registros PTR)
- Google scraping para subdomínios
Exemplo de resultado:
dnsenum VERSION:1.2.6
----- example.com -----
Host's addresses:
__________________
example.com. 93.184.216.34
Name Servers:
______________
ns1.example.com. 199.43.135.53
ns2.example.com. 199.43.133.53
Brute forcing with subdomains.txt:
___________________________________
www.example.com. 93.184.216.34
mail.example.com. 93.184.216.35
ftp.example.com. 93.184.216.36
subfinder (ferramenta moderna):
# Instalação
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# Uso
subfinder -d example.com
Utiliza múltiplas fontes:
- APIs de busca
- Certificados SSL (crt.sh)
- Arquivos de web archive
- Motores de busca
Etapa 3.3: Certificados SSL para Subdomínios
Certificados SSL frequentemente revelam subdomínios!
Busca manual no crt.sh:
curl -s "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -u
Resultado:
*.example.com
www.example.com
mail.example.com
api.example.com
staging.example.com
Subdomínios descobertos via certificados SSL!
Perguntas: 7. Quantos subdomínios você encontrou com dnsenum? 8. Alguns subdomínios parecem ser de desenvolvimento/teste?
Parte 4: Enumeração Reversa (Reverse DNS)
Etapa 4.1: Resolução Reversa (Registros PTR)
A partir de um IP, encontrar o nome de domínio:
nslookup 93.184.216.34
OU
dig -x 93.184.216.34
Resultado:
34.216.184.93.in-addr.arpa name = example.com.
Etapa 4.2: Scan de Faixa de IP para PTR
Script para escanear uma faixa:
#!/bin/bash
NETWORK="93.184.216"
for i in {1..254}; do
IP="$NETWORK.$i"
PTR=$(dig -x $IP +short 2>/dev/null)
if [ ! -z "$PTR" ]; then
echo "$IP -> $PTR"
fi
done
Resultado: Lista de todos os domínios hospedados nesta faixa de IP!
Útil para:
- Identificar todos os sites de uma mesma organização
- Descobrir domínios não publicizados
- Mapear a infraestrutura
Perguntas: 9. Quantos domínios estão hospedados na mesma faixa de IP? 10. Por que a resolução reversa é útil em reconhecimento?
Parte 5: Análise de Configuração DNS
Etapa 5.1: Identificar os Servidores DNS Autoritativos
dig example.com NS +trace
Resultado mostra a hierarquia completa:
. Root servers
com. TLD servers
example.com. Authoritative servers
Veja a delegação completa desde a raiz!
Etapa 5.2: Verificação SPF/DMARC
SPF (Sender Policy Framework):
dig example.com TXT | grep spf
Análise:
"v=spf1 include:_spf.google.com ~all"
~all= SoftFail (aceita mas marca como suspeito)-all= HardFail (rejeita)+all= Aceita tudo (PERIGOSO!)
DMARC:
dig _dmarc.example.com TXT
Se mal configurado: Phishing facilitado!
Etapa 5.3: Cache DNS Poisoning (Demonstração)
Na sua VM local (não na Internet!):
Arquivo hosts local:
notepad C:\Windows\System32\drivers\etc\hosts
Adicione:
192.168.100.50 facebook.com
192.168.100.50 google.com
Salve e teste:
ping facebook.com
Resultado: Ping para 192.168.100.50 em vez do IP real!
Aplicação: Phishing local, redirecionamento de tráfego
Perguntas: 11. O arquivo hosts contorna o DNS? 12. Como um atacante poderia explorar isso?
Parte 6: Ferramentas de Enumeração Avançadas
Etapa 6.1: fierce (DNS Scanner)
fierce --domain example.com
Funcionalidades:
- Transferência de zona
- Brute force de subdomínios
- Scan de faixas de IP próximas
- Resolução reversa
Etapa 6.2: dnsrecon
dnsrecon -d example.com -t std
Opções de scan (-t):
std- Padrãoaxfr- Transferência de zonabing- Busca Bingzonewalk- DNSSEC zone walking
Scan completo:
dnsrecon -d example.com -t std,axfr,bing,zonewalk -n ns1.example.com
Etapa 6.3: amass (O mais completo)
amass enum -d example.com
Fontes utilizadas:
- Múltiplas APIs
- Scraping web
- Certificados SSL
- Arquivos de archive
- Brute force DNS
Output detalhado:
amass enum -d example.com -o subdomains.txt -v
Resultado típico: 50-500+ subdomínios descobertos!
Perguntas: 13. Qual ferramenta encontrou mais subdomínios? 14. Alguns subdomínios parecem estar expostos inadvertidamente?
Parte 7: Exploração de Configurações DNS
Etapa 7.1: DNS Cache Snooping
Verificar se um servidor DNS resolveu certos domínios:
nmap --script dns-cache-snoop --script-args 'dns-cache-snoop.mode=timed,dns-cache-snoop.domains={google.com,facebook.com,internalsite.local}' <DNS_SERVER>
Se o servidor já resolveu esses domínios: Está no cache!
Revela: Quais sites a organização visita
Etapa 7.2: DNS Zone Walking (DNSSEC)
Se DNSSEC mal configurado:
dnsrecon -d example.com -t zonewalk
Permite enumerar TODOS os registros mesmo sem transferência de zona!
Etapa 7.3: Subdomain Takeover
Identificar subdomínios apontando para serviços inexistentes:
dig admin.example.com
Se o CNAME aponta para:
admin.example.com CNAME old-service.azurewebsites.net
E old-service.azurewebsites.net não existe mais:
O atacante pode:
- Criar
old-service.azurewebsites.net - Controlar
admin.example.com - Phishing, roubo de sessões, etc.
Detecção automatizada:
subzy run --target subdomains.txt
Perguntas: 15. Você encontrou subdomínios com CNAME para serviços de terceiros? 16. Como verificar se um subdomínio é vulnerável a takeover?
Entregáveis
A entregar:
-
Relatório de enumeração DNS (Word/PDF, 3-4 páginas):
- Respostas às 16 perguntas
- Metodologia de enumeração utilizada
- Lista completa dos subdomínios descobertos
- Análise da configuração DNS
- Vulnerabilidades identificadas
-
Capturas de tela (mínimo 6):
- Consultas nslookup/dig de diferentes tipos
- Tentativa de transferência de zona
- Resultados do dnsenum
- Output do subfinder ou amass
- Análise de registros TXT
- Identificação de misconfiguration
-
Arquivos de resultados:
- Lista de subdomínios (subdomains.txt)
- Resultados completos do dnsenum
- Export do amass
-
Análise de segurança (2 páginas):
- Riscos identificados
- Impacto potencial
- Recomendações de segurança DNS
Critérios de Avaliação
| Critério | Pontos |
|---|---|
| Domínio de consultas DNS (nslookup, dig) | 20% |
| Uso de ferramentas de enumeração | 25% |
| Descoberta de subdomínios | 20% |
| Análise de configuração e vulnerabilidades | 20% |
| Qualidade do relatório e recomendações | 15% |
Comandos de Referência Rápida
Windows (nslookup)
nslookup example.com
nslookup -type=MX example.com
nslookup -type=NS example.com
nslookup -type=TXT example.com
Linux (dig)
dig example.com
dig example.com MX
dig example.com ANY
dig @8.8.8.8 example.com
dig axfr @ns1.example.com example.com
Enumeração
dnsenum example.com
subfinder -d example.com
amass enum -d example.com
fierce --domain example.com
dnsrecon -d example.com -t std
Conclusão
Este lab ensinou você a:
- Consultar DNS de todos os tipos
- Transferências de zona e sua exploração
- Descoberta de subdomínios com múltiplas técnicas
- Ferramentas automatizadas de enumeração
- Análise de configuração DNS
- Identificação de vulnerabilidades DNS
Lições chave:
- DNS revela muitas informações sobre a infraestrutura
- Transferências de zona mal configuradas = divulgação completa
- Subdomínios de dev/teste frequentemente menos seguros
- Registros TXT podem conter informações sensíveis
- Enumeração passiva é difícil de detectar
Próxima etapa: Lab 5.3 ARP Spoofing e Man-in-the-Middle!
Lab desenvolvido no âmbito do curso Sistemas Operacionais - MÓDULO 5