Hoy me publicaron en Security Art Work un articulo que les habia preparado hace ya unos cuantos dias sobre AXFR. Lo hay tenido que recortar porque por una parte era muy largo y por otra mencionaba algunas empresas de Hosting que no estaban haciendo bien su trabajo.
A continuación dejo publicada la versión original del post, sin censuras.
El pasado 13 de Abril el US-CERT publicaba una alerta informando que "Las peticiones AXFR podrían filtrar información referente a los servidores de dominio". La comunidad cuando menos se rasco 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 esten 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:
- El servidor primario detecta que se actualizado su información y envía un paquete NOTIFY al servidor secundario.
- Ha transcurrido el tiempo marcado como tiempo de actualización (que permite a ambos servidores estar sincronizados). Este tiempo esta 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:
root@kali:~/# dig ns XXXXX-valencia.es
...lo que nos interesa son los registros NS devueltos en la seccion Answer.
El siguiente paso consiste en solicitar la transferencia de zona (AXFR) al servidor de nombres que nos ha devuelto la consulta:
root@kali:~/# dig @ns2.XXXXXquer.net. XXXXX-valencia.es AXFR
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 209.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 el administrador del servidor de nombres primario puede evitar que cualquiera pueda consultar su registro añadiendo una simple linea en el fichero de configuración del servidor DNS en el que le indique cual es la IP del servidor secundario, quienes serán los unicos que puedan realizar peticiones AXFR:
Zone “XXXXX-valencia.es” { type master; file “/etc/bind/db.XXXXX-valencia.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, si no 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 publicaban 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. Para ello usmos el mismo script python que se utilizaban en su experimento ligeramente modificado para poder introducir los datos devueltos en una base de datos MySQL.
Es necesario indicar algunas cosas para que se entiendan los resultados obtenidos:
- 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.
- 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:
- 109886 dominios (un 7.5% de los dominios) tienen sus servidores de nombres mal configurados. Como vemos el porcentaje es muy similar al del Alexa Top 1 Million
- Estos 1.44 millones de dominios .es utilizan hasta 211286 servidores de nombres diferentes, de los cuales 9347 (un 4.4%) están mal configurados y dan servicio a esos 109886 dominios.
- El dominio español tiene registrados de media 2.53 servidores de nombres y un servidor de nombres da servicio, de media, 6.84 dominios .es (y a mucho otros, seguro, que no sean ".es").
- 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.
- 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.
- 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.
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.
En resumen, entre los registros DNS de un dominio te puedes encontrar cualquier cosa.
Empresas de hosting. Un servicio mejorable.
Este estudio tambien ha sido muy util para saber que empresas de hosting estan utilizando los dominios .es. Por lo general las empresas de hosting utilizan sus propios servidores de nombres y haciendo una simple búsqueda encontramos por ejemplo que 1and1 esta 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 57.879 dominios ".es".
1and1 - 335280 servidoresdns.net - 109302 domaincontrol - 47226 piensasolutions - 46226 ovh.net - 43715 rzone.de - 39909 sedoparking - 37869 dondominio - 35814 dinahosting - 32792 gestiondecuenta - 25087 cdmon - 29875 nominalia - 21718 redcoruna - 16247 canaldominios - 11856 ono.com - 6431
¿Y entre los que estan 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. Este es el listado de servidores de nombres más afectados:
dns-servicios - 11077 cyberneticos.com - 4663 redunda.com - 4021 servicios-fusion.es - 3282 zonadns.com - 2933 123hjemmeside.com - 1890 srv-hostalia.com - 2508 hospedajeydominios.com - 2472 virtualns.net - 2330 dnssecundario.com - 2721 srv-acens.com - 744
Llama la atencion que sea la empresa Acens, mediante sus dominios "dns-servicios.es", "dns-servicios.com" y "srv-acens.com" la que esté dejando más dominios .es afectados (Un total de 11821 dominios).
La segunda es cyberneticos.com, empresa gaditana de hosting que parece que tampoco esta haciendo bien los deberes.
La tercera es Redunda.com, pertenece a enom.com, que es la segunda empresa registradora de dominios a nivel mundial. Probablemente se traten de dominios de empresas extranjeras (americanas) afincadas en españa.
Y la cuarta son dominios que utilizan servidores de nombres de servicios-fusion.es, por lo que vemos es son dominios que van vinculados con un producto llamado MOVISTAR-TU WEB de Telefonica.
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 unas 5-6 empresas españolas que dan soporte a miles de dominios .es manteniéndolos mal configurados.