DNS Zone Transfers
Mientras que la fuerza bruta puede ser un enfoque fructífero, existe un método menos invasivo y potencialmente más eficiente para descubrir subdominios: las transferencias de zona DNS. Este mecanismo, diseñado para replicar registros DNS entre servidores de nombres, puede convertirse inadvertidamente en una mina de oro de información para ojos curiosos si está mal configurado.
¿Qué es una transferencia de zona?
Una transferencia de zona DNS es esencialmente una copia completa de todos los registros DNS dentro de una zona (un dominio y sus subdominios) de un servidor de nombres a otro. Este proceso es esencial para mantener la consistencia y la redundancia en los servidores DNS. Sin embargo, si no está adecuadamente asegurado, las partes no autorizadas pueden descargar el archivo completo de la zona, revelando una lista completa de subdominios, sus direcciones IP asociadas y otros datos sensibles de DNS.
Zone Transfer Request (AXFR)
: El servidor DNS secundario inicia el proceso enviando una solicitud de transferencia de zona al servidor primario. Esta solicitud generalmente utiliza el tipo AXFR (Transferencia Completa de Zona).SOA Record Transfer
: Al recibir la solicitud (y posiblemente autenticar el servidor secundario), el servidor primario responde enviando su registro Start of Authority (SOA). El registro SOA contiene información vital sobre la zona, incluido su número de serie, que ayuda al servidor secundario a determinar si sus datos de zona están actualizados.DNS Records Transmission
: El servidor primario luego transfiere todos los registros DNS en la zona al servidor secundario, uno por uno. Esto incluye registros como A, AAAA, MX, CNAME, NS y otros que definen los subdominios del dominio, los servidores de correo, los servidores de nombres y otras configuraciones.Zone Transfer Complete
: Una vez que se han transmitido todos los registros, el servidor primario señala el final de la transferencia de zona. Esta notificación informa al servidor secundario que ha recibido una copia completa de los datos de la zona.Acknowledgement (ACK)
: El servidor secundario envía un mensaje de reconocimiento al servidor primario, confirmando la recepción y el procesamiento exitosos de los datos de la zona. Esto completa el proceso de transferencia de zona.
La vulnerabilidad de la transferencia de zona
Si bien las transferencias de zona son esenciales para la gestión legítima de DNS, un servidor DNS mal configurado puede transformar este proceso en una vulnerabilidad de seguridad significativa. El problema central radica en los controles de acceso que gobiernan quién puede iniciar una transferencia de zona.
En los primeros días de internet, permitir que cualquier cliente solicitara una transferencia de zona de un servidor DNS era una práctica común. Este enfoque abierto simplificaba la administración, pero abrió un gran agujero de seguridad. Significaba que cualquiera, incluidos los actores maliciosos, podía pedir a un servidor DNS una copia completa de su archivo de zona, que contiene una gran cantidad de información sensible.
La información obtenida de una transferencia de zona no autorizada puede ser invaluable para un atacante. Revela un mapa completo de la infraestructura DNS del objetivo, incluidos:
Subdomains
: Una lista completa de subdominios, muchos de los cuales podrían no estar vinculados desde el sitio web principal o ser fácilmente descubribles por otros medios. Estos subdominios ocultos podrían albergar servidores de desarrollo, entornos de pruebas, paneles administrativos u otros recursos sensibles.IP Addresses
: Las direcciones IP asociadas con cada subdominio, proporcionando posibles objetivos para un reconocimiento o ataques adicionales.Name Server Records
: Detalles sobre los servidores de nombres autoritativos para el dominio, revelando el proveedor de alojamiento y posibles errores de configuración.
Remediación
Afortunadamente, la conciencia sobre esta vulnerabilidad ha crecido y la mayoría de los administradores de servidores DNS han mitigado el riesgo. Los servidores DNS modernos generalmente están configurados para permitir transferencias de zona solo a servidores secundarios de confianza, asegurando que los datos sensibles de la zona permanezcan confidenciales.
Sin embargo, aún pueden ocurrir errores de configuración debido a errores humanos o prácticas desactualizadas. Por esta razón, intentar una transferencia de zona (con la debida autorización) sigue siendo una técnica valiosa de reconocimiento. Incluso si no tiene éxito, el intento puede revelar información sobre la configuración y la postura de seguridad del servidor DNS.
Explotación de Transferencias de Zona
Puedes usar el comando dig
para solicitar una transferencia de zona:
dig axfr @nsztm1.digi.ninja zonetransfer.me
Este comando instruye a dig
a solicitar una transferencia completa de zona (axfr
) del servidor DNS responsable de zonetransfer.me
. Si el servidor está mal configurado y permite la transferencia, recibirás una lista completa de registros DNS para el dominio, incluidos todos los subdominios.
dig axfr @nsztm1.digi.ninja zonetransfer.me
; <<>> DiG 9.18.12-1~bpo11+1-Debian <<>> axfr @nsztm1.digi.ninja zonetransfer.me
; (1 server found)
;; global options: +cmd
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
zonetransfer.me. 300 IN HINFO "Casio fx-700G" "Windows XP"
zonetransfer.me. 301 IN TXT "google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"
zonetransfer.me. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
...
zonetransfer.me. 7200 IN A 5.196.105.14
zonetransfer.me. 7200 IN NS nsztm1.digi.ninja.
zonetransfer.me. 7200 IN NS nsztm2.digi.ninja.
_acme-challenge.zonetransfer.me. 301 IN TXT "6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"
_sip._tcp.zonetransfer.me. 14000 IN SRV 0 0 5060 www.zonetransfer.me.
14.105.196.5.IN-ADDR.ARPA.zonetransfer.me. 7200 IN PTR www.zonetransfer.me.
asfdbauthdns.zonetransfer.me. 7900 IN AFSDB 1 asfdbbox.zonetransfer.me.
asfdbbox.zonetransfer.me. 7200 IN A 127.0.0.1
asfdbvolume.zonetransfer.me. 7800 IN AFSDB 1 asfdbbox.zonetransfer.me.
canberra-office.zonetransfer.me. 7200 IN A 202.14.81.230
...
;; Query time: 10 msec
;; SERVER: 81.4.108.41#53(nsztm1.digi.ninja) (TCP)
;; WHEN: Mon May 27 18:31:35 BST 2024
;; XFR size: 50 records (messages 1, bytes 2085)
zonetransfer.me
es un servicio específicamente configurado para demostrar los riesgos de las transferencias de zona, por lo que el comando dig
devolverá el registro completo de la zona.