Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
zdns — Schnelle DNS-Nachschlagebibliothek und CLI-Tool | Kitploit
Tools/GitHubGitHub/zmap/zdns
AufklärungInformationsbeschaffungNetzwerksicherheitDienstprogramme & FrameworksDNS-Analyse
GitHubzmap/zdns

zdns

Schnelle DNS-Nachschlagebibliothek und CLI-Tool

Repository anzeigen
1.1k15014vor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ZDNS

Go Report Card

ZDNS ist ein Hochgeschwindigkeits-DNS-Resolver und ein Befehlszeilenwerkzeug zur Durchführung von großflächigen DNS-Messungen. ZDNS ist in Go geschrieben und enthält einen eigenen rekursiven Auflösungscode sowie einen Cache, der für die Suche einer Vielzahl von Namen optimiert ist. Wir verwenden https://github.com/zmap/dns zum Erstellen und Parsen von rohen DNS-Paketen. Weitere Informationen zur Architektur und Leistung von ZDNS finden Sie im folgenden Paper, das auf der ACM Internet Measurement Conference '22 erschienen ist.

[!TIP] Das ZDNS Wiki enthält zusätzliche Informationen zu ZDNS und führt durch Anwendungsfälle und Beispiele.

Installation

ZDNS kann installiert werden, indem das Repository ausgecheckt und make install ausgeführt wird.

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

Verwendung

ZDNS besteht aus einer rekursiven Resolver-Bibliothek und einem CLI-Wrapper.

Die Bibliothek besteht aus einer ResolverConfig-Struktur, die alle Konfigurationsoptionen für alle durchgeführten Lookups enthält. Die ResolverConfig wird verwendet, um 1+ Resolver-Strukturen zu erstellen, die alle Lookups durchführen. Ein Resolver sollte nur einen einzelnen Lookup gleichzeitig durchführen (er ist nicht threadsicher) und mehrere Resolver-Strukturen sollten für Parallelisierung verwendet werden. Siehe unsere Beispiele zur Verwendung der Bibliothek. Module werden verwendet, um das Verhalten der Lookups zu definieren.

ZDNS bietet verschiedene Arten von Modulen:

  • Raw DNS-Module liefern die rohe DNS-Antwort vom Server, ähnlich wie dig, jedoch im JSON-Format. Es gibt ein Modul für (fast) jeden DNS-Record-Typ.

  • Lookup-Module liefern hilfreichere Antworten, wenn mehrere Abfragen erforderlich sind (z. B. Durchführung einer zusätzlichen A-Abfrage für IP-Adressen, wenn ein NS in NSLOOKUP empfangen wird).

  • Sonstige Module bieten weitere zusätzliche Möglichkeiten zur Abfrage von Servern (z. B. bind.version).

Wir beschreiben die Module im Folgenden:

Raw DNS-Module

Die Module 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 und URI liefern die rohe DNS-Antwort im JSON-Format, ähnlich wie dig.

Zum Beispiel liefert der Befehl:

echo "censys.io" | zdns A

zurück:

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

Lookup-Module

Rohe DNS-Antworten liefern häufig nicht die Daten, die Sie möchten. Beispielsweise enthält eine MX-Antwort möglicherweise nicht die zugehörigen A-Records im zusätzlichen Abschnitt, was eine zusätzliche Abfrage erforderlich macht. Um diese Lücke zu schließen und eine benutzerfreundlichere Oberfläche bereitzustellen, bieten wir auch mehrere Lookup-Module an: alookup, mxlookup und nslookup.

alookup verhält sich ähnlich wie nslookup und folgt CNAME-Records. mxlookup führt zusätzlich eine A-Abfrage für die IP-Adressen durch, die einem Exchange-Record entsprechen. nslookup führt zusätzlich eine A/AAAA-Abfrage für IP-Adressen durch, die einem NS-Record entsprechen.

Zum Beispiel:

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

gibt zurück:

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

Andere DNS-Module

ZDNS unterstützt auch spezielle "Debug"-DNS-Abfragen. Zu den Modulen gehören: BINDVERSION.

Eingabeformate

ZDNS unterstützt die Bereitstellung von Eingaben in verschiedenen Formaten, abhängig vom gewünschten Verhalten.

Basis-Eingabe

Die grundlegendste Eingabe ist eine Liste von Namen, die durch Zeilenumbrüche getrennt sind. Zum Beispiel:

Über stdin:

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

Aus einer Datei:

zdns A --input-file=list_of_domains.txt

Dig-artige Eingabe

Wenn Sie nicht viele Domains auflösen müssen, wird die Angabe der Domain als CLI-Argument ähnlich wie bei dig aus Gründen der Benutzerfreundlichkeit unterstützt.

Zum Beispiel:

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

Entspricht dig -t A google.com @1.1.1.1

Nameserver pro Domain

Normalerweise wählt ZDNS für jede Domain-Abfrage einen zufälligen Nameserver aus --name-servers aus. Wenn Sie stattdessen für jede Domain einen anderen Nameserver angeben möchten, können Sie dies tun, indem Sie Paare von domainName,nameServerIP durch Zeilenumbrüche getrennt angeben. Dies überschreibt alle mit --name-servers angegebenen Nameserver.

Zum Beispiel:

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

Sie sehen den resolver wie angegeben für jede Domain in der Ausgabe (zur Kürze redigierte Zusätze/Antworten):

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

Zonendateien

Zonendateien (von ICANN CZDS oder ähnlich) können als Eingabequelle für ZDNS mit dem Flag --zone-file verwendet werden. Dies ermöglicht das Parsen von Zonendateien entweder von stdin (Standard) oder aus einer Datei mit dem Flag --input-file.

Tool herunterladen