Casi 100.000 dominios .es permiten realizar transferencia de zonas

El problema

El pasado 13 de Abril de 2015 el US-CERT publicaba una alerta informando de que “Las peticiones AXFR podrían filtrar información referente a los servidores de dominio“. La comunidad cuando menos se rascó la cabeza pensando en qué estaba pensando el US-CERT. De hecho, este comportamiento fue reportado ya en 1997 por el NIST.

Las peticiones AXFR a servidores de nombres permiten replicar bases de datos DNS entre distintos servidores DNS. Las entidades por lo general tienen al menos dos servidores DNS (un primario y un secundario) que les permiten seguir disponiendo de servicio de nombres en caso de que el primario caiga. Por esta razón es importante que todos los servidores de nombres de una organización estén sincronizados. Esta sincronización se consigue mediante las peticiones XFR. Existen dos tipos de peticiones XFR, la incremental (IXFR) y la completa (AXFR), que envía al secundario toda la información de DNS local (lo que se conoce como la zona) que tiene el servidor primario. A este proceso se le conoce como “Transferencia de Zona“.

Recordemos un poco todo el proceso. Una transferencia de zona se inicia cuando:

1.- El servidor primario detecta que se actualizado su información y envía un paquete NOTIFY al servidor secundario.
2.- Ha transcurrido el tiempo marcado como tiempo de actualización (que permite a ambos servidores estar sincronizados). Este tiempo está especificado en el campo RDATA del registro SOA de la zona.

En ambos casos el servidor secundario le envía una petición AXFR al servidor primario. El problema es que esta petición no es autenticada por lo que cualquiera iniciar el proceso de transferencia de zona.

Un ejemplo

Se pueden realizar peticiones AXFR únicamente usando el comando dig de linux, primero consultando cual es el servidor de nombres (NS) del dominio. El comando sería:

root@kali:~/# dig ns XXXXXXXXXXXXa.es

… y lo que nos interesa son los registros NS que nos devuelve la sección ANSWER:


Ilustración 1.- Consulta de registros NS con dig

El siguiente paso consiste en solicitar la transferencia de zona (AXFR) al servidor de nombres que nos ha devuelto la anterior consulta:

root@kali:~/# dig @ns2.XXXXXXr.net XXXXXXXXXXXXa.es

Como vemos, gracias a este procedimiento nos enteramos que este dominio tiene un servidor FTP, un servidor de correo entrante (POP) y saliente (SMTP), un servidor de correo Web y que protege sus correos con un registro SPF, todo ello en la misma máquina, con IP terminada en .50.

La transferencia de zona es una técnica muy usada en procedimientos de pentesting en la fase de reconocimiento y adquisición de información de la empresa atacada. Como vemos, no ha sido necesario ningún tipo de autenticación para obtener esta información.

Por supuesto ofrecer toda esta información se considera una mala práctica y el administrador del servidor de nombres puede evitar que cualquiera pueda consultar esta información añadiendo una simple línea en el fichero de configuración del servidor DNS en la que se indique cual es la IP del servidor secundario. De ésta manera únicamente el servidor secundario podrá realizar peticiones AXFR:

Zone “XXXXXXXXXXXXa.es” {
         type master;
         file “/etc/bind/db.XXXXXXXXXXXXa.es”;
         allow-transfer { IP_SERVIDOR_SECUNDARIO; };
};

Realmente no se trata de una vulnerabilidad del servidor de nombres, sino de un fallo de configuración por parte de los administradores del dominio. De hecho no es que el servidor de nombres en sí esté mal configurado, sino que la configuracion para una zona (un dominio) en concreto es incorrecta.

Aunque se supone que la configuración debería ser igual (correcta o incorrecta) para todos los dominios al que da servicio un mismo servidor de nombres, lo cierto es que en nuestro experimento hemos encontrado casos en que no es asi y cada dominio estaría configurado de una forma.

Casi un 7% de los dominios .es afectados

El pasado 29 de Marzo se publicaba en el blog de internetwache.org un estudio sobre el millón de dominios más visitados según Alexa que indicaba que el 7,24% de esos dominios usaban servidores de nombres mal configurados.

Se nos ocurrió hacer el mismo experimento pero sobre los 1.7 millones de dominios “.es” que Red.es tiene registrados y estos son los resultados que nos hemos encontrado.

Para ello modificamos el mismo script python que se utilizaban en su experimento ligeramente modificado para poder introducir los datos devueltos en una base de datos MySQL.


Ilustración 2. El script python en funcionamiento

Es necesario hacer algunas aclaraciones para que se entiendan los resultados obtenidos:

1.- Se ha tomado como base todos los dominios REGISTRADOS en Red.es y que se pueden obtener haciendo una petición a Red.es (en el momento en que hicimos la solicitud eran 1.762.459 dominios). Sin embargo no todos estos dominios están activos.

Aproximadamente 1 de cada 12 dominios registrados no están activos o devuelven algún error (por ejemplo NXDOMAIN – Non existent domain) al consultar información sobre ellos. Esto hace que debamos eliminar un total de 147.063 dominios consultados, que lógicamente no van a permitir transferencia de zonas ya que ni siquiera responden.

2.- Otros 168.905 dominios devuelven un timeout a la hora de solicitar el servidor de nombres (Se ha establecido un timeout de 10 segundos). En estos casos puede ocurrir que sean dominios inactivos o que su conectividad sea mala o estén temporalmente desconectados. Probamos a aumentar el tiempo de timeout y algunos de estos 168.000 dominios sí que respondía, pero calculamos que revisar estos 168.000 dominios nos llevaría más de un año de trabajo por lo que les hemos considerado como inactivos a todos los efectos.

Descontando los anteriores de los 1.762.459 dominios .es registrados, obtenemos 1.446.491 dominios que realmente han respondido a las consultas AXFR y que será el número de dominios que tomaremos como base, tal y como se ve en la siguiente tarta:

Sobre esos 1.44 millones de dominios los resultados han sido:

  • Estos dominios “.es” utilizan un total de 211.286 diferentes servidores de nombres (nameservers), de los cuales 7.880 (un 3.7%) tienen algún dominio que está mal configurado y permiten realizar transferencias de zona sobre ellos. El porcentaje es bastante bajo y supone un trabajo bastante decente por parte de las empresas de hosting.

  • Sin embargo estos 7.880 servidores de nombres dan servicio a un total de 98.456 dominios (un 6.8% del total) cuya información puede ser obtenida (y utilizada) sin ningún problema. Como vemos el porcentaje es muy similar al del Alexa Top 1 Million (Un 7.2% en su caso).
  • Estos 7.880 servidores “mal configurados” dan servicio a otros 9.400 dominios (hasta 109.866) que han rechazado nuestras consultas AXFR. La explicación más plausible es que la zona de estos dominios está bien configurada aunque algunas zonas “hermanas” dentro del mismo servidor de nombres estén mal. Esta configuración heterogénea parece extraña pero no le encontramos otra explicación. También nos encontramos casos en que los servidores de nombres primario y secundario están configurados de forma diferente. Por ejemplo casos en que el primario permite transferencia de zonas mientras que el secundario no, o viceversa.

    Como vemos en el siguiente ejemplo, en un mismo servidor de nombres, tenemos una zona mal configurada y que devuelve información de todos sus registros DNS y otra, abajo del todo, bien configurada.


Ilustración 3. Configuración heterogénea en un servidor de nombres

  • Un dominio “.es” utiliza, de media, 2.53 servidores de nombres mientras que un servidor de nombres da servicio, de media, a 6.84 dominios .es (y probablemente a muchos otros que no sean “.es”).
  • Un total de 30.088 dominios tienen servidores de nombres propios (con un nombre perteneciente a su mismo dominio). Esto significa un 2% del total de dominios y representan a empresas que tienen infraestructura propia no utilizando una empresa de hosting para el alojamiento.

España es un país de PYMEs, las cuales lógicamente no tienen la capacidad de tener un equipo de informáticos que les administren sus servidores y que por tanto contratan a empresas de hosting el mantenimiento de su páginas y sus servidores. En este sentido, y a partir de los resultados de este estudio se puede concluir que más del 95% de los dominios “.es” están alojados en empresas de hosting de mayor o menor tamaño.

  • De los 98456 dominios afectados, se han extraído un total de 1.994.350 registros (a una media de 20 registros por dominio). Cabe mencionar que se extrajeron unos 190.000 registros MX (primarios o secundarios), pero que solo 108.000 de ellos disponían de registro SPF para evitar el spoofing de correo electrónico y sólo 21281 tenían registro DKIM para la firma digital.
  • Se encontraron asimismo 3915 servidores FTP diferentes, 3383 servidor SMTP, 2453 servidores webmail, 133 impresoras laser y hasta 2 equipos con Kali anunciados entre los registros DNS (Asombroso lo que se puede encontrar en ellos). También es verdad que lo que se anuncia en los registros DNS muchas veces no tiene nada que ver con lo que luego resulta ser.

En resumen, entre los registros DNS de un dominio te puedes encontrar cualquier cosa.

Empresas de hosting. Un servicio mejorable.

Este estudio también ha sido muy útil para saber qué empresas de hosting están dando soporte a los dominios .es. No es muy difícil conocer el hosting de un dominio. Por lo general las empresas de hosting utilizan sus propios servidores de nombres y haciendo una simple búsqueda encontramos por ejemplo que 1and1 está dando servicio a 335.280 dominios .es, Arsys (a través del dominio servidoresdns.net y de piensasolutions.com) sería la segunda empresa de hosting que da servicio de nombres a mas dominios con 155.528 y Dinahosting (a través de sus dominios gestiondecuenta.com y dinahosting.com) sería la tercera, con servicio a 57879 dominios “.es”.

¿Y entre los dominios afectados? De los 98456 dominios mal configurados, solo 1977 usan servidores de nombres propios. Esto quiere decir que la gran mayoría de dominios que permiten transferencia de zona, han pagado un hosting que no les está dando un buen servicio. Algunas de estas empresas de hosting son bien conocidas y en su mayoría son empresas de hosting españolas.

Por razones evidentes no vamos a proporcionar los nombres de dichas empresas de hosting y sus dominios secundarios, pero estamos hablando de casi 100.000 dominios mal configurados. Muchísimos de ellos pertenecen a pequeñas empresas de informática y hostings, que dan servicio a no más de unas decenas de dominios.

Resumen

Resumiremos todo lo anterior en tres píldoras muy concretas:

  • Se puede obtener información de los servicios ofrecidos por hasta el 6.8% de los dominios .es (unos 98400).
  • Muchos de estos dominios .es pertenece a PYMEs que contratan sus dominios con pequeñas empresas de informática que no les dan un servicio del todo seguro.
  • La gran mayoría de las empresas de hosting grandes dan un servicio correcto. Existen sin embargo media docena de empresas españolas que dan soporte a miles de dominios .es que tienen mal configurados.

Comments

  1. Muy buenestudio Luís, enhorabuena.