Recopilación de inteligencia de DNS

NmapBeginner
Practicar Ahora

Introducción

La recopilación de inteligencia del Sistema de Nombres de Dominio (DNS) es un primer paso crítico en la fase de reconocimiento de la ciberseguridad. El DNS actúa como la guía telefónica de Internet, traduciendo nombres de dominio legibles por humanos a direcciones IP. Al consultar los registros DNS, los profesionales de la seguridad pueden descubrir una gran cantidad de información sobre la infraestructura de un objetivo, incluidos servidores de correo, subdominios y configuraciones de seguridad.

El DNS es especialmente valioso en el reconocimiento porque revela relaciones de infraestructura en lugar de solo un punto final. Un solo dominio puede llevarte a servidores web, proveedores de correo, tokens de validación, alias y, a veces, entornos completos olvidados. Es por eso que la inteligencia de DNS a menudo amplía drásticamente el alcance de una evaluación.

En este laboratorio, aprenderás a utilizar dos potentes herramientas de línea de comandos, host y dig, para realizar reconocimientos de DNS. Utilizaremos un dominio deliberadamente vulnerable, zonetransfer.me, diseñado específicamente por investigadores de seguridad para practicar consultas DNS y transferencias de zona de forma segura. Aprenderás a extraer registros IP básicos, detalles de servidores de correo, registros de texto e incluso intentarás una transferencia de zona completa para mapear toda la huella DNS del objetivo.

Consultar registros IP básicos (A/AAAA)

En este paso, aprenderás a recuperar los registros DNS más fundamentales: los registros A y AAAA. Un registro A asigna un nombre de dominio a una dirección IPv4, mientras que un registro AAAA lo asigna a una dirección IPv6. Encontrar estas direcciones IP es esencial porque te indica exactamente dónde está alojado el servidor web principal del objetivo.

Es importante recordar que los dominios y los hosts no son el mismo concepto. Un nombre de dominio es una etiqueta en el DNS. Una dirección IP es el lugar donde finalmente se enruta el tráfico. El reconocimiento a menudo comienza traduciendo entre esas dos vistas.

Comenzaremos utilizando el comando host, que es una utilidad sencilla para realizar búsquedas DNS. Asegúrate de estar en tu directorio de trabajo predeterminado ~/project.

Ejecuta el siguiente comando para realizar una búsqueda básica en nuestro dominio objetivo:

host zonetransfer.me

Deberías ver una salida similar a esta, que muestra la dirección IPv4 y los servidores de correo asociados con el dominio:

zonetransfer.me has address 5.196.105.14
zonetransfer.me mail is handled by 10 alt2.aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx2.googlemail.com.
zonetransfer.me mail is handled by 10 alt1.aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx3.googlemail.com.
zonetransfer.me mail is handled by 0 aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx4.googlemail.com.
zonetransfer.me mail is handled by 20 aspmx5.googlemail.com.

Aunque host es excelente para comprobaciones rápidas, el comando dig (Domain Information Groper) proporciona una salida mucho más detallada y flexible. Usemos dig para solicitar específicamente el registro A. Utilizaremos el flag +short para mantener la salida limpia, mostrando solo la dirección IP.

Para guardar nuestros datos de reconocimiento para un análisis posterior, redirigiremos la salida de nuestro comando dig a un archivo de texto llamado a_records.txt. Ejecuta el siguiente comando:

dig A zonetransfer.me +short > ~/project/a_records.txt

Puedes ver el contenido del archivo que acabas de crear usando el comando cat:

cat ~/project/a_records.txt

La salida mostrará la dirección IPv4 del dominio objetivo. Guardar tus hallazgos es un hábito crucial en la recopilación de inteligencia, ya que te permite construir un perfil completo de tu objetivo con el tiempo.

5.196.105.14

Consultar registros de correo y texto (MX, TXT)

En este paso, profundizaremos en la infraestructura del objetivo consultando los registros de Intercambio de Correo (MX) y de Texto (TXT).

Los registros MX especifican los servidores de correo responsables de aceptar mensajes de correo electrónico en nombre de un dominio. Identificar estos servidores puede revelar qué proveedores de correo electrónico de terceros utiliza el objetivo (como Google Workspace o Microsoft 365) o si alojan su propia infraestructura de correo.

Los registros TXT son igualmente valiosos porque a menudo describen relaciones de confianza, como qué sistemas tienen permiso para enviar correo o qué servicios externos han sido verificados para el dominio.

Consultemos los registros MX para nuestro dominio objetivo usando dig:

dig MX zonetransfer.me +short

Verás una lista de servidores de correo junto con sus números de prioridad (los números más bajos significan mayor prioridad):

20 aspmx5.googlemail.com.
10 alt1.aspmx.l.google.com.
10 alt2.aspmx.l.google.com.
20 aspmx2.googlemail.com.
20 aspmx3.googlemail.com.
0 aspmx.l.google.com.
20 aspmx4.googlemail.com.

A continuación, veremos los registros TXT. Los administradores utilizan los registros TXT para añadir texto arbitrario al DNS de un dominio. En ciberseguridad, los registros TXT son muy valiosos porque a menudo contienen reglas del Marco de Políticas del Remitente (SPF), configuraciones de Correo Identificado por Claves de Dominio (DKIM) y varios tokens de verificación de sitios. Estos pueden revelar rangos de IP internos autorizados para enviar correos electrónicos o servicios de terceros integrados con el dominio.

Consultemos los registros TXT y guardemos la salida en un archivo llamado txt_records.txt en tu directorio de trabajo:

dig TXT zonetransfer.me +short > ~/project/txt_records.txt

Visualiza el contenido del archivo para ver qué información han dejado los administradores en los registros TXT:

cat ~/project/txt_records.txt

Es posible que observes entradas que comienzan con v=spf1, que definen las políticas de envío de correo electrónico, o varias cadenas de verificación. Esta información ayuda a mapear las relaciones de confianza que el dominio objetivo tiene con otros servicios.

"google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"

Descubrir subdominios (CNAME)

En este paso, aprenderás sobre los registros de Nombre Canónico (CNAME). Un registro CNAME se utiliza para asignar un nombre de alias a un nombre de dominio verdadero o canónico. Por ejemplo, www.example.com podría ser un CNAME que apunta a example.com.

Descubrir subdominios es una parte crítica para ampliar tu superficie de ataque. A menudo, las organizaciones aseguran su sitio web principal pero olvidan actualizar o asegurar subdominios antiguos y olvidados (como dev.target.com o testing.target.com).

Consultemos un subdominio específico que se sabe que existe en nuestro objetivo de práctica para ver cómo se comportan los registros CNAME. Consultaremos testing.zonetransfer.me y guardaremos los resultados.

Ejecuta el siguiente comando para consultar el registro CNAME y guardarlo en cname_records.txt:

dig CNAME testing.zonetransfer.me +short > ~/project/cname_records.txt

Ahora, inspecciona el archivo que acabas de crear:

cat ~/project/cname_records.txt

Deberías ver una salida como www.zonetransfer.me.. Esto nos indica que testing.zonetransfer.me es en realidad solo un alias que apunta a otro dominio por completo. Encontrar estas relaciones puede llevar a un investigador de seguridad a descubrir proveedores de alojamiento de terceros o infraestructura oculta que pertenece al objetivo.

Intentar una transferencia de zona DNS

En este paso final, intentarás una transferencia de zona DNS. Una transferencia de zona (específicamente utilizando el tipo de consulta AXFR) es un mecanismo utilizado por los servidores DNS para replicar bases de datos DNS a través de múltiples servidores.

Las transferencias de zona son un ejemplo clásico de una característica administrativa legítima que se convierte en un problema de seguridad cuando el control de acceso es débil. El mecanismo en sí es normal. La mala configuración consiste en permitir que terceros arbitrarios soliciten los datos completos.

Si un servidor DNS está mal configurado, podría permitir que cualquier usuario anónimo solicite una copia completa del archivo de zona. Esta es una vulnerabilidad de seguridad masiva porque proporciona instantáneamente al atacante un mapa completo de cada subdominio, dirección IP y registro asociado con el dominio, evitando la necesidad de adivinar o realizar ataques de fuerza bruta sobre los subdominios.

Para intentar una transferencia de zona, primero necesitamos conocer los Servidores de Nombres (NS) autorizados para el dominio. Consultemos los registros NS:

dig NS zonetransfer.me +short

Deberías ver una salida que enumera los servidores de nombres, tales como:

nsztm1.digi.ninja.
nsztm2.digi.ninja.

Ahora que tenemos el servidor de nombres (nsztm1.digi.ninja), podemos pedirle directamente una transferencia de zona completa utilizando el tipo de registro axfr. La sintaxis de dig requiere que especifiquemos el dominio objetivo y el servidor de nombres específico que estamos consultando (usando el símbolo @).

Ejecuta el siguiente comando para intentar la transferencia de zona y guardar la enorme cantidad de salida en zone_transfer.txt:

dig axfr zonetransfer.me @nsztm1.digi.ninja > ~/project/zone_transfer.txt

Una vez que el comando se complete, visualiza las primeras líneas del archivo usando el comando head:

head -n 20 ~/project/zone_transfer.txt

Verás un volcado completo de los registros DNS del dominio, incluidos subdominios ocultos, direcciones IP internas y varias notas de texto dejadas por los administradores. En un escenario del mundo real, encontrar una transferencia de zona abierta es un hallazgo crítico que acelera significativamente la fase de reconocimiento.

Resumen

¡Felicidades! Has completado con éxito el laboratorio de Recopilación de Inteligencia de DNS.

En este laboratorio, aprendiste a aprovechar los comandos host y dig para realizar un reconocimiento pasivo en un dominio objetivo. Exploraste cómo extraer direcciones IPv4 básicas (registros A), identificar la infraestructura de correo (registros MX) y descubrir políticas de seguridad e integraciones de terceros (registros TXT). También aprendiste a rastrear alias de dominio (registros CNAME) para descubrir subdominios ocultos. Finalmente, ejecutaste con éxito una transferencia de zona DNS (AXFR) contra un servidor de nombres mal configurado, demostrando cómo una sola vulnerabilidad puede exponer toda la topología de red externa de una organización.

Estas habilidades forman la base del mapeo de redes externas y son esenciales para cualquier profesional de la ciberseguridad que realice pruebas de penetración o evaluaciones de vulnerabilidad.