viernes, 11 de abril de 2014

dnsenum - Transferencias de zonas

En mi primera publicación voy ha hablaros de una herramienta que a mi me llamó mucho la atención cuando supe de su existencia, se trata de la herramienta dnsenum. Antes de explicaros de que va, voy hacer una breve introducción a lo que sería un servicio DNS instalado en un servidor primario y como hace sus transferencias de zonas a uno secundario.

Cuando nosotros instalamos un servicio de DNS en un servidor primario, lo hacemos con la idea de facilitarnos el trabajo y no tener que recordar tantas direcciones IP ya que una de las funciones que realiza es la de traducir nombres en direcciones y viceversa. Un equipo cliente teclea el nombre del host remoto a un servidor DNS y este le contesta con la dirección IP correspondiente. A la hora de instalar y configurar este servicio, en ocasiones se hace la misma instalación en un servidor secundario para que en caso de que falle el primario, éste pueda resolver nombres a través de las transferencias de zonas que le delega el primario, aunque a veces esto no es tan bonito. A causa de una mala configuración podemos dejar al descubierto el archivo de zona de nuestro dominio. Y muchos de vosotros os preguntaréis ¿Qué peligro tendrá eso? pues bueno, el peligro basicamente es que en la fase de recopilación de información de un atacante o un test de intrusión, saber la estructura interna de una empresa puede significar un ahorro de trabajo muy grande y un avance considerable pudiendo conocer los subdominios, rangos de direcciones IP, hosts, registros MX etc...

El objetivo de esta herramienta es conseguir esa transferencia de zona que el servidor DNS primario le brinda al secundario, recordamos que la transferencia de zona siempre la inicia el servidor secundario. El uso de dnsenum es muy sencillo, basta con llamarlo y escribir acto seguido el nombre del dominio, por ejemplo "dnsenum ejemplo.com". En caso de que la transferencia de zona nos llegue, quiere decir que la configuración del servidor no tiene definido un servidor secundario(o ninguno en caso de no tener un servidor secundario) para realizar dicha transferencia. Vamos a ver un claro ejemplo con un servidor DNS bind9 del cual intentaremos conseguir la transferencia de zona con dnsenum que lo lleva incorporado la famosa distribución dirigida a la auditoría Kali.

El nombre de dominio que tengo en el servidor DNS es "joseluissanchez.local", por lo que llamaremos la aplicación en Kali simplemente escribiendo dnsenum joseluissanchez.local. Al no tener ningún servidor habilitado para la transferencia de zona me la dará sin ningún problema.




Como podemos ver, recibimos todos los registros que tiene la zona del dominio pudiendo ver rangos de direcciones IP, subdominios, también podemos deducir que quizás tengan un servicio de correo por los alias pop3, imap, smtp.. En este caso la zona del dominio no contiene muchos registros, en otras ocasiones nos podemos llegar a encontrar una transferencia de zona con miles de registros.

¿Cómo solucionar este problema? En caso de tener el servicio de bind9, basta con poner dentro de la configuración de la zona que tiene que tener el archivo named.conf.local lo siguiente; 

allow-transfer { 192.168.23.10; };

Pero.. ¿los que no tienen un servidor secundario al que le pueden hacer las transferencias están librados de este problema? ¡ERROR! deberán hacer el mismo paso anterior pero de la siguiente manera;

allow-transfer { "none"; };


De esta manera cualquier intento de transferencia de zona que no sea al servidor secundario o ninguno en caso de haberlo indicado así, no se realizará con exito y nos saldrá el siguiente mensaje.




Espero que haya sido de vuestro agrado la primera publicación por mi parte. Si queréis que hablemos de algún tema específico Edu o yo, siempre podeis escribirnos a nuestro email que lo teneis a la derecha.

Un saludo :-)!

@Joseliyo_Jstnk

3 comentarios:

  1. Esto es un ejemplo claro de "Missing configuration". En seguridad informática se utiliza este término cuando dejamos una configuración por defecto de un servicio, dispositivo, aplicación... y este hace que seamos vulnerables. Otro ejemplo claro de missing configuration sería no cambiar el user/password por defecto de un router.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Aquí os dejo un enlace a un pdf sobre DNS dem la Web de INTECO, en él se explica como funcionan los servidores DNS y sus particularidades, así como los posibles vectores de ataques que usan los ciberdelincuentes.

    Enlace a entrada del Blog de INTECO sobre DNS:

    https://www.inteco.es/blogs/post/Seguridad/BlogSeguridad/Articulo_y_comentarios/GUIA_DNS

    Enlace al pdf sobre DNS:

    http://cert.inteco.es/extfrontinteco/img/File/intecocert/ManualesGuias/guia_de_seguridad_en_servicios_dns.pdf

    ResponderEliminar