it-swarm.com.de

Wie kann ich ALLE DNS-Einträge auflisten?

Gibt es eine Möglichkeit, ALLE DNS-Einträge für eine Domäne aufzulisten?

Ich kenne solche Dinge wie Dig und nslookup, aber sie gehen nur so weit. Zum Beispiel, wenn ich einen Datensatz als Subdomain A habe

test A somedomain.co.uk

dann, wenn ich nicht ausdrücklich danach frage, z. 

Dig any test.somedomain.co.uk

Ich kann es nicht sehen.

Gibt es eine Möglichkeit (mit Ausnahme der Datensätze, indem Sie zum DNS-Manager gehen), um genau zu sehen, was alle DNS-Datensätze sind?

138
Ken

Wenn Sie nach ANY abfragen, erhalten Sie eine Liste aller Datensätze auf dieser Ebene, jedoch nicht darunter.

# try this
Dig google.com any

Dies kann A-Datensätze, TXT -Datensätze, NS -Datensätze, MX-Datensätze usw. zurückgeben, wenn der Domänenname genau "google.com" ist. Es werden jedoch keine untergeordneten Datensätze zurückgegeben (z. B. www.google.com). Genauer gesagt, können Sie diese Datensätze erhalten, wenn sie vorhanden sind. Der Nameserver muss diese Datensätze nicht zurückgeben, wenn er dies nicht tut (z. B. um die Antwortgröße zu reduzieren).

Eine AXFR ist eine Zonenübertragung und ist wahrscheinlich das, was Sie wollen. Diese sind jedoch normalerweise eingeschränkt und nur verfügbar, wenn Sie die Zone steuern. In der Regel führen Sie eine Zonentransfer direkt vom autorisierenden Server aus (@ns1.google.com unten) und häufig von einem Nameserver, der möglicherweise nicht veröffentlicht ist (einem Stealth-Nameserver).

# This will return "Transfer failed"
Dig @ns1.google.com google.com axfr

Wenn Sie die Kontrolle über die Zone haben, können Sie sie so einrichten, dass Transfers mit einem TSIG-Schlüssel geschützt werden. Dies ist ein gemeinsames Geheimnis, das der Client an den Server senden kann, um die Übertragung zu autorisieren.

158
denis phillips

Ich habe die Antwort von Josh verbessert. Ich habe festgestellt, dass Dig nur Einträge zeigt, die bereits im Cache des abgefragten Nameservers vorhanden sind. Daher ist es besser, einen autorisierenden Nameserver aus dem SOA zu ziehen (anstatt sich auf den Standardnamenserver zu verlassen). Ich habe auch die Filterung von Platzhalter-IPs deaktiviert, da ich mich normalerweise mehr für die Richtigkeit des Setups interessiere.

Das neue Skript benötigt ein -x-Argument für die erweiterte Ausgabe und ein -s NS-Argument, um einen bestimmten Nameserver auszuwählen: Dig -x example.com

#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""

while :; do case "$1" in
  --) shift; break ;;
  -x) EXTENDED=y; shift ;;
  -s) NS="$2"; shift 2 ;;
  *) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"

test "${NS:-}" || NS=$(Dig +short  SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"

if test "$EXTENDED"; then
  Dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
  wild_ips=$(Dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
  wild_ips="${wild_ips%|}"
  for sub in $COMMON_SUBDOMAINS; do
    Dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
  done | cat  #grep -vE "${wild_ips}"
  Dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
  Dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi
20
dan3

In Ermangelung der Möglichkeit, Zonentransfers durchzuführen, habe ich dieses kleine Bash-Skript dg geschrieben:

#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
    Dig +nocmd "$1" +noall +answer "${3:-any}"
    wild_ips="$(Dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
    wild_ips="${wild_ips%|}"
    for sub in "${COMMON_SUBDOMAINS[@]}"; do
        Dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
    done | grep -vE "${wild_ips}"
    Dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
    Dig +nocmd "$1" +noall +answer "${2:-any}"
fi

Jetzt benutze ich dg example.com, um eine nette, saubere Liste von DNS-Einträgen zu erhalten, oder dg example.com x, um eine Reihe anderer populärer Subdomains einzubeziehen.

grep -vE "${wild_ips}" filtert Einträge heraus, die das Ergebnis eines DNS-Eintrags mit Platzhaltern sein könnten, beispielsweise * 10800 IN A 1.38.216.82. Andernfalls würde ein Platzhalter-Eintrag den Anschein erwecken, als wären für jeden $COMMON_SUBDOMAN Datensätze vorhanden.

Hinweis: Dies basiert auf ANY-Abfragen, die von einigen DNS-Anbietern wie CloudFlare blockiert werden.

15
Zaz
  1. Eine Zonenübertragung ist die einzige Möglichkeit, um sicherzugehen, dass Sie über alle Datensätze der Unterdomäne verfügen. Wenn der DNS richtig konfiguriert ist, können Sie normalerweise keine externe Zonenübertragung durchführen.

  2. Das Projekt scans.io verfügt über eine Datenbank mit DNS-Einträgen, die heruntergeladen und nach Subdomains durchsucht werden können. Dazu müssen Sie die 87 GB an DNS-Daten herunterladen. Alternativ können Sie die Online-Suche der Daten unter https://hackertarget.com/find-dns-Host-records/ versuchen.

12
squizzy99

Was Sie wollen, wird als zone transfer bezeichnet. Sie können eine Zonenübertragung mit Dig -t axfr anfordern.

Eine zone ist eine Domäne und alle Domänen darunter, die nicht an einen anderen Server delegiert werden.

Beachten Sie, dass Zonenübertragungen nicht immer unterstützt werden. Sie werden nicht bei der normalen Suche verwendet, sondern nur beim Replizieren von DNS-Daten zwischen Servern. Es gibt jedoch andere Protokolle, die dafür verwendet werden können (z. B. rsync over ssh). Möglicherweise besteht ein Sicherheitsrisiko durch das Offenlegen von Namen. Das Erzeugen und Senden von Zonentransferantworten kostet mehr als normale DNS-Suchvorgänge.

11
deltab

Host -a funktioniert gut, ähnlich wie Dig any.

Z.B:

$ Host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:
;google.com.            IN  ANY

;; ANSWER SECTION:
google.com.     1165    IN  TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com.     53965   IN  SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com.     231 IN  A   173.194.115.73
google.com.     231 IN  A   173.194.115.78
google.com.     231 IN  A   173.194.115.64
google.com.     231 IN  A   173.194.115.65
google.com.     231 IN  A   173.194.115.66
google.com.     231 IN  A   173.194.115.67
google.com.     231 IN  A   173.194.115.68
google.com.     231 IN  A   173.194.115.69
google.com.     231 IN  A   173.194.115.70
google.com.     231 IN  A   173.194.115.71
google.com.     231 IN  A   173.194.115.72
google.com.     128 IN  AAAA    2607:f8b0:4000:809::1001
google.com.     40766   IN  NS  ns3.google.com.
google.com.     40766   IN  NS  ns4.google.com.
google.com.     40766   IN  NS  ns1.google.com.
google.com.     40766   IN  NS  ns2.google.com.
10
Datavar

Für Windows:

Möglicherweise müssen Sie den Status der DNS-Einträge Ihrer Domäne oder die Nameserver überprüfen, um festzustellen, welche Einträge von den Servern abgerufen werden.

  1. Starten Sie die Windows-Eingabeaufforderung, indem Sie zu Start> Eingabeaufforderung navigieren oder über Ausführen> CMD.

  2. Geben Sie NSLOOKUP ein und drücken Sie die Eingabetaste. Der Standardserver ist auf Ihr lokales DNS eingestellt, die Adresse ist Ihre lokale IP.

  3. Stellen Sie den DNS-Eintragstyp ein, nach dem Sie suchen möchten, indem Sie set type=## eingeben, wobei ## der Eintragstyp ist, und drücken Sie dann die Eingabetaste. Sie können ANY, A, AAAA, A + AAAA, CNAME, MX, NS, PTR, SOA oder SRV als Datensatztyp verwenden.

  4. Geben Sie nun den Domainnamen ein, den Sie abfragen möchten, und drücken Sie die Eingabetaste. In diesem Beispiel wird Managed.com verwendet.

  5. NSLOOKUP gibt nun die Datensatzeinträge für die von Ihnen eingegebene Domain zurück.

  6. Sie können auch die abgefragten Nameserver ändern. Dies ist nützlich, wenn Sie die Datensätze überprüfen, bevor DNS vollständig übertragen wurde. So ändern Sie den Name Server-Typ server [Name Server]. Ersetzen Sie [Nameserver] durch die Nameserver, die Sie verwenden möchten. In diesem Beispiel legen wir diese als NSA.managed.com fest.

  7. Ändern Sie nach dem Ändern den Abfragetyp (Schritt 3), falls erforderlich, und geben Sie dann eine neue Domäne ein (Schritt 4).

Für Linux:

1) DNS-Einträge mit Dig überprüfen Dig steht für Domain Information Groper ist ein flexibles Tool zum Abfragen von DNS-Nameservern. Es führt DNS-Lookups durch und zeigt die Antworten an, die von den abgefragten Nameservern zurückgegeben wurden. Die meisten DNS-Administratoren verwenden Dig zur Behebung von DNS-Problemen, da es flexibel, benutzerfreundlich und übersichtlich ist. Andere Nachschlagewerkzeuge weisen in der Regel eine geringere Funktionalität auf als Dig.

2) Überprüfen von DNS-Einträgen mit dem NSlookup-Befehl Nslookup ist ein Programm zum Abfragen von Internetdomänennamenservern. Nslookup hat zwei Modi interaktiv und nicht interaktiv.

Im interaktiven Modus kann der Benutzer Nameserver nach Informationen zu verschiedenen Hosts und Domänen abfragen oder eine Liste der Hosts in einer Domäne drucken.

Im nicht interaktiven Modus werden nur der Name und die angeforderten Informationen für einen Host oder eine Domain gedruckt. Es handelt sich um ein Netzwerkadministrationstool, mit dessen Hilfe sie DNS-bezogene Probleme überprüfen und beheben können.

3) Überprüfen von DNS-Einträgen mit dem Befehl Host Host ist ein einfaches Dienstprogramm zum Durchführen von DNS-Suchen. Es wird normalerweise verwendet, um Namen in IP-Adressen umzuwandeln und umgekehrt. Wenn keine Argumente oder Optionen angegeben sind, druckt Host eine kurze Zusammenfassung seiner Befehlszeilenargumente und -optionen.

2
Kervin L

Es ist nicht einfach, alle DNS-Einträge für eine Domäne in einer Instanz abzurufen. Sie können nur bestimmte Einträge anzeigen. Wenn Sie beispielsweise einen A-Eintrag für eine bestimmte Domäne anzeigen möchten, können Sie den folgenden Befehl verwenden: Dig a (type von Datensatz) domain.com. Dies gilt auch für alle anderen Arten von Datensätzen, die Sie für diese Domain anzeigen möchten. 

Wenn Sie mit der Befehlszeilenschnittstelle nicht vertraut sind, können Sie auch eine Site wie mxtoolbox.com verwenden. Das ist ein sehr praktisches Werkzeug zum Abrufen von Datensätzen einer Domäne.

Ich hoffe, das beantwortet deine Frage.

0
Mike Fraanje