Enumerar Registros DNS en Nmap

NmapNmapBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a enumerar registros DNS utilizando el script dns-brute de Nmap. El objetivo es descubrir nombres de host y subdominios válidos asociados a una dirección IP objetivo, revelando información valiosa sobre la infraestructura de la red objetivo.

Ejecutará el script dns-brute contra una dirección IP objetivo, escaneará el puerto DNS, agregará detalle para obtener una salida detallada, guardará los resultados en un archivo, revisará los registros DNS en la terminal Xfce y comparará los resultados con un escaneo UDP. Esta experiencia práctica le proporcionará habilidades prácticas en la enumeración DNS utilizando Nmap.

Ejecutar la enumeración DNS con nmap --script dns-brute 192.168.1.1

En este paso, usaremos el script dns-brute de Nmap para realizar una enumeración DNS contra una dirección IP objetivo. La enumeración DNS es el proceso de descubrir nombres de host y subdominios válidos para un dominio dado mediante la consulta de servidores DNS. Esto puede revelar información valiosa sobre la infraestructura de la red objetivo.

El script dns-brute funciona intentando resolver una gran lista de nombres de subdominio comunes contra el servidor DNS del objetivo. Si un subdominio existe, el servidor DNS devolverá una dirección IP, lo que indica que el subdominio es válido.

Primero, entendamos el comando que usaremos:

  • nmap: Esta es la herramienta de mapeo de red que estamos usando.
  • --script dns-brute: Esto le dice a Nmap que use el script dns-brute.
  • 192.168.1.1: Esta es la dirección IP objetivo. Reemplace esto con la dirección IP real que desea escanear.

Ahora, ejecutemos el comando. Abra su terminal Xfce y escriba el siguiente comando:

nmap --script dns-brute 192.168.1.1

Nota: Reemplace 192.168.1.1 con la dirección IP real del objetivo que desea escanear. Si no tiene un objetivo específico, puede usar una dirección IP local como 127.0.0.1 (localhost), pero es posible que no obtenga ningún resultado interesante.

La salida mostrará a Nmap intentando resolver varios nombres de subdominio. Si se encuentran subdominios, se mostrarán junto con sus direcciones IP correspondientes.

Salida de ejemplo (la salida que ve dependerá del objetivo):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
NSE: Starting dns-brute scan
NSE: DNS Brute-force hostnames: 216.58.216.142
google.com	A	216.58.216.142
www.google.com	A	216.58.216.142
mail.google.com	A	216.58.216.142
NSE: Finished dns-brute scan
Nmap done: 1 IP address (1 host up) scanned in 5.00 seconds

Esta salida muestra que el script dns-brute encontró los subdominios google.com, www.google.com y mail.google.com asociados a la dirección IP 216.58.216.142.

Escanear el puerto DNS con nmap --script dns-brute -p 53 127.0.0.1

En este paso, nos centraremos en escanear el puerto DNS (puerto 53) utilizando Nmap y el script dns-brute. Al especificar el puerto, podemos dirigir nuestros esfuerzos de enumeración DNS al puerto estándar de DNS, lo que a menudo es más eficiente.

Analicemos el comando:

  • nmap: La herramienta de escaneo de red.
  • --script dns-brute: Especifica el script dns-brute para la enumeración DNS.
  • -p 53: Esta opción le dice a Nmap que solo escanee el puerto 53, que es el puerto estándar de DNS.
  • 127.0.0.1: Esta es la dirección IP objetivo. En este caso, estamos usando 127.0.0.1, que se refiere a la máquina local (localhost).

Ahora, abra su terminal Xfce y ejecute el siguiente comando:

nmap --script dns-brute -p 53 127.0.0.1

Este comando ejecutará el script dns-brute específicamente en el puerto 53 de la localhost. Dado que 127.0.0.1 generalmente no alberga un servidor DNS con muchos registros, los resultados pueden ser limitados. Sin embargo, esto demuestra cómo dirigirse a un puerto específico para la enumeración DNS.

Salida de ejemplo (la salida que ve puede variar):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds

En este ejemplo, Nmap muestra que el puerto 53 está abierto y ejecutando el servicio domain (DNS). El script dns-brute intenta una transferencia de zona (AXFR) pero es denegado. Esta es una medida de seguridad común para evitar el acceso no autorizado a los registros DNS.

Agregar detalle con nmap -v --script dns-brute 192.168.1.1

En este paso, agregaremos detalle a nuestro comando de Nmap. El detalle aumenta la cantidad de información que Nmap muestra durante el escaneo, lo que puede ser útil para entender lo que está haciendo Nmap y para solucionar cualquier problema.

La opción -v en Nmap habilita el modo detallado. Usar -v una vez aumenta el nivel de detalle. Puede usar -vv para una salida aún más detallada.

Echemos un vistazo al comando que usaremos:

  • nmap: La herramienta de escaneo de red.
  • -v: Habilita el modo detallado, proporcionando una salida más detallada.
  • --script dns-brute: Especifica el script dns-brute para la enumeración DNS.
  • 192.168.1.1: La dirección IP objetivo. Recuerde reemplazar esto con la dirección IP real que desea escanear.

Ahora, abra su terminal Xfce y escriba el siguiente comando:

nmap -v --script dns-brute 192.168.1.1

Nota: Reemplace 192.168.1.1 con la dirección IP real del objetivo que desea escanear.

La salida será más detallada que en los pasos anteriores. Verá información sobre el progreso del escaneo, los scripts que se están ejecutando y cualquier error o advertencia que ocurra.

Salida de ejemplo (la salida que ve dependerá del objetivo y de las condiciones de red):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Starting dns-brute scan
NSE: Loaded 1795 records from /usr/share/nmap/nselib/data/dns-brute.lst
massdns: warning: id 4255 (inbound): query timed out
massdns: warning: id 4256 (inbound): query timed out
massdns: warning: id 4257 (inbound): query timed out
massdns: warning: id 4258 (inbound): query timed out
massdns: warning: id 4259 (inbound): query timed out
NSE: DNS Brute-force hostnames: 192.168.1.1
Nmap scan report for 192.168.1.1
Host is up (0.0020s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh

NSE: Finished dns-brute scan
Nmap done: 1 IP address (1 host up) scanned in 10.00 seconds

La salida detallada muestra más detalles sobre la operación del script dns-brute, incluyendo el número de registros cargados y cualquier advertencia encontrada durante el escaneo. Esto puede ser útil para diagnosticar problemas o entender el comportamiento del script.

Guardar los resultados DNS con nmap --script dns-brute -oN dns.txt 127.0.0.1

En este paso, aprenderemos a guardar los resultados de nuestro escaneo de Nmap en un archivo. Esto es útil para un análisis posterior o con fines de informe. Nmap ofrece varias opciones para guardar la salida en diferentes formatos. Aquí, usaremos el formato de salida normal (-oN).

Analicemos el comando:

  • nmap: La herramienta de escaneo de red.
  • --script dns-brute: Especifica el script dns-brute para la enumeración DNS.
  • -oN dns.txt: Esta opción le dice a Nmap que guarde la salida en formato normal en un archivo llamado dns.txt. El archivo se guardará en su directorio actual (~/proyecto).
  • 127.0.0.1: La dirección IP objetivo. En este caso, estamos usando 127.0.0.1, que se refiere a la máquina local (localhost).

Ahora, abra su terminal Xfce y ejecute el siguiente comando:

nmap --script dns-brute -oN dns.txt 127.0.0.1

Después de que se complete el escaneo, se creará un archivo llamado dns.txt en su directorio ~/proyecto. Este archivo contendrá la salida de Nmap en un formato legible para humanos.

Para verificar que el archivo se creó y contiene los resultados del escaneo, puede usar el comando cat para mostrar el contenido del archivo:

cat dns.txt

Salida de ejemplo (la salida que ve puede variar):

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

## Nmap done at Fri Oct 27 10:15:02 2023 -- 1 IP address (1 host up) scanned in 2.50 seconds

Esta salida muestra el contenido del archivo dns.txt, que incluye el informe de escaneo de Nmap para localhost.

Revisar los registros DNS en la terminal Xfce

En este paso, revisaremos los registros DNS que se identificaron en los pasos anteriores. Usaremos el comando cat para ver el contenido del archivo dns.txt que creamos anteriormente. Esto nos permitirá examinar la salida del script dns-brute y entender qué información se descubrió.

Abra su terminal Xfce y escriba el siguiente comando:

cat dns.txt

Este comando mostrará el contenido del archivo dns.txt en su terminal.

La salida se verá similar a esto (la salida exacta dependerá del objetivo y de los resultados de la enumeración DNS):

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

## Nmap done at Fri Oct 27 10:20:02 2023 -- 1 IP address (1 host up) scanned in 2.50 seconds

Analicemos la salida:

  • Nmap scan report for localhost (127.0.0.1): Esto indica que el escaneo se realizó en la máquina local.
  • PORT STATE SERVICE: Esta sección muestra los puertos abiertos en el objetivo.
  • 53/tcp open domain: Esto indica que el puerto 53 (el puerto estándar de DNS) está abierto y ejecutando el servicio de dominio.
  • dns-brute: Esta sección muestra los resultados del script dns-brute.
  • records-from-AXFR: No zone transfer allowed.: Esto indica que el objetivo no permite transferencias de zona, lo cual es una medida de seguridad para evitar el acceso no autorizado a la información DNS.

En este ejemplo, el script dns-brute no encontró ningún registro DNS específico porque no se permiten transferencias de zona. Sin embargo, si el objetivo permitiera transferencias de zona o si el script dns-brute encontrara cualquier otro registro DNS, se listarían en esta sección.

Al revisar la salida del script dns-brute, puede obtener información valiosa sobre la configuración DNS del objetivo e identificar posibles vulnerabilidades.

Comparar con un escaneo UDP en la terminal Xfce

En este paso, realizaremos un escaneo UDP en el puerto DNS (53) y compararemos los resultados con el escaneo TCP que realizamos anteriormente. Comprender las diferencias entre los escaneos TCP y UDP es crucial para una reconocimiento de red integral.

El DNS generalmente utiliza tanto los protocolos TCP como UDP. UDP generalmente se utiliza para consultas DNS estándar, mientras que TCP se utiliza para transferencias de zona o cuando el tamaño de la respuesta excede el límite de UDP.

Para realizar un escaneo UDP en el puerto 53, use el siguiente comando de Nmap en su terminal Xfce:

nmap -sU -p 53 127.0.0.1

Analicemos el comando:

  • nmap: La herramienta de escaneo de red.
  • -sU: Especifica un escaneo UDP.
  • -p 53: Especifica el puerto 53 (DNS).
  • 127.0.0.1: La dirección IP objetivo (localhost).

Ejecute el comando y observe la salida. Podría verse así:

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:25:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE         SERVICE
53/udp open|filtered domain

Nmap done: 1 IP address (1 host up) scanned in 3.50 seconds

Ahora, compare esta salida con el escaneo TCP que realizamos anteriormente (usando --script dns-brute -p 53 127.0.0.1). Puede referirse a la salida que vio en el paso 2 o volver a ejecutar el escaneo TCP:

nmap -sT -p 53 127.0.0.1

(Nota: -sT especifica un escaneo de conexión TCP, que es el predeterminado si no se especifica ningún tipo de escaneo.)

La salida del escaneo TCP podría verse así:

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:26:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE SERVICE
53/tcp open  domain

Nmap done: 1 IP address (1 host up) scanned in 0.50 seconds

Diferencias clave a observar:

  • ESTADO: El escaneo UDP puede mostrar open|filtered mientras que el escaneo TCP muestra open. open|filtered significa que Nmap no puede determinar con certeza si el puerto está abierto o filtrado debido a la naturaleza de UDP. UDP es sin conexión, por lo que Nmap no recibe un "conexión rechazada" definitivo como lo hace con TCP.
  • FIABILIDAD: Los escaneos TCP generalmente son más fiables para determinar si un puerto está abierto debido al trío de intercambio de mensajes. Los escaneos UDP pueden ser menos fiables debido a la pérdida de paquetes y la falta de un protocolo orientado a la conexión.

En resumen, comparar los escaneos TCP y UDP proporciona una imagen más completa de los servicios de red del objetivo. Si bien el TCP suele ser preferido por su fiabilidad, los escaneos UDP pueden revelar servicios que pueden no ser evidentes con TCP solo.

Resumen

En este laboratorio, exploramos la enumeración DNS utilizando el script dns-brute de Nmap. Aprendimos cómo descubrir nombres de host y subdominios válidos para un dominio dado mediante la consulta de servidores DNS. El laboratorio demostró cómo ejecutar el comando nmap --script dns-brute <target_ip> para identificar los subdominios asociados a una dirección IP objetivo.

Además, el laboratorio destacó la importancia de especificar correctamente la dirección IP objetivo e interpretar la salida para identificar los subdominios descubiertos y sus direcciones IP correspondientes. También abordamos el uso de la verbosidad y la guardado de la salida en un archivo para revisión posterior.