Introducción
En este laboratorio, aprenderá cómo utilizar la herramienta dnsenum para la enumeración DNS y descubrir información crítica sobre la infraestructura de un dominio objetivo. Practicará la instalación de la herramienta, la selección de objetivos adecuados, la ejecución de escaneos y la interpretación de resultados como subdominios y registros DNS.
El laboratorio ofrece experiencia práctica en el reconocimiento DNS sistemático, cubriendo la configuración de la herramienta, la verificación de objetivos y la ejecución de comandos. Desarrollará habilidades esenciales para identificar vulnerabilidades de seguridad a través del análisis de datos DNS.
Instalar dnsenum
En este paso, instalará la herramienta dnsenum, que es una utilidad de enumeración DNS utilizada para recopilar información sobre la infraestructura DNS de un dominio. La enumeración DNS es una técnica de reconocimiento fundamental en ciberseguridad que ayuda a identificar posibles superficies de ataque. La herramienta dnsenum automatiza el proceso de descubrimiento de subdominios, registros DNS (como registros A, MX, NS) y otra información valiosa sobre la configuración de red de un dominio objetivo.
Antes de comenzar, entendamos por qué estamos utilizando esta estructura de directorios específica. El directorio ~/project es un espacio de trabajo limpio que hemos preparado para que mantenga sus herramientas organizadas. Esta es una buena práctica también en las evaluaciones de seguridad del mundo real.
Primero, asegúrese de estar en el directorio de trabajo predeterminado:
cd ~/project
El siguiente comando instala Perl y varios módulos de Perl de los que depende dnsenum para funcionar correctamente. Perl es un lenguaje de scripting en el que está escrito dnsenum, mientras que los otros módulos proporcionan funcionalidad de red y DNS.
Instale las dependencias necesarias para
dnsenum:sudo apt-get update && sudo apt-get install -y perl libnet-dns-perl libnet-netmask-perl libnet-ip-perl
Ahora descargaremos la herramienta dnsenum real desde su repositorio oficial de GitHub. GitHub es donde los desarrolladores comparten proyectos de código abierto como este.
Descargue
dnsenumdesde su repositorio oficial:git clone https://github.com/fwaeytens/dnsenum.git
Después de descargar, necesitamos entrar en el directorio dnsenum para acceder a los archivos de la herramienta. Aquí es donde se encuentra el script principal dnsenum.pl.
Navegue hasta el directorio
dnsenum:cd dnsenum
Finalmente, verificaremos que la instalación fue exitosa comprobando el menú de ayuda. Este es un paso importante con cualquier nueva herramienta: entender sus opciones antes de ejecutarla contra objetivos reales.
Verifique la instalación comprobando el menú de ayuda:
perl dnsenum.pl --helpDebería ver la información de uso de la herramienta y las opciones disponibles. Esta salida le muestra todos los comandos y conmutadores que puede usar con
dnsenumpara diferentes tipos de tareas de enumeración DNS.
Seleccionar un Dominio Objetivo
En este paso, seleccionará un dominio objetivo adecuado para la enumeración DNS. La enumeración DNS es el proceso de descubrir todos los registros DNS asociados a un dominio, lo que ayuda a los profesionales de la seguridad a entender la infraestructura de un sitio web. Elegir el objetivo correcto es crucial para las pruebas de seguridad éticas: siempre utilizamos dominios autorizados o dominios de prueba especiales como example.com.
Primero, asegúrese de estar en el directorio de trabajo correcto. Aquí es donde almacenaremos todos nuestros archivos de enumeración DNS:
cd ~/project/dnsenumPara este laboratorio, usaremos example.com como nuestro dominio objetivo. Este dominio está específicamente reservado para documentación y pruebas por la IANA (Internet Assigned Numbers Authority), lo que lo hace perfecto para aprender técnicas de enumeración DNS. Recuerde: en evaluaciones de seguridad reales, siempre debe obtener la autorización adecuada antes de escanear cualquier dominio.
Verifiquemos que el dominio sea alcanzable con una consulta DNS básica. Este comando comprueba si el nombre de dominio se puede resolver a una dirección IP:
nslookup example.comDebería ver información de resolución DNS que muestre las direcciones IP del dominio. Si obtiene un error, verifique su conexión a Internet.
Crearemos un archivo de texto para almacenar nuestro dominio objetivo. Este archivo se utilizará más adelante por dnsenum:
echo "example.com" > target_domain.txtVea el contenido de su archivo de objetivo para confirmar que se creó correctamente:
cat target_domain.txtLa salida debería mostrar:
example.com. Este simple paso de verificación ayuda a prevenir errores en etapas posteriores del proceso de enumeración.
Ejecutar la enumeración DNS
En este paso, realizará una enumeración DNS en su dominio objetivo utilizando la herramienta dnsenum instalada anteriormente. La enumeración DNS es una técnica de reconocimiento fundamental que ayuda a los profesionales de la seguridad a mapear la infraestructura digital de un dominio descubriendo subdominios, registros DNS y otra información de red.
Primero, navegue hasta el directorio de dnsenum donde se encuentra la herramienta. Esto asegura que esté trabajando en la ubicación correcta con todos los archivos necesarios:
cd ~/project/dnsenumEjecute dnsenum contra su dominio objetivo (example.com) con una enumeración básica. La bandera
--enumle dice a la herramienta que realice una enumeración DNS estándar:perl dnsenum.pl --enum example.comEsta exploración básica revelará información DNS importante, incluyendo:
- Direcciones de host (registros A que mapean dominios a IPs)
- Servidores de nombres (registros NS que muestran los servidores DNS autoritativos)
- Servidores de correo (registros MX para la infraestructura de correo electrónico)
- Subdominios comunes a través de conjeturas por fuerza bruta
Para obtener resultados más completos, mejoraremos la exploración con parámetros adicionales. Esta exploración más profunda es útil cuando necesita información exhaustiva sobre un objetivo:
perl dnsenum.pl --enum -f dns.txt --threads 5 example.comEste comando avanzado:
- Utiliza una lista de palabras de subdominios (dns.txt) para probar patrones de nomenclatura comunes
- Se ejecuta con 5 hilos en paralelo para acelerar el proceso de exploración
- Realiza comprobaciones exhaustivas, incluyendo búsquedas inversas y intentos de transferencia de zona
Examine detenidamente la salida, que mostrará:
- Subdominios descubiertos (posibles puntos de entrada a los sistemas objetivo)
- Direcciones IP (que muestran dónde se alojan los servicios)
- Varios tipos de registros DNS (A, MX, NS, etc., que revelan las configuraciones de servicio)
- Intentos de transferencia de zona (para probar servidores DNS mal configurados)
Revisar subdominios y registros
En este paso, analizará los resultados de la enumeración DNS para identificar subdominios y varios registros DNS. La enumeración DNS es una técnica de reconocimiento crucial que revela la estructura de la red de un dominio. Al examinar estos resultados, puede entender cómo el dominio objetivo organiza sus servicios e identificar posibles puntos de entrada para una investigación adicional.
Primero, navegue hasta el directorio de resultados de dnsenum donde se almacenan los datos de su exploración:
cd ~/project/dnsenumEste directorio contiene los archivos de salida de su exploración de enumeración DNS anterior. Trabajaremos con la salida en formato XML que contiene datos estructurados sobre el dominio.
Vea el archivo de salida XML de su exploración anterior:
cat dnsenum_example.com.xmlEste comando muestra los datos XML sin procesar que contienen toda la información DNS recopilada. El archivo incluye varios tipos de registros DNS importantes:
- Direcciones de host (registros A) - Estos mapean nombres de dominio a direcciones IP
- Servidores de nombres (registros NS) - Los servidores DNS autoritativos para el dominio
- Servidores de correo (registros MX) - Servidores responsables de la entrega de correo electrónico
- Subdominios descubiertos - Dominios adicionales bajo el dominio principal
Para una mejor legibilidad cuando se trabaja con conjuntos de resultados grandes, puede filtrar tipos de registros específicos:
grep -E "<host>|<a>" dnsenum_example.com.xmlEste comando grep extrae solo las entradas de host y sus direcciones IP correspondientes, lo que facilita ver qué nombres de dominio se resuelven a qué IPs.
Para ver solo los subdominios encontrados durante la enumeración:
grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1Esta tubería primero encuentra todas las entradas de host y luego utiliza cut para extraer solo los nombres de dominio entre las etiquetas XML. Los subdominios pueden revelar servicios adicionales o sistemas potencialmente vulnerables.
Examine los servidores de nombres, que son críticos para la infraestructura DNS del dominio:
grep -A1 "<nameserver>" dnsenum_example.com.xmlLa bandera -A1 muestra cada entrada de servidor de nombres más una línea después de ella, lo que le da tanto la etiqueta como el nombre real del servidor.
Verifique los servidores de correo que manejan la entrega de correo electrónico para el dominio:
grep -A1 "<mx>" dnsenum_example.com.xmlLos registros MX muestran la prioridad y el nombre de host de los servidores de correo. Estos a menudo son objetivos en las evaluaciones de seguridad ya que manejan comunicaciones sensibles.
Guardar datos de enumeración
En este paso, guardará y organizará adecuadamente los resultados de la enumeración DNS para su consulta y generación de informes futuros. La documentación adecuada es esencial en las evaluaciones de ciberseguridad, ya que ayuda a mantener registros, hacer un seguimiento de los hallazgos y compartir los resultados con los miembros del equipo.
Primero, asegúrese de estar en el directorio correcto donde se encuentran los archivos de salida de dnsenum. Esto es importante porque todos los comandos posteriores trabajarán con los archivos de este directorio:
cd ~/project/dnsenumCree un directorio con marca de tiempo para sus resultados. El uso de fechas en los nombres de los directorios ayuda a organizar múltiples exploraciones cronológicamente. La bandera
-pcrea los directorios padre si no existen:mkdir -p results/$(date +%Y-%m-%d)Copie todos los archivos relevantes al directorio de resultados. Aquí, específicamente, estamos moviendo el archivo de salida XML de dnsenum a nuestra ubicación de almacenamiento organizada:
cp dnsenum_example.com.xml results/$(date +%Y-%m-%d)/Cree un informe de resumen legible por humanos. Este script extrae información clave del archivo XML y la formatea en un informe de texto simple. Los comandos
grepfiltran datos específicos, mientras que los comandoscutextraen solo las partes relevantes entre las etiquetas XML:{ echo "DNS Enumeration Report - $(date)" echo "==============================" echo -e "\nSubdomains Found:" grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1 echo -e "\nName Servers:" grep -A1 "<nameserver>" dnsenum_example.com.xml | grep "<host>" | cut -d'>' -f2 | cut -d'<' -f1 } > results/$(date +%Y-%m-%d)/report.txtVerifique los archivos guardados para confirmar que se copiaron correctamente. El comando
ls -lmuestra información detallada de los archivos, incluyendo permisos y marcas de tiempo:ls -l results/$(date +%Y-%m-%d)/Comprima los resultados para facilitar el intercambio. El comando tar agrupa los archivos, mientras que la compresión gzip (la opción z) reduce el tamaño del archivo para la transferencia:
tar -czvf example.com_enum_results.tar.gz results/$(date +%Y-%m-%d)/
Resumen
En este laboratorio, has aprendido cómo realizar una enumeración DNS utilizando la herramienta dnsenum con fines de ciberseguridad. El proceso cubrió la instalación de la herramienta, la verificación de la accesibilidad del dominio y la realización de consultas DNS básicas, mientras se enfatizaban las consideraciones éticas.
Has practicado pasos esenciales, como la clonación de repositorios, la navegación por directorios y la verificación de la instalación a través del menú de ayuda. El laboratorio demostró la configuración adecuada de la herramienta y las técnicas de validación de objetivos utilizando example.com como un dominio de práctica seguro.



