Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
zdns — Biblioteca de consulta DNS rápida y herramienta CLI | Kitploit
Herramientas/GitHubGitHub/zmap/zdns
ReconocimientoRecopilación de InformaciónSeguridad de RedesUtilidades y FrameworksAnálisis de DNS
GitHubzmap/zdns

zdns

Biblioteca de consulta DNS rápida y herramienta CLI

Ver Repositorio
1.1k15014hace 1 díaRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ZDNS

Go Report Card

ZDNS es un resolvedor DNS de alta velocidad y una utilidad de línea de comandos para realizar mediciones DNS a gran escala. ZDNS está escrito en Go y contiene su propio código de resolución recursiva y una caché optimizada para realizar consultas de un conjunto diverso de nombres. Usamos https://github.com/zmap/dns para construir y analizar paquetes DNS sin procesar. Para obtener más información sobre la arquitectura y el rendimiento de ZDNS, consulte el siguiente artículo presentado en la Conferencia de Medición de Internet del ACM '22.

[!TIP] La Wiki de ZDNS contiene información adicional sobre ZDNS y explica casos de uso y ejemplos.

Instalación

ZDNS se puede instalar clonando el repositorio y ejecutando make install.

git clone https://github.com/zmap/zdns.git
cd zdns
make install

Uso

ZDNS consiste en una biblioteca de resolvedor recursivo biblioteca y un envoltorio CLI CLI.

La biblioteca consta de una estructura ResolverConfig que contendrá todas las opciones de configuración para todas las consultas realizadas. La ResolverConfig se utiliza para crear 1+ estructuras Resolver que realizarán todas las consultas. Un Resolver solo debe realizar una consulta a la vez (no es seguro para hilos) y se deben usar múltiples estructuras Resolver para el paralelismo. Consulte nuestros ejemplos para saber cómo usar la biblioteca. Los módulos se utilizan para definir el comportamiento de las consultas.

ZDNS proporciona varios tipos de módulos:

  • Módulos DNS sin procesar proporcionan la respuesta DNS sin procesar del servidor similar a dig, pero en JSON. Hay un módulo para (casi) cada tipo de registro DNS

  • Módulos de consulta proporcionan respuestas más útiles cuando se requieren múltiples consultas (por ejemplo, completar una consulta A adicional para direcciones IP si se recibe un NS en NSLOOKUP)

  • Módulos varios proporcionan otros medios adicionales para consultar servidores (por ejemplo, bind.version)

Detallamos los módulos a continuación:

Módulos DNS sin procesar

Los módulos A, AAAA, AFSDB, ANY, ATMA, AVC, AXFR, BINDVERSION, CAA, CDNSKEY, CDS, CERT, CNAME, CSYNC, DHCID, DMARC, DNSKEY, DS, EID, EUI48, EUI64, GID, GPOS, HINFO, HIP, HTTPS, ISDN, KEY, KX, L32, L64, LOC, LP, MB, MD, MF, MG, MR, MX, NAPTR, NID, NINFO, NS, NSAPPTR, NSEC, NSEC3, NSEC3PARAM, NSLOOKUP, NULL, NXT, OPENPGPKEY, PTR, PX, RP, RRSIG, RT, SVCBS, MIMEA, SOA, SPF, SRV, SSHFP, TALINK, TKEY, TLSA, TXT, UID, UINFO, UNSPEC y URI proporcionan la respuesta DNS sin procesar en formato JSON, similar a dig.

Por ejemplo, el comando:

echo "censys.io" | zdns A

devuelve:

{
   "name": "censys.io",
   "results": {
      "A": {
         "data": {
            "additionals": [
               {
                  "flags": "",
                  "type": "EDNS0",
                  "udpsize": 512,
                  "version": 0
               }
            ],
            "answers": [
               {
                  "answer": "104.18.10.85",
                  "class": "IN",
                  "name": "censys.io",
                  "ttl": 300,
                  "type": "A"
               },
               {
                  "answer": "104.18.11.85",
                  "class": "IN",
                  "name": "censys.io",
                  "ttl": 300,
                  "type": "A"
               }
            ],
            "protocol": "udp",
            "resolver": "[2603:6013:9d00:3302::1]:53"
         },
         "duration": 0.285295416,
         "status": "NOERROR",
         "timestamp": "2024-08-23T13:12:43-04:00"
      }
   }
}

Módulos de consulta

Las respuestas DNS sin procesar a menudo no proporcionan los datos que desea. Por ejemplo, una respuesta MX puede no incluir los registros A asociados en la sección adicional, lo que requiere una consulta adicional. Para abordar esta brecha y proporcionar una interfaz más amigable, también proporcionamos varios módulos de consulta: alookup, mxlookup y nslookup.

alookup actúa de manera similar a nslookup y seguirá los registros CNAME. mxlookup adicionalmente realizará una consulta A para las direcciones IP que correspondan con un registro de intercambio. nslookup adicionalmente realizará una consulta A/AAAA para las direcciones IP que correspondan con un registro NS.

Por ejemplo,

echo "censys.io" | zdns mxlookup --ipv4-lookup

devuelve:

{
   "name": "censys.io",
   "results": {
      "MXLOOKUP": {
         "data": {
            "exchanges": [
               {
                  "class": "IN",
                  "ipv4_addresses": [
                     "209.85.202.27"
                  ],
                  "name": "alt1.aspmx.l.google.com",
                  "preference": 5,
                  "ttl": 300,
                  "type": "MX"
               },
               {
                  "class": "IN",
                  "ipv4_addresses": [
                     "142.250.31.26"
                  ],
                  "name": "aspmx.l.google.com",
                  "preference": 1,
                  "ttl": 300,
                  "type": "MX"
               }
            ]
         },
         "duration": 0.154786958,
         "status": "NOERROR",
         "timestamp": "2024-08-23T13:10:11-04:00"
      }
   }
}

Otros módulos DNS

ZDNS también admite consultas DNS especiales de "depuración". Los módulos incluyen: BINDVERSION.

Formatos de entrada

ZDNS admite proporcionar entrada en una variedad de formatos según el comportamiento deseado.

Entrada básica

La entrada más básica es una lista de nombres separados por nuevas líneas. Por ejemplo:

Desde stdin:

echo "google.com\nyahoo.com" | zdns A
cat list_of_domains.txt | zdns A

Desde un archivo

zdns A --input-file=list_of_domains.txt

Entrada estilo dig

Si no necesita resolver muchos dominios, se admite proporcionar el dominio como argumento CLI, similar a dig, para facilitar su uso.

Por ejemplo:

zdns A google.com --name-servers=1.1.1.1

Equivalente a dig -t A google.com @1.1.1.1

Servidores de nombres por dominio

Normalmente, ZDNS elegirá un servidor de nombres aleatorio para cada consulta de dominio de --name-servers. Si en su lugar desea especificar un servidor de nombres diferente para cada dominio, puede hacerlo proporcionando pares domainName,nameServerIP separados por nuevas líneas. Esto anulará cualquier servidor de nombres proporcionado con --name-servers.

Por ejemplo:

echo "google.com,1.1.1.1\nfacebook.com,8.8.8.8" | zdns A

Puede ver que el resolver es el especificado para cada dominio en la salida (adicionales/respuestas omitidos por brevedad):

$ echo "google.com,1.1.1.1\nfacebook.com,8.8.8.8" | zdns A
{"name":"google.com","results":{"A":{"data":{"additionals":...,"answers":[...],"protocol":"udp","resolver":"1.1.1.1:53"},"duration":0.030490042,"status":"NOERROR","timestamp":"2024-09-13T09:51:34-04:00"}}}
{"name":"facebook.com","results":{"A":{"data":{"additionals":[...],"answers":[...],"protocol":"udp","resolver":"8.8.8.8:53"},"duration":0.061365459,"status":"NOERROR","timestamp":"2024-09-13T09:51:34-04:00"}}}

Archivos de zona

Los archivos de zona (de ICANN CZDS o similares) se pueden utilizar como fuente de entrada para ZDNS con el indicador --zone-file. Esto permite analizar archivos de zona desde stdin (predeterminado) o desde un archivo con el indicador --input-file.

Descargar herramienta