Pular para o conteúdo principal

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

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 IPv4
  • AAAA - Endereço IPv6
  • MX - Servidores de e-mail
  • NS - Servidores de nomes
  • TXT - 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:

  1. Quais são os servidores de e-mail (MX) de example.com?
  2. 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ão
  • axfr - Transferência de zona
  • bing - Busca Bing
  • zonewalk - 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:

  1. Criar old-service.azurewebsites.net
  2. Controlar admin.example.com
  3. 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:

  1. 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
  2. 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
  3. Arquivos de resultados:

    • Lista de subdomínios (subdomains.txt)
    • Resultados completos do dnsenum
    • Export do amass
  4. Análise de segurança (2 páginas):

    • Riscos identificados
    • Impacto potencial
    • Recomendações de segurança DNS

Critérios de Avaliação​

CritérioPontos
Domínio de consultas DNS (nslookup, dig)20%
Uso de ferramentas de enumeração25%
Descoberta de subdomínios20%
Análise de configuração e vulnerabilidades20%
Qualidade do relatório e recomendações15%

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:

  1. DNS revela muitas informações sobre a infraestrutura
  2. Transferências de zona mal configuradas = divulgação completa
  3. Subdomínios de dev/teste frequentemente menos seguros
  4. Registros TXT podem conter informações sensíveis
  5. 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