Lab 5.2: Enumeración DNS Avanzada
Objetivos de Aprendizaje
Al final de este laboratorio, usted será capaz de:
- Comprender el rol del DNS en la seguridad de red
- Realizar consultas DNS de diferentes tipos (A, MX, NS, TXT, etc.)
- Descubrir subdominios ocultos
- Intentar transferencias de zona DNS
- Identificar fugas de información a través de DNS
- Utilizar herramientas de enumeración DNS automatizadas
- Analizar la configuración DNS para identificar vulnerabilidades
- Aplicar medidas de securización DNS
Duración Estimada
35 minutos
Prerrequisitos
- VM Windows y/o Kali Linux
- Acceso a Internet (para este laboratorio, utilizaremos dominios de prueba legales)
- Comprensión del sistema DNS (curso teórico)
- Lab 5.1 (Nmap) completado
Contexto Profesional
La enumeración DNS es una etapa crítica en el reconocimiento pasivo. Permite:
- Descubrir la infraestructura de una organización
- Identificar servidores y servicios expuestos no intencionadamente
- Encontrar subdominios de desarrollo/prueba
- Recopilar direcciones de correo electrónico para phishing dirigido
- Mapear la arquitectura de red
- Identificar configuraciones incorrectas
Utilizado por:
- Pentesters durante el reconocimiento
- Bug bounty hunters para encontrar activos
- Administradores para auditar su propia infraestructura
- Atacantes para identificar objetivos
ADVERTENCIA ÉTICA Y LEGAL
La enumeración DNS excesiva o dirigida puede ser considerada como reconocimiento malicioso.
AUTORIZADO:
- En sus propios dominios
- En dominios de prueba públicos (example.com, testphp.vulnweb.com)
- En el marco de bug bounty con autorización
- Para auditoría de seguridad con contrato
PROHIBIDO:
- Enumeración masiva de dominios sin permiso
- Escanear infraestructuras gubernamentales o militares
- Utilizar para dirigir ataques
- Brute force agresivo causando denegación de servicio
NOTA: Solo utilizaremos dominios de prueba legales en este laboratorio.
Parte 1: Consultas DNS Básicas
Paso 1.1: Comando nslookup
Consulta DNS simple:
nslookup example.com
Resultado:
Server: dns.google
Address: 8.8.8.8
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
Información obtenida:
- Servidor DNS utilizado
- Dirección IP del dominio
Consulta de tipo específico:
nslookup -type=MX example.com
Tipos comunes:
A- Dirección IPv4AAAA- Dirección IPv6MX- Servidores de correoNS- Servidores de nombresTXT- Registros de texto (SPF, DKIM, etc.)CNAME- Nombre canónico (alias)SOA- Start of Authority
Paso 1.2: Comando dig (Linux)
Más potente 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
Opción ANY: Todos los tipos de registros (a veces limitado por servidores DNS)
Servidor DNS específico:
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
Preguntas:
- ¿Cuáles son los servidores de correo (MX) de example.com?
- ¿Cuáles son los servidores de nombres (NS)?
Paso 1.3: Registros TXT y Fugas de Información
Los registros TXT a menudo contienen información sensible:
dig example.com TXT
Información encontrada típicamente:
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. 3600 IN TXT "google-site-verification=xxxxxx"
Puede revelar:
- Servicios utilizados (Google Workspace, Microsoft 365)
- Configuraciones de seguridad (SPF, DKIM, DMARC)
- Verificaciones de dominio
- A veces: información interna no intencionada
Preguntas: 3. ¿Qué servicios utiliza la organización (basado en los registros TXT)? 4. ¿Hay información sensible en los registros TXT?
Parte 2: Transferencia de Zona DNS
Paso 2.1: Comprender las Transferencias de Zona
Zone Transfer (AXFR):
- Mecanismo legítimo para replicar DNS entre servidores
- Debe estar restringido a servidores secundarios autorizados
- Si está mal configurado: ¡Permite volcar TODA la zona DNS!
Resultado de una transferencia exitosa:
- Lista COMPLETA de todos los subdominios
- Todas las direcciones IP
- Toda la configuración DNS
¡Es como obtener el directorio completo de la organización!
Paso 2.2: Intentar una Transferencia de Zona
Con dig:
dig axfr @ns1.example.com example.com
Resultado si es vulnerable:
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 los subdominios revelados, ¡incluyendo internos!
Resultado si está protegido:
; Transfer failed.
Con nslookup (Windows):
nslookup
server ns1.example.com
ls -d example.com
Paso 2.3: Identificar los Servidores de Nombres
Antes de intentar la transferencia, identificar los NS:
dig example.com NS
Resultado:
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.com.
Intentar transferencia en cada uno:
dig axfr @ns1.example.com example.com
dig axfr @ns2.example.com example.com
¡A veces un servidor está mal configurado pero el otro no!
Preguntas: 5. ¿La transferencia de zona fue exitosa? 6. ¿Cuántos subdominios ha descubierto?
Parte 3: Descubrimiento de Subdominios
Paso 3.1: Brute Force de Subdominios
Wordlist de subdominios comunes:
Cree subdomains.txt:
www
mail
ftp
admin
webmail
portal
vpn
remote
dev
test
staging
api
Script bash simple:
#!/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
Paso 3.2: Herramientas Automatizadas
dnsenum (preinstalado en Kali):
dnsenum example.com
Funcionalidades:
- Intento de transferencia de zona
- Brute force de subdominios
- Resolución inversa (registros PTR)
- Google scraping para subdominios
Resultado de ejemplo:
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 (herramienta moderna):
# Instalación
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# Uso
subfinder -d example.com
Utiliza múltiples fuentes:
- APIs de búsqueda
- Certificados SSL (crt.sh)
- Archivos web
- Motores de búsqueda
Paso 3.3: Certificados SSL para Subdominios
¡Los certificados SSL a menudo revelan subdominios!
Búsqueda manual en 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
¡Subdominios descubiertos vía certificados SSL!
Preguntas: 7. ¿Cuántos subdominios ha encontrado con dnsenum? 8. ¿Algunos subdominios parecen ser de desarrollo/prueba?
Parte 4: Enumeración Inversa (Reverse DNS)
Paso 4.1: Resolución Inversa (Registros PTR)
A partir de una IP, encontrar el nombre de dominio:
nslookup 93.184.216.34
O
dig -x 93.184.216.34
Resultado:
34.216.184.93.in-addr.arpa name = example.com.
Paso 4.2: Escaneo de Rango IP para PTR
Script para escanear un rango:
#!/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 los dominios alojados en este rango de IP!
Útil para:
- Identificar todos los sitios de una misma organización
- Descubrir dominios no publicitados
- Mapear la infraestructura
Preguntas: 9. ¿Cuántos dominios están alojados en el mismo rango de IP? 10. ¿Por qué la resolución inversa es útil en reconocimiento?
Parte 5: Análisis de Configuración DNS
Paso 5.1: Identificar los Servidores DNS Autoritativos
dig example.com NS +trace
El resultado muestra la jerarquía completa:
. Root servers
com. TLD servers
example.com. Servidores autoritativos
¡Ver la delegación completa desde la raíz!
Paso 5.2: Verificación SPF/DMARC
SPF (Sender Policy Framework):
dig example.com TXT | grep spf
Análisis:
"v=spf1 include:_spf.google.com ~all"
~all= SoftFail (acepta pero marca como sospechoso)-all= HardFail (rechaza)+all= Acepta todo (¡PELIGROSO!)
DMARC:
dig _dmarc.example.com TXT
Si está mal configurado: ¡Phishing más fácil!
Paso 5.3: Cache DNS Poisoning (Demostración)
En su VM local (no en Internet!):
Archivo hosts local:
notepad C:\Windows\System32\drivers\etc\hosts
Agregue:
192.168.100.50 facebook.com
192.168.100.50 google.com
Guarde y pruebe:
ping facebook.com
Resultado: ¡Ping hacia 192.168.100.50 en lugar de la IP real!
Aplicación: Phishing local, redirección de tráfico
Preguntas: 11. ¿El archivo hosts evita el DNS? 12. ¿Cómo podría un atacante explotar esto?
Parte 6: Herramientas de Enumeración Avanzadas
Paso 6.1: fierce (DNS Scanner)
fierce --domain example.com
Funcionalidades:
- Transferencia de zona
- Brute force de subdominios
- Escaneo de rangos IP cercanos
- Resolución inversa
Paso 6.2: dnsrecon
dnsrecon -d example.com -t std
Opciones de escaneo (-t):
std- Estándaraxfr- Transferencia de zonabing- Búsqueda en Bingzonewalk- DNSSEC zone walking
Escaneo completo:
dnsrecon -d example.com -t std,axfr,bing,zonewalk -n ns1.example.com
Paso 6.3: amass (El más completo)
amass enum -d example.com
Fuentes utilizadas:
- Múltiples APIs
- Scraping web
- Certificados SSL
- Archivos
- DNS brute force
Output detallado:
amass enum -d example.com -o subdomains.txt -v
Resultado típico: ¡50-500+ subdominios descubiertos!
Preguntas: 13. ¿Qué herramienta encontró más subdominios? 14. ¿Algunos subdominios parecen estar expuestos no intencionadamente?
Parte 7: Explotación de Configuraciones DNS
Paso 7.1: DNS Cache Snooping
Verificar si un servidor DNS ha resuelto ciertos dominios:
nmap --script dns-cache-snoop --script-args 'dns-cache-snoop.mode=timed,dns-cache-snoop.domains={google.com,facebook.com,internalsite.local}' <DNS_SERVER>
Si el servidor ya ha resuelto estos dominios: ¡En caché!
Revela: Qué sitios visita la organización
Paso 7.2: DNS Zone Walking (DNSSEC)
Si DNSSEC está mal configurado:
dnsrecon -d example.com -t zonewalk
¡Permite enumerar TODOS los registros incluso sin transferencia de zona!
Paso 7.3: Subdomain Takeover
Identificar subdominios apuntando a servicios inexistentes:
dig admin.example.com
Si CNAME apunta a:
admin.example.com CNAME old-service.azurewebsites.net
Y old-service.azurewebsites.net ya no existe:
El atacante puede:
- Crear
old-service.azurewebsites.net - Controlar
admin.example.com - Phishing, robo de sesiones, etc.
Detección automatizada:
subzy run --target subdomains.txt
Preguntas: 15. ¿Ha encontrado subdominios con CNAME hacia servicios de terceros? 16. ¿Cómo verificar si un subdominio es vulnerable a takeover?
Entregables
A entregar:
-
Informe de enumeración DNS (Word/PDF, 3-4 páginas):
- Respuestas a las 16 preguntas
- Metodología de enumeración utilizada
- Lista completa de subdominios descubiertos
- Análisis de la configuración DNS
- Vulnerabilidades identificadas
-
Capturas de pantalla (mínimo 6):
- Consultas nslookup/dig de diferentes tipos
- Intento de transferencia de zona
- Resultados de dnsenum
- Output de subfinder o amass
- Análisis de registros TXT
- Identificación de misconfiguración
-
Archivos de resultados:
- Lista de subdominios (subdomains.txt)
- Resultados completos de dnsenum
- Exportación de amass
-
Análisis de seguridad (2 páginas):
- Riesgos identificados
- Impacto potencial
- Recomendaciones de securización DNS
Criterios de Evaluación
| Criterio | Puntos |
|---|---|
| Dominio de consultas DNS (nslookup, dig) | 20% |
| Uso de herramientas de enumeración | 25% |
| Descubrimiento de subdominios | 20% |
| Análisis de configuración y vulnerabilidades | 20% |
| Calidad del informe y recomendaciones | 15% |
Comandos de Referencia 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
Enumeración
dnsenum example.com
subfinder -d example.com
amass enum -d example.com
fierce --domain example.com
dnsrecon -d example.com -t std
Conclusión
Este laboratorio le ha enseñado:
- Consultas DNS de todo tipo
- Transferencias de zona y su explotación
- Descubrimiento de subdominios con múltiples técnicas
- Herramientas de enumeración automatizadas
- Análisis de configuración DNS
- Identificación de vulnerabilidades DNS
Lecciones clave:
- DNS revela mucha información sobre la infraestructura
- Transferencias de zona mal configuradas = divulgación completa
- Subdominios de dev/prueba suelen estar menos securizados
- Los registros TXT pueden contener información sensible
- La enumeración pasiva es difícil de detectar
Próximo paso: ¡Lab 5.3 ARP Spoofing y Man-in-the-Middle!
Laboratorio desarrollado en el marco del curso Sistemas Operativos - MÓDULO 5