Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
zdns — Bibliothèque de recherche DNS rapide et outil en ligne de commande | Kitploit
Outils/GitHubGitHub/zmap/zdns
ReconnaissanceCollecte d'InformationsSécurité RéseauUtilitaires et FrameworksAnalyse DNS
GitHubzmap/zdns

zdns

Bibliothèque de recherche DNS rapide et outil en ligne de commande

Voir le dépôt
1.1k15014il y a 1 jourVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ZDNS

Go Report Card

ZDNS est un résolveur DNS haute vitesse et un utilitaire en ligne de commande pour effectuer des mesures DNS à grande échelle. ZDNS est écrit en Go et contient son propre code de résolution récursive ainsi qu'un cache optimisé pour effectuer des recherches sur un ensemble diversifié de noms. Nous utilisons https://github.com/zmap/dns pour construire et analyser les paquets DNS bruts. Pour plus d'informations sur l'architecture et les performances de ZDNS, consultez l'article suivant papier présenté à l'Internet Measurement Conference '22 de l'ACM.

[!TIP] Le Wiki ZDNS contient des informations supplémentaires sur ZDNS et parcourt des cas d'utilisation et des exemples.

Installation

ZDNS peut être installé en clonant le dépôt et en exécutant make install.

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

Utilisation

ZDNS se compose d'une bibliothèque de résolveur récursif library et d'un wrapper en ligne de commande CLI wrapper.

La bibliothèque consiste en une structure ResolverConfig qui contiendra toutes les options de configuration pour toutes les recherches effectuées. Le ResolverConfig est utilisé pour créer une ou plusieurs structures Resolver qui effectueront toutes les recherches. Un Resolver ne doit effectuer qu'une seule recherche à la fois (il n'est pas thread-safe) et plusieurs structures Resolver doivent être utilisées pour le parallélisme. Consultez nos exemples pour savoir comment utiliser la bibliothèque. Les Modules sont utilisés pour définir le comportement des recherches.

ZDNS fournit plusieurs types de modules :

  • Modules DNS bruts fournissent la réponse DNS brute du serveur, similaire à dig, mais en JSON. Il existe un module pour (presque) chaque type d'enregistrement DNS.

  • Modules de recherche fournissent des réponses plus utiles lorsque plusieurs requêtes sont nécessaires (par exemple, effectuer une recherche A supplémentaire pour les adresses IP si une NS est reçue dans NSLOOKUP).

  • Modules divers fournissent d'autres moyens supplémentaires d'interroger les serveurs (par exemple, bind.version).

Nous détaillons les modules ci-dessous :

Modules DNS bruts

Les modules 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 et URI fournissent la réponse DNS brute sous forme JSON, similaire à dig.

Par exemple, la commande :

echo "censys.io" | zdns A

retourne :

{
   "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"
      }
   }
}

Modules de recherche

Les réponses DNS brutes ne fournissent souvent pas les données dont vous avez besoin. Par exemple, une réponse MX peut ne pas inclure les enregistrements A associés dans la section supplémentaire, nécessitant une recherche supplémentaire. Pour combler cette lacune et fournir une interface plus conviviale, nous proposons également plusieurs modules de recherche : alookup, mxlookup et nslookup.

alookup agit de manière similaire à nslookup et suivra les enregistrements CNAME. mxlookup effectuera en plus une recherche A pour les adresses IP correspondant à un enregistrement d'échange. nslookup effectuera en plus une recherche A/AAAA pour les adresses IP correspondant à un enregistrement NS.

Par exemple,

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

retourne :

{
   "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"
      }
   }
}

Autres modules DNS

ZDNS prend également en charge les requêtes DNS spéciales de « débogage ». Les modules incluent : BINDVERSION.

Formats d'entrée

ZDNS permet de fournir une entrée dans différents formats selon le comportement souhaité.

Entrée de base

L'entrée la plus basique est une liste de noms séparés par des sauts de ligne. Par exemple :

Depuis l'entrée standard :

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

Depuis un fichier

zdns A --input-file=list_of_domains.txt

Entrée de style dig

Si vous n'avez pas besoin de résoudre beaucoup de domaines, fournir le domaine comme argument CLI, similaire à dig, est pris en charge pour la facilité d'utilisation.

Par exemple :

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

Équivalent à dig -t A google.com @1.1.1.1

Serveurs de noms par domaine

Normalement, ZDNS choisira un serveur de noms aléatoire pour chaque recherche de domaine parmi --name-servers. Si vous souhaitez plutôt spécifier un serveur de noms différent pour chaque domaine, vous pouvez le faire en fournissant des paires domainName,nameServerIP séparées par des sauts de ligne. Cela remplacera tout serveur de noms fourni avec --name-servers.

Par exemple :

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

Vous pouvez voir que le resolver est celui spécifié pour chaque domaine dans la sortie (additionals/answers tronqués par souci de concision) :

$ 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"}}}

Fichiers de zone

Télécharger l’outil