En un post anterior hablábamos de la importancia de las buenas configuraciones respecto a los dominios, ya que estos suelen entregar mucha información y en ocasiones más de lo debido. A la hora de contar con servicios, dominios, sitios web y demás, muchas veces se escapan detalles como suelen ser las configuraciones en los servidores DNS, por lo que veremos de qué se trata la transferencia de zona a los DNS y cómo esto puede exponer información e infraestructuras.
Como hemos visto anteriormente, los servidores DNS básicamente son equipos que se encargan de resolver nombres de dominio a direcciones IP. Esto permite a los usuarios acceder a servicios de manera amigable, ya que recordar las direcciones IP sería más complejo.
No obstante, suelen ser utilizados por los atacantes para recolectar información acerca de la infraestructura y subdominios de la posible víctima –aunque existen herramientas automatizadas para hacerlo, como por ejemplo Dnsnum. De esta última vemos una captura de pantalla a continuación:
Puede verse con claridad cómo con solo indicarle unos pocos parámetros (en este caso –enum para enumerar la información) ya comienza con la recolección de información, no solamente de los servidores DNS sino también haciendo búsquedas en Internet. Si bien hace todo por sí sola con solo indicarle el dominio, debe comprenderse cómo funciona por detrás.
Para obtener este tipo de información se puede utilizar el comando dig en los sistemas Linux y OS X; es una herramienta de consultas a servidores DNS, como veremos a continuación:
Vemos que al realizar la consulta, automáticamente se listan los servidores DNS que se encargan de resolver las consultas. Para realizar esta consulta se utiliza el siguiente comando:
dig NS midominio.net
Una vez ejecutado el comando en un entorno Linux, mostrará la lista de los correspondientes servidores encargados de responder a las solicitudes para ese dominio.
¿Por qué un atacante querría realizar la transferencia de zona y recolección los registros de los servidores DNS?
Sucede que a través de ellos se llega a recolectar información de una red corporativa, exponiendo en ocasiones sus direcciones IP internas, servidores y equipos. Para recolectar esta información debe usarse el parámetro “axfr” (a este tipo de ataque también se lo denomina AXFR) donde el comando queda de la siguiente manera:
dig @ns1.midominio.net axfr midominio.net
El parámetro “axfr” es quien permite la transferencia de zona de dicho DNS, ya que se usa para sincronizar y actualizar datos de la zona cuando se produjeron cambios. Si bien la transferencia puede hacerse vía “axfr”, también es posible hacerla de forma incremental, denominada entonces “ixfr” -cuando se ejecuta la solicitud se obtiene la transferencia de toda la zona como respuesta. Sin la debida configuración, esto le permite a un atacante replicar la base de datos DNS, obteniendo información sensible.
Una vez hecho esto, si el ataque tiene éxito, podrá verse cómo resulta la exposición de mucha información, como veremos en la siguiente captura de pantalla:
Puede apreciarse en el ejemplo mostrado que se listan direcciones IP, servicios que seguramente son de uso interno como portales de login, servicios de correo e inclusive los portales disponibles para las versiones móviles.
¿Cómo puedo ver esta información desde Windows?
De la misma forma en que podemos obtener esta información con el comando dig desde sistemas Linux, también podemos obtenerla desde sistemas Windows con Nslookup. Veamos en la siguiente captura de pantalla cómo hacerlo:
Si bien desde Windows cambian un poco los comandos y los parámetros, puede realizarse de igual forma. En primer lugar es necesario abrir la consola de Windows (también es posible usar consola aquí); para hacerlo basta con escribir “cmd” en la barra de búsqueda en el menú Inicio y presionar la tecla Enter.
Una vez abierta la consola, como se muestra en nuestro ejemplo anterior, se puede iniciar la secuencia de comandos:
- El primero a ejecutar es nslookup seguido de la tecla Enter; esto inicia la herramienta para realizar consultas a servidores DNS
- El segundo es: set type=ns (aquí se especifica que el tipo de consulta en este caso Name Server); una vez presionado Enter, en la siguiente línea debe colocarse el dominio a consultar, por ejemplo com.ar
- El tercero a ejecutar es: set type=all seguido de la tecla Enter (aquí se especifica que se realicen todas las consultas posibles)
- El cuarto y último es: ls ejemplo.com.ar, el cual se encargará de listar la información disponible
Entonces ¿Qué hacemos para prevenir la fuga de este tipo de información?
Es muy importante comprender que toda esta información podría ser explotada por un cibercriminal para comprometer un equipo o la red completa. Sabiendo esto de antemano, disponemos de las herramientas para realizar el análisis proactivo para su prevención.
Para evitar estos dolores de cabeza de fuga de información, desde el Laboratorio de Investigación de ESET Latinoamérica recomendamos revisar los archivos de configuración en los servidores DNS. Cabe destacar que dependiendo del software que se esté utilizando para este servicio, será donde se encuentra ubicado su archivo de configuración para permitir o denegar el o los equipos autorizados a realizar dicha transferencia.
Por ejemplo, para solucionar este problema en bind9, se debe acceder al archivo named.conf.local (ubicado por defecto en /etc/bind) y editarlo, con la finalidad de admitir la transferencia de zona solo a direcciones IP de servidores DNS secundarios de confianza. Para hacerlo debe modificarse el archivo de la siguiente forma:
Es importante tener siempre presente que este archivo puede variar su configuración y ubicación dependiendo de qué software se utilice. Recomendamos comprender cómo funciona el que se está utilizando y realizar la configuración correspondiente.
Como pudimos ver, algo que puede parecer tan simple representa un serio riesgo de seguridad. Vimos cómo utilizando herramientas propias del sistema operativo, en conjunto con malas configuraciones del otro lado, se logra recopilar una gran cantidad de información sensible.
A través de la información obtenida, el atacante puede comprender la topología de la red y de esta forma intentar vulnerarla. Por eso, es necesario trabajar de forma proactiva para detectar este tipo de situaciones y corregirlas, antes que sea aprovechado por un atacante. Aplicando las correcciones necesarias a estos problemas proactivamente podremos utilizar la tecnología de forma segura y sin tantas preocupaciones.