Bug DNS Zone Transfer

Bug DNS Zone Transfer


Los servidores de dominio (domain name servers) son utilizados para ligar las direcciones de IP numéricas con los nombres de los sitios. Si tu compañía tiene varios servidores, seguramente tiene uno o más servidores de dominio que mapean las IPs a los nombres alfanuméricos de los servidores en tu dominio.

Los servidores de dominio tienen un orden jerárquico. Tus servidores de DNS le tienen que comunicar mapeos de IPs a otros servidores de mayor jerarquía, para que de esta forma cualquiera pueda encontrar todos tus sitios. A la comunicación de estos mapeos se le llama un “zone transfer”. Entonces por ejemplo, si un servidor de DNS que maneja el dominio “.com” quiere saber en qué IP se encuentra www.misitio.com, le pregunta a mi servidor de dominio, dns1.misitio.com, dónde puede encontrar www.misitio.com, o cualquiera de mis otros servidores: catalogo.misitio.com, intranet.misitio.com, proveedores.misitio.com, etc. Al recibir la pregunta, dns1.misitio.com le envía un “zone transfer”, con el mapa completo de cada uno de los nombres de mis servidores, y sus IPs correspondientes.

Todo esto está bien. Sin embargo, si tu servidor de DNS no está configurado correctamente, un hacker puede utilizar un “zone transfer” para hacer un mapa completo de tu dominio y así preparar un ataque. En un artículo anterior sugerí que pusieras las IPs de tus servidores en bloques diferentes a la de tu sitio web, para evitar que un hacker explore rápidamente tu perímetro. Además de hacer esto, también te recomiendo asegurarte que tu servidor DNS solo responda a zone transfers de otros servidores de DNS autorizados.

Para checar si tu dominio es vulnerable a zone transfers no autorizados, ve a una máquina Linux y escribe el siguiente comando:

host -t ns misitio.com

(Nota que usamos “misitio.com”, sin www antes).
Lo que obtendrás de resultado son los nombres de tus servidores de DNS, algo como así:

dns1.misitio.com

Ahora lo que haremos es pedirle al servidor de DNS que liste todas las IPs y nombres del dominio, pidiendo un zone transfer:

host -l misitio.com dns1.misitio.com

Si de respuesta recibes una lista con todos los nombres de tus servidores y sus respectivas IPs, entonces eres vulnerable a zone transfers no autorizados. Por otro lado, si recibes un mensaje de “connection refused”, quiere decir que tu servidor de DNS no aceptó tu conexión, porque la IP que estás usando en tu máquina no está registrada como otro servidor de DNS de confianza.

Si eres vulnerable, revisa la documentación del software de DNS que estés corriendo para ver cómo desactivar zone transfers a IPs no autorizadas. No le regales un mapa completo de tu perímetro a los hackers.

Sergio Castro es gerente de Qualys Latinoamérica (www.qualys.com), y se especializa en análisis de vulnerabilidades, seguridad de aplicaciones web, y la norma PCI.


Fuente