DNS-Enumeration mit dnsenum

Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie das dnsenum-Tool zur DNS-Enumeration verwenden, um kritische Informationen über die Infrastruktur einer Ziel-Domäne zu ermitteln. Sie üben die Installation des Tools, die Auswahl geeigneter Ziele, die Ausführung von Scans und die Interpretation von Ergebnissen wie Subdomains und DNS-Einträgen.

Das Lab bietet praktische Erfahrungen in der systematischen DNS-Recherche, einschließlich der Tool-Einrichtung, der Zielüberprüfung und der Befehlsausführung. Sie werden wichtige Fähigkeiten zur Identifizierung von Sicherheitslücken durch die Analyse von DNS-Daten entwickeln.


Skills Graph

Installation von dnsenum

In diesem Schritt installieren Sie das dnsenum-Tool, eine DNS-Enumerations-Utility, die zur Sammlung von Informationen über die DNS-Infrastruktur einer Domäne verwendet wird. Die DNS-Enumeration ist eine grundlegende Reconnaissance-Technik in der Cybersicherheit, die hilft, potenzielle Angriffsflächen zu identifizieren. Das dnsenum-Tool automatisiert den Prozess der Entdeckung von Subdomains, DNS-Einträgen (wie A-, MX-, NS-Einträgen) und anderen wertvollen Informationen über die Netzwerkkonfiguration einer Ziel-Domäne.

Bevor wir beginnen, verstehen wir zunächst, warum wir diese spezifische Verzeichnisstruktur verwenden. Das Verzeichnis ~/project ist ein sauberer Arbeitsbereich, den wir für Sie vorbereitet haben, um Ihre Tools organisiert zu halten. Dies ist auch in realen Sicherheitsbewertungen eine gute Praxis.

  1. Stellen Sie zunächst sicher, dass Sie sich im Standardarbeitsverzeichnis befinden:

    cd ~/project

Der nächste Befehl installiert Perl und mehrere Perl-Module, von denen dnsenum für die ordnungsgemäße Funktion abhängt. Perl ist eine Skriptsprache, in der dnsenum geschrieben ist, während die anderen Module Netzwerk- und DNS-Funktionalität bieten.

  1. Installieren Sie die erforderlichen Abhängigkeiten für dnsenum:

    sudo apt-get update && sudo apt-get install -y perl libnet-dns-perl libnet-netmask-perl libnet-ip-perl

Jetzt laden wir das eigentliche dnsenum-Tool von seinem offiziellen GitHub-Repository herunter. GitHub ist der Ort, an dem Entwickler Open-Source-Projekte wie dieses teilen.

  1. Laden Sie dnsenum von seinem offiziellen Repository herunter:

    git clone https://github.com/fwaeytens/dnsenum.git

Nach dem Herunterladen müssen wir in das dnsenum-Verzeichnis wechseln, um auf die Dateien des Tools zugreifen zu können. Hier befindet sich auch das Hauptskript dnsenum.pl.

  1. Navigieren Sie in das dnsenum-Verzeichnis:

    cd dnsenum

Schließlich überprüfen wir, ob die Installation erfolgreich war, indem wir das Hilfemenü prüfen. Dies ist ein wichtiger Schritt bei jedem neuen Tool - das Verständnis seiner Optionen, bevor es gegen reale Ziele ausgeführt wird.

  1. Überprüfen Sie die Installation, indem Sie das Hilfemenü prüfen:
    perl dnsenum.pl --help
    Sie sollten die Nutzungsinformationen und verfügbaren Optionen des Tools sehen. Diese Ausgabe zeigt Ihnen alle Befehle und Schalter, die Sie mit dnsenum für verschiedene Arten von DNS-Enumerationsaufgaben verwenden können.

Auswahl einer Ziel-Domäne

In diesem Schritt wählen Sie eine geeignete Ziel-Domäne für die DNS-Enumeration aus. Die DNS-Enumeration ist der Prozess der Entdeckung aller DNS-Einträge, die einer Domäne zugeordnet sind. Dies hilft Sicherheitsfachleuten, die Infrastruktur einer Website zu verstehen. Die Wahl des richtigen Ziels ist für ethische Sicherheits-Tests von entscheidender Bedeutung - wir verwenden immer autorisierte Domänen oder spezielle Testdomänen wie example.com.

  1. Stellen Sie zunächst sicher, dass Sie sich im richtigen Arbeitsverzeichnis befinden. Hier werden wir alle unsere DNS-Enumerationsdateien speichern:

    cd ~/project/dnsenum
  2. In diesem Lab verwenden wir example.com als unsere Ziel-Domäne. Diese Domäne ist speziell von der IANA (Internet Assigned Numbers Authority) für Dokumentation und Tests reserviert, was sie perfekt für das Erlernen von DNS-Enumerationstechniken macht. Denken Sie daran: Bei realen Sicherheitsbewertungen müssen Sie immer die entsprechende Genehmigung einholen, bevor Sie eine Domäne scannen.

  3. Lassen Sie uns überprüfen, ob die Domäne über eine einfache DNS-Abfrage erreichbar ist. Dieser Befehl prüft, ob der Domänenname in eine IP-Adresse aufgelöst werden kann:

    nslookup example.com

    Sie sollten DNS-Auflösungsinformationen sehen, die die IP-Adressen der Domäne anzeigen. Wenn Sie einen Fehler erhalten, überprüfen Sie Ihre Internetverbindung.

  4. Wir erstellen eine Textdatei, um unsere Ziel-Domäne zu speichern. Diese Datei wird später von dnsenum verwendet:

    echo "example.com" > target_domain.txt
  5. Sehen Sie sich den Inhalt Ihrer Zieldatei an, um zu bestätigen, dass sie korrekt erstellt wurde:

    cat target_domain.txt

    Die Ausgabe sollte example.com anzeigen. Dieser einfache Überprüfungsschritt hilft, Fehler in späteren Phasen des Enumerationsprozesses zu vermeiden.

Ausführen der DNS-Enumeration

In diesem Schritt führen Sie eine DNS-Enumeration für Ihre Ziel-Domäne mit dem zuvor installierten dnsenum-Tool durch. Die DNS-Enumeration ist eine grundlegende Reconnaissance-Technik, die Sicherheitsfachleuten hilft, die digitale Infrastruktur einer Domäne zu kartieren, indem sie Subdomains, DNS-Einträge und andere Netzwerkinformationen entdecken.

  1. Navigieren Sie zunächst in das dnsenum-Verzeichnis, in dem sich das Tool befindet. Dadurch stellen Sie sicher, dass Sie sich am richtigen Ort befinden und alle erforderlichen Dateien zur Verfügung haben:

    cd ~/project/dnsenum
  2. Führen Sie dnsenum mit einer grundlegenden Enumeration gegen Ihre Ziel-Domäne (example.com) aus. Das Flag --enum teilt dem Tool mit, eine Standard-DNS-Enumeration durchzuführen:

    perl dnsenum.pl --enum example.com

    Dieser grundlegende Scan wird wichtige DNS-Informationen aufdecken, darunter:

    • Host-Adressen (A-Einträge, die Domänen auf IPs abbilden)
    • Namensserver (NS-Einträge, die die autoritativen DNS-Server anzeigen)
    • Mailserver (MX-Einträge für die E-Mail-Infrastruktur)
    • Gemeinsame Subdomains durch Brute-Force-Raten
  3. Für umfassendere Ergebnisse verbessern wir den Scan mit zusätzlichen Parametern. Dieser tiefere Scan ist nützlich, wenn Sie umfassende Informationen über ein Ziel benötigen:

    perl dnsenum.pl --enum -f dns.txt --threads 5 example.com

    Dieser erweiterte Befehl:

    • Nutzt eine Subdomain-Wortliste (dns.txt), um häufige Namensmuster zu testen
    • Läuft mit 5 parallelen Threads, um den Scanning-Prozess zu beschleunigen
    • Führt umfassende Prüfungen durch, einschließlich Reverse-Lookups und Versuchen von Zone-Transfers
  4. Untersuchen Sie sorgfältig die Ausgabe, die anzeigen wird:

    • Entdeckte Subdomains (potenzielle Einstiegspunkte in die Zielsysteme)
    • IP-Adressen (die anzeigen, wo Dienste gehostet werden)
    • Verschiedene DNS-Eintragstypen (A, MX, NS usw., die die Dienstkonfigurationen aufzeigen)
    • Zone-Transfer-Versuche (zum Testen auf fehlerhaft konfigurierte DNS-Server)

Überprüfung von Subdomains und Einträgen

In diesem Schritt analysieren Sie die Ergebnisse der DNS-Enumeration, um Subdomains und verschiedene DNS-Einträge zu identifizieren. Die DNS-Enumeration ist eine entscheidende Reconnaissance-Technik, die die Struktur des Netzwerks einer Domäne aufdeckt. Durch die Untersuchung dieser Ergebnisse können Sie verstehen, wie die Ziel-Domäne ihre Dienste organisiert und potenzielle Einstiegspunkte für weitere Untersuchungen identifizieren.

  1. Navigieren Sie zunächst in das Verzeichnis mit den dnsenum-Ergebnissen, in dem Ihre Scan-Daten gespeichert sind:

    cd ~/project/dnsenum

    In diesem Verzeichnis befinden sich die Ausgabedateien Ihres früheren DNS-Enumerationscans. Wir werden mit der XML-Format-Ausgabe arbeiten, die strukturierte Daten über die Domäne enthält.

  2. Sehen Sie sich die XML-Ausgabedatei Ihres vorherigen Scans an:

    cat dnsenum_example.com.xml

    Dieser Befehl zeigt die Rohdaten im XML-Format an, die alle gesammelten DNS-Informationen enthalten. Die Datei umfasst mehrere wichtige DNS-Eintragstypen:

    • Host-Adressen (A-Einträge) - Diese verknüpfen Domänennamen mit IP-Adressen
    • Namensserver (NS-Einträge) - Die autoritativen DNS-Server für die Domäne
    • Mailserver (MX-Einträge) - Server, die für die E-Mail-Zustellung verantwortlich sind
    • Entdeckte Subdomains - Zusätzliche Domänen unter der Hauptdomäne
  3. Für eine bessere Lesbarkeit bei der Arbeit mit großen Ergebnismengen können Sie bestimmte Eintragstypen filtern:

    grep -E "<host>|<a>" dnsenum_example.com.xml

    Dieser grep-Befehl extrahiert nur die Host-Einträge und ihre entsprechenden IP-Adressen, wodurch es einfacher wird, zu sehen, welche Domänennamen auf welche IPs aufgelöst werden.

  4. Um nur die während der Enumeration gefundenen Subdomains anzuzeigen:

    grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1

    Diese Pipeline sucht zunächst alle Host-Einträge und verwendet dann cut, um nur die Domänennamen zwischen den XML-Tags zu extrahieren. Subdomains können zusätzliche Dienste oder potenziell anfällige Systeme aufdecken.

  5. Untersuchen Sie die Namensserver, die für die DNS-Infrastruktur der Domäne von entscheidender Bedeutung sind:

    grep -A1 "<nameserver>" dnsenum_example.com.xml

    Das -A1-Flag zeigt jeden Namensserver-Eintrag plus eine Zeile danach an, sodass Sie sowohl den Tag als auch den eigentlichen Servernamen sehen.

  6. Prüfen Sie auf Mailserver, die die E-Mail-Zustellung für die Domäne übernehmen:

    grep -A1 "<mx>" dnsenum_example.com.xml

    MX-Einträge zeigen die Priorität und den Hostnamen der Mailserver an. Diese werden oft in Sicherheitsbewertungen als Ziel ausgewählt, da sie sensible Kommunikationen verarbeiten.

Speichern der Enumerationsdaten

In diesem Schritt speichern und organisieren Sie die Ergebnisse Ihrer DNS-Enumeration ordnungsgemäß für die zukünftige Referenz und Berichterstattung. Eine ordnungsgemäße Dokumentation ist in Cybersicherheitsbewertungen unerlässlich, da sie hilft, Aufzeichnungen zu führen, Ergebnisse zu verfolgen und die Ergebnisse mit Teammitgliedern zu teilen.

  1. Stellen Sie zunächst sicher, dass Sie sich im richtigen Verzeichnis befinden, in dem sich die dnsenum-Ausgabedateien befinden. Dies ist wichtig, da alle nachfolgenden Befehle mit den Dateien in diesem Verzeichnis arbeiten werden:

    cd ~/project/dnsenum
  2. Erstellen Sie ein Verzeichnis mit einem Zeitstempel für Ihre Ergebnisse. Die Verwendung von Daten in Verzeichnisnamen hilft, mehrere Scans chronologisch zu organisieren. Das -p-Flag erstellt übergeordnete Verzeichnisse, falls sie nicht existieren:

    mkdir -p results/$(date +%Y-%m-%d)
  3. Kopieren Sie alle relevanten Dateien in das Ergebnisse-Verzeichnis. Hier verschieben wir speziell die XML-Ausgabedatei von dnsenum an unseren organisierten Speicherort:

    cp dnsenum_example.com.xml results/$(date +%Y-%m-%d)/
  4. Erstellen Sie einen für Menschen lesbaren Zusammenfassungsbericht. Dieses Skript extrahiert Schlüsselinformationen aus der XML-Datei und formatiert sie in einen einfachen Textbericht. Die grep-Befehle filtern bestimmte Daten, während die cut-Befehle nur die relevanten Teile zwischen den XML-Tags extrahieren:

    {
      echo "DNS Enumeration Report - $(date)"
      echo "=============================="
      echo -e "\nSubdomains Found:"
      grep "<host>" dnsenum_example.com.xml | cut -d'>' -f2 | cut -d'<' -f1
      echo -e "\nName Servers:"
      grep -A1 "<nameserver>" dnsenum_example.com.xml | grep "<host>" | cut -d'>' -f2 | cut -d'<' -f1
    } > results/$(date +%Y-%m-%d)/report.txt
  5. Überprüfen Sie Ihre gespeicherten Dateien, um sicherzustellen, dass alles korrekt kopiert wurde. Der ls -l-Befehl zeigt detaillierte Dateiinformationen an, einschließlich Berechtigungen und Zeitstempeln:

    ls -l results/$(date +%Y-%m-%d)/
  6. Komprimieren Sie die Ergebnisse für einfaches Teilen. Der tar-Befehl packt Dateien zusammen, während die Gzip-Komprimierung (die z-Option) die Dateigröße für den Transfer reduziert:

    tar -czvf example.com_enum_results.tar.gz results/$(date +%Y-%m-%d)/

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die DNS-Enumeration für Cybersicherheitszwecke mit dem dnsenum-Tool durchführen. Der Prozess umfasste die Installation des Tools, die Überprüfung der Erreichbarkeit der Domäne und die Durchführung grundlegender DNS-Suchen, wobei ethische Aspekte betont wurden.

Sie haben wichtige Schritte geübt, darunter das Klonen von Repositories, die Navigation in Verzeichnissen und die Überprüfung der Installation über das Hilfemenü. Das Lab hat die richtige Einrichtung des Tools und Techniken zur Validierung des Ziels gezeigt, wobei example.com als sichere Übungsdomäne verwendet wurde.