Volver a la página principal
sábado 21 septiembre 2024
233

Cómo utilizar DNSenum para realizar enumeración DNS avanzada

La enumeración DNS es una técnica fundamental en las pruebas de penetración y auditoría de seguridad, ya que permite obtener información detallada sobre los dominios y subdominios, servidores de nombres, registros DNS y otros datos que pueden ser útiles para el reconocimiento inicial de un objetivo. Una de las herramientas más populares para llevar a cabo esta tarea es DNSenum, que está disponible en distribuciones como Kali Linux.

¿Qué es DNSenum?

DNSenum es una herramienta de enumeración DNS escrita en Perl, que permite realizar búsquedas exhaustivas en los servidores DNS asociados a un dominio objetivo. La herramienta no solo resuelve los registros DNS básicos, como A, MX, y NS, sino que también es capaz de:

  • Realizar búsquedas inversas para encontrar direcciones IP asociadas a los registros.
  • Enumerar subdominios utilizando diccionarios.
  • Consultar servicios de whois para obtener información sobre el dominio.
  • Realizar transferencias de zona (si están permitidas).
  • Recopilar información sobre servidores de correo (MX) y servidores de nombres (NS).
  • Integrarse con servicios como Google para buscar subdominios adicionales.

Instalación de DNSenum en Kali Linux

En la mayoría de las distribuciones de Kali Linux, DNSenum viene preinstalado. Sin embargo, si no está disponible o prefieres instalar la herramienta manualmente, puedes hacerlo desde los repositorios oficiales o desde el código fuente.

Instalar desde los repositorios:

Para instalar DNSenum en Kali Linux, simplemente ejecuta el siguiente comando:

sudo apt install dnsenum

Verificar la instalación:

Una vez instalado, puedes verificar que la herramienta está lista para su uso ejecutando:

dnsenum --help

Este comando mostrará las diferentes opciones y parámetros disponibles.

Realización de enumeración DNS básica

La manera más sencilla de utilizar DNSenum es proporcionando un nombre de dominio objetivo. El siguiente comando realiza una búsqueda DNS básica para un dominio específico:

dnsenum ejemplo.com

Esta ejecución realizará lo siguiente:

1. Resolverá la IP asociada al dominio objetivo.

2. Buscará servidores de nombres (NS) y servidores de correo (MX).

3. Intentará realizar una transferencia de zona.

4. Recopilará posibles subdominios.

Ejemplo de salida:

dnsenum ejemplo.com

Host's addresses:
-----------------
ejemplo.com.		93.184.216.34

Name Servers:
-------------
ns1.ejemplo.com.	93.184.216.34
ns2.ejemplo.com.	93.184.216.35

Mail (MX) Servers:
------------------
mail.ejemplo.com.	93.184.216.36

Transferencia de zona

DNSenum intenta realizar una transferencia de zona para obtener todos los registros DNS de un dominio. Si un servidor DNS está mal configurado y permite transferencias de zona, se pueden obtener una lista completa de registros, lo cual puede proporcionar información sensible.

dnsenum ejemplo.com

Si la transferencia de zona es exitosa, DNSenum mostrará todos los registros del servidor DNS. Si no es posible realizarla, mostrará un mensaje indicando que no se pudo completar la transferencia.

Opciones avanzadas en DNSenum

DNSenum proporciona diversas opciones para personalizar y mejorar la enumeración DNS. A continuación, analizamos algunas de las más importantes.

1. Enumerar subdominios usando diccionarios

Una de las funcionalidades más poderosas de DNSenum es la capacidad de realizar fuerza bruta de subdominios utilizando un diccionario. Esta técnica es útil para encontrar subdominios que no se han registrado en los servidores DNS públicos.

Para realizar esta tarea, puedes especificar un archivo de diccionario con el parámetro -f:

dnsenum ejemplo.com -f /ruta/a/diccionario.txt

2. Búsqueda recursiva de subdominios

Además de la búsqueda básica de subdominios, DNSenum puede realizar una búsqueda recursiva en los subdominios encontrados para descubrir aún más subdominios. Esto es útil cuando hay una estructura jerárquica de subdominios.

Para habilitar la búsqueda recursiva, utiliza la opción -r:

dnsenum ejemplo.com -r

3. Especificar servidores DNS

Por defecto, DNSenum utilizará los servidores DNS configurados en tu sistema para resolver las consultas. Sin embargo, puedes especificar un servidor DNS personalizado utilizando la opción -s:

dnsenum ejemplo.com -s 8.8.8.8

Esto hará que todas las consultas se resuelvan a través del servidor DNS de Google (8.8.8.8).

4. Búsqueda inversa de rangos de IP

DNSenum también permite realizar búsquedas inversas (PTR) para un rango de direcciones IP, lo que puede ser útil para encontrar dominios o subdominios asociados con un rango IP específico. Para realizar una búsqueda inversa, utiliza la opción -i seguida del rango de IP:

dnsenum -i 93.184.216.0/24

5. Consultas a servidores WHOIS

La herramienta puede interactuar con servidores WHOIS para obtener información adicional sobre el dominio, como datos de contacto del registrante y más. Esto se activa automáticamente, pero si deseas deshabilitar las consultas WHOIS, utiliza la opción --noreverse:

dnsenum ejemplo.com --noreverse

Si, por el contrario, deseas ver más detalles sobre los registros WHOIS, puedes ejecutar:

dnsenum ejemplo.com --whois

6. Guardar los resultados en un archivo

Para guardar los resultados de la enumeración en un archivo de salida, utiliza la opción -o seguida de la ruta y el nombre del archivo:

dnsenum ejemplo.com -o resultado_dnsenum.txt

Esto creará un archivo de texto con todos los detalles obtenidos durante la enumeración.

7. Limitar el número de subdominios a descubrir

En algunos casos, cuando un dominio tiene muchos subdominios, puede ser útil limitar el número de subdominios descubiertos. Para esto, utiliza la opción --subfile:

dnsenum ejemplo.com --subfile=100

Esto limitará la cantidad de subdominios descubiertos a 100.

8. Especificar un rango de subredes

Si el objetivo utiliza múltiples subredes y deseas enfocarte en un rango de IP específico, puedes utilizar la opción --ip para definir el rango:

dnsenum ejemplo.com --ip 93.184.216.0/24

Esto solo enumerará los subdominios y registros DNS dentro de ese rango de subred.

Ejemplo de uso avanzado

A continuación, te mostramos un ejemplo de cómo combinar múltiples opciones para realizar una enumeración DNS avanzada:

dnsenum ejemplo.com -f /ruta/a/diccionario.txt -r -s 8.8.8.8 -o resultados_dns.txt

En este ejemplo, estamos realizando lo siguiente:

  • Enumeramos subdominios utilizando un archivo de diccionario (-f /ruta/a/diccionario.txt).
  • Activamos la búsqueda recursiva (-r).
  • Utilizamos el servidor DNS de Google (-s 8.8.8.8).
  • Guardamos los resultados en un archivo de salida (-o resultados_dns.txt).

Conclusión

DNSenum es una herramienta potente y versátil para la enumeración DNS avanzada. Desde la búsqueda de registros básicos hasta la fuerza bruta de subdominios y consultas recursivas, esta herramienta ofrece múltiples funciones que pueden ayudarte a obtener información crítica durante una auditoría de seguridad o pruebas de penetración. Aunque fácil de usar en su forma más básica, las opciones avanzadas de DNSenum lo convierten en un recurso invaluable para cualquier profesional de seguridad que necesite realizar un reconocimiento exhaustivo de un dominio.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer