Parte: 1 — Redes y seguridad de redes · Fuente: RFC 1034/1035, RFC 4033 (DNSSEC); docs de BIND y iodine ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Estudiar la seguridad del DNS: cómo se falsifican respuestas (cache poisoning, spoofing), cómo DNSSEC garantiza integridad y autenticidad, y cómo el DNS se abusa como canal encubierto (tunneling y exfiltración). El alumno aprenderá a detectar y mitigar estos abusos.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Resolución DNS y jerarquía | Dónde está la confianza |
| 2 | Spoofing y cache poisoning | Redirigir víctimas |
| 3 | Ataque de Kaminsky | Clásico que motivó DNSSEC |
| 4 | DNSSEC (RRSIG, DNSKEY, DS) | Integridad y autenticidad |
| 5 | DNS tunneling y exfiltración | Canal encubierto de C2 |
| 6 | DoT / DoH | Confidencialidad del DNS |
| 7 | Detección y filtrado | Defensa práctica |
⚠️ Nota ética: el cache poisoning y el DNS tunneling son técnicas ofensivas (redirección de víctimas, canales de C2, exfiltración). Practícalas solo en tu laboratorio aislado. Usarlas contra infraestructura ajena es ilegal y puede facilitar fraude y robo de datos.
bash
dig +trace example.com
bash
dig +dnssec example.com
delv example.com # muestra "fully validated" si la cadena es correcta
auto-trust-anchor-file apuntando a la raíz y verifica que rechaza respuestas manipuladas.iodined en un dominio de pruebas y conecta el cliente iodine; observa el túnel encapsulado en consultas.bash
tshark -r dns.pcapng -Y 'dns.qry.name' -T fields -e dns.qry.name | awk '{ print length, $0 }' | sort -rn | head
Nombres largos, alta entropía y muchas consultas TXT/NULL son sospechosos.
dig +dnssec sobre un dominio firmado y uno sin firmar; identifica los registros RRSIG.dns.log) y qué campos ayudan a detectar tunneling.Monta un resolver con validación DNSSEC y demuestra que rechaza una respuesta falsificada que un resolver sin validación aceptaría (usa dos dominios/servidores de laboratorio). Adicionalmente, genera tráfico de DNS tunneling en tu laboratorio y entrega un método reproducible (comando/consulta) que lo detecte por longitud o entropía de los nombres.
Criterio de aceptación: el resolver validante marca la respuesta manipulada como bogus mientras el no validante la acepta; y tu método de detección señala correctamente el tráfico de túnel frente al DNS legítimo.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
dig +dnssec no muestra RRSIG |
El dominio no está firmado o el resolver no reenvía DNSSEC; usa uno que lo soporte |
delv devuelve "insecure" |
El dominio no tiene cadena de confianza; es esperado en dominios sin firmar |
| DNSSEC "bogus" en dominios legítimos | Trust anchor desactualizado o reloj desincronizado; actualiza el ancla y sincroniza NTP |
| iodine no levanta el túnel | Registros NS/A del dominio de delegación mal configurados; revisa la delegación |
| No detectas el tunneling | Solo miras el tamaño; combina longitud, entropía, tipo de registro y frecuencia |
❓ ¿DNSSEC cifra mis consultas DNS? No. DNSSEC garantiza integridad y autenticidad (que la respuesta no fue alterada y proviene de quien dice), pero las consultas siguen viajando en claro. Para confidencialidad usa DoT o DoH.
❓ ¿Por qué el DNS es un buen canal de exfiltración? Porque casi todas las redes permiten DNS saliente y pocas lo inspeccionan a fondo. Codificando datos en subdominios se crea un canal que atraviesa muchos firewalls.
❓ ¿DoH mejora o empeora la seguridad? Mejora la privacidad frente a observadores, pero dificulta el filtrado y monitoreo corporativo del DNS. Es un equilibrio: bueno para el usuario, reto para el defensor.
❓ ¿Cómo detecto DNS tunneling sin DNSSEC ni DoH? Analizando patrones: nombres muy largos, alta aleatoriedad (entropía), tipos de registro inusuales (TXT/NULL) y volumen anómalo de consultas a un mismo dominio.
Clase 040 — Man-in-the-Middle: técnicas y defensa