Saltar al contenido principal

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

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 IPv4
  • AAAA - Dirección IPv6
  • MX - Servidores de correo
  • NS - Servidores de nombres
  • TXT - 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:

  1. ¿Cuáles son los servidores de correo (MX) de example.com?
  2. ¿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ándar
  • axfr - Transferencia de zona
  • bing - Búsqueda en Bing
  • zonewalk - 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:

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

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

    • Lista de subdominios (subdomains.txt)
    • Resultados completos de dnsenum
    • Exportación de amass
  4. Análisis de seguridad (2 páginas):

    • Riesgos identificados
    • Impacto potencial
    • Recomendaciones de securización DNS

Criterios de Evaluación​

CriterioPuntos
Dominio de consultas DNS (nslookup, dig)20%
Uso de herramientas de enumeración25%
Descubrimiento de subdominios20%
Análisis de configuración y vulnerabilidades20%
Calidad del informe y recomendaciones15%

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:

  1. DNS revela mucha información sobre la infraestructura
  2. Transferencias de zona mal configuradas = divulgación completa
  3. Subdominios de dev/prueba suelen estar menos securizados
  4. Los registros TXT pueden contener información sensible
  5. 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