Kali-Reconnaissance mit Nmap und DNS

Kali LinuxBeginner
Jetzt üben

Einführung

In diesem Lab erlernen Sie die Grundlagen der Informationsbeschaffung (Reconnaissance) mit Kali Linux, wobei der Fokus auf Techniken zum Scannen von Netzwerken und DNS-Abfragen liegt. Diese praxisnahe Erfahrung führt Sie durch die Identifizierung offener Ports und Dienste auf einem Zielsystem mittels nmap, einem leistungsstarken Werkzeug für Netzwerk-Scans, sowie durch das Sammeln von DNS-Informationen mit dnsrecon. Dieses Lab wurde speziell für Anfänger konzipiert und bietet Schritt-für-Schritt-Anleitungen innerhalb einer sicheren LabEx-VM-Umgebung, die auf einem unabhängigen Cloud-Host läuft. Sie werden Port-Scans mit nmap durchführen, Dienste mithilfe von Skripten aufzählen, DNS-Einträge abfragen und Ihre Ergebnisse für spätere Analysen speichern. Sobald Sie das Terminal öffnen, werden Sie automatisch mit der Shell des Kali-Linux-Containers verbunden und können sofort mit den Übungen beginnen, ohne den Container manuell starten oder betreten zu müssen.

Installation und Durchführung eines einfachen Nmap-Scans

In diesem ersten Schritt lernen Sie, wie Sie nmap installieren und verwenden. nmap ist ein mächtiges Werkzeug für Netzwerk-Scans, um offene Ports auf einem Zielsystem zu identifizieren. Das Scannen von Ports ist eine grundlegende Fertigkeit bei der Informationsbeschaffung. Es hilft Ihnen dabei, herauszufinden, welche Dienste auf einem Rechner laufen, und potenziell Schwachstellen aufzudecken. Dieser Schritt ist für Einsteiger gedacht, und wir werden Sie durch jedes Detail führen.

Wenn Sie das Terminal in der LabEx-VM-Umgebung öffnen, werden Sie automatisch mit der Shell des Kali-Linux-Containers verbunden. Es ist nicht erforderlich, den Container manuell zu starten oder die Shell aufzurufen; die Umgebung ist bereits für Sie vorbereitet.

Bevor wir beginnen, schauen wir uns an, was nmap eigentlich macht. nmap (kurz für Network Mapper) ist ein Werkzeug zur Entdeckung von Hosts und Diensten in einem Netzwerk, indem es Pakete sendet und die Antworten analysiert. Offene Ports weisen oft auf laufende Dienste hin, wie zum Beispiel Webserver oder SSH, die Einstiegspunkte für weitere Analysen sein können.

Lassen Sie uns nun nmap installieren und einen einfachen Scan durchführen. Folgen Sie diesen Anweisungen sorgfältig:

  1. Aktualisieren Sie zunächst die Paketliste, um sicherzustellen, dass Sie die neueste Version von nmap installieren können. Geben Sie den folgenden Befehl im Terminal ein und drücken Sie die Eingabetaste:

    apt update

    Dieser Befehl aktualisiert die Liste der verfügbaren Pakete. Der Vorgang kann einige Sekunden dauern; Sie sehen dabei die Fortschrittsanzeige der Aktualisierung.

  2. Installieren Sie als Nächstes nmap, indem Sie den folgenden Befehl eingeben und die Eingabetaste drücken:

    apt install -y nmap

    Das Flag -y bestätigt die Installation automatisch, ohne dass Sie erneut gefragt werden. Warten Sie, bis die Installation abgeschlossen ist; dies sollte nur kurze Zeit in Anspruch nehmen. Sie sehen eine Ausgabe, die den Fortschritt der Installation anzeigt.

  3. Sobald nmap installiert ist, führen wir einen einfachen Scan auf localhost durch (Ihr eigener Container, IP-Adresse 127.0.0.1), was ein sicheres Ziel zum Üben ist. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    nmap localhost

    Dieser Befehl scannt die gängigsten Ports auf localhost. Nach wenigen Sekunden sehen Sie eine Ausgabe, die in etwa so aussieht (die tatsächliche Ausgabe kann variieren):

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    In dieser Ausgabe bestätigt Host is up, dass das Ziel erreichbar ist. Die Tabelle listet die offenen Ports, ihren Status (open bedeutet erreichbar) und den zugehörigen Dienst auf (wie http auf Port 80). Diese Informationen helfen Ihnen zu verstehen, welche Dienste auf dem System aktiv sind.

Dieser Schritt hat Sie in die Installation und Verwendung von nmap für grundlegende Port-Scans eingeführt. Sie haben den ersten Schritt der Reconnaissance gemacht, indem Sie offene Ports auf einem sicheren Ziel identifiziert haben. Im nächsten Schritt werden wir darauf aufbauen und die Scan-Ergebnisse für weitere Analysen speichern. Stellen Sie sicher, dass Sie sich mit der Ausführung des nmap-Befehls vertraut fühlen, bevor Sie fortfahren.

Speichern von Nmap-Scan-Ergebnissen in einer Datei

Nachdem Sie nun einen grundlegenden Scan mit nmap durchgeführt haben, lernen wir, wie Sie die Ausgabe Ihres Scans in einer Datei speichern, um sie später wiederverwenden zu können. Das Speichern von Ergebnissen ist eine wesentliche Fertigkeit bei der Informationsbeschaffung, da es Ihnen ermöglicht, Funde zu dokumentieren und später zu analysieren, ohne die Scans erneut ausführen zu müssen. Dieser Schritt baut direkt auf dem vorherigen auf. Stellen Sie also sicher, dass Sie den einfachen nmap-Scan erfolgreich abgeschlossen haben.

Die Ausgabeumleitung unter Linux ermöglicht es Ihnen, die Ergebnisse eines Befehls in einer Datei zu speichern, anstatt sie im Terminal anzuzeigen. Dies geschieht mit dem Symbol >, das die Ausgabe in eine angegebene Datei schreibt und diese überschreibt, falls sie bereits existiert. Wir werden die Ergebnisse im Verzeichnis /root innerhalb des Kali-Linux-Containers speichern, welches Ihr Standard-Arbeitsbereich ist.

Folgen Sie diesen Anweisungen, um Ihre nmap-Scan-Ergebnisse zu speichern:

  1. Führen Sie einen weiteren nmap-Scan auf localhost durch und leiten Sie die Ausgabe in eine Datei namens nmap_scan.txt im Verzeichnis /root um. Geben Sie den folgenden Befehl im Terminal ein und drücken Sie die Eingabetaste:

    nmap localhost > /root/nmap_scan.txt

    Das Symbol > leitet die Ausgabe des Befehls nmap localhost in die Datei /root/nmap_scan.txt um. Sie werden die Scan-Ergebnisse nicht im Terminal sehen, da sie direkt in der Datei gespeichert werden. Warten Sie einige Sekunden, bis der Scan abgeschlossen ist.

  2. Um zu bestätigen, dass die Ausgabe erfolgreich gespeichert wurde, lassen Sie sich den Inhalt der Datei anzeigen. Geben Sie dazu den folgenden Befehl ein und drücken Sie die Eingabetaste:

    cat /root/nmap_scan.txt

    Sie sollten eine Ausgabe sehen, die der folgenden ähnelt (die tatsächliche Ausgabe kann variieren):

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    Dies bestätigt, dass die Scan-Ergebnisse erfolgreich in /root/nmap_scan.txt gespeichert wurden. Das Speichern von Ausgaben in Dateien ist eine praktische Methode, um den Überblick über Ihre Erkenntnisse während der Reconnaissance-Aufgaben zu behalten.

In diesem Schritt haben Sie gelernt, wie Sie die nmap-Ausgabe zur Dokumentation in eine Datei umleiten. Diese Fertigkeit wird nützlich sein, wenn wir im nächsten Schritt zu fortgeschritteneren Scan-Techniken übergehen. Vergewissern Sie sich, dass Sie die gespeicherten Ergebnisse in der Datei sehen können, bevor Sie fortfahren.

Aufzählung von Diensten mit Nmap-Skripten

Aufbauend auf Ihren grundlegenden Scan-Kenntnissen führt dieser Schritt die Dienst-Enumeration (Aufzählung) mithilfe von nmap-Skripten ein, um detaillierte Informationen über die an offenen Ports laufenden Dienste zu sammeln. Die Dienst-Enumeration ist ein kritischer Teil der Reconnaissance, da sie hilft, spezifische Versionen von Diensten zu identifizieren, die möglicherweise bekannte Schwachstellen aufweisen. Dieser Schritt setzt voraus, dass nmap installiert ist und Sie die vorherigen Scans abgeschlossen haben.

Die Dienst-Enumeration geht über das bloße Finden offener Ports hinaus; sie zielt darauf ab, die exakte Software und Version zu identifizieren, die auf diesen Ports läuft. nmap bietet eine Skript-Engine namens NSE (Nmap Scripting Engine), die vordefinierte Skripte zur Erkennung von Dienstdetails und potenziellen Problemen enthält. Wir werden in diesem Schritt das Flag -sV für die Versionserkennung verwenden.

Lassen Sie uns die Dienste auf localhost anhand der folgenden Anweisungen aufzählen:

  1. Führen Sie einen nmap-Scan mit Versionserkennung auf localhost durch. Geben Sie den folgenden Befehl im Terminal ein und drücken Sie die Eingabetaste:

    nmap -sV localhost

    Das Flag -sV weist nmap an, offene Ports auf detaillierte Dienst- und Versionsinformationen zu untersuchen. Warten Sie, bis der Scan abgeschlossen ist; dies kann einige Sekunden länger dauern als der einfache Scan. Sie sollten eine Ausgabe sehen, die der folgenden ähnelt (die tatsächliche Ausgabe kann variieren):

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE VERSION
    80/tcp   open  http    Apache httpd 2.4.41 ((Ubuntu))
    ...
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

    In dieser Ausgabe können Sie die Version des Dienstes sehen, der auf Port 80 läuft, wie zum Beispiel Apache httpd 2.4.41. Diese Information ist wertvoll, da für spezifische Versionen bekannte Schwachstellen existieren könnten, die weiter recherchiert werden können.

  2. Speichern Sie die Ergebnisse dieses Versionserkennungs-Scans in einer Datei namens service_scan.txt im Verzeichnis /root. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    nmap -sV localhost > /root/service_scan.txt

    Wie zuvor leitet das Symbol > die Ausgabe in die angegebene Datei um. Sie werden die Ergebnisse nicht im Terminal sehen, da sie direkt in /root/service_scan.txt gespeichert werden.

  3. Bestätigen Sie, dass die Ausgabe gespeichert wurde, indem Sie den Dateiinhalt anzeigen. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    cat /root/service_scan.txt

    Sie sollten die gleichen detaillierten Ergebnisse wie oben sehen, die nun für spätere Zwecke in der Datei gespeichert sind.

Dieser Schritt hat Ihnen gezeigt, wie Sie nmap für die Dienst-Enumeration einsetzen, um tiefere Einblicke in die auf einem Ziel laufenden Dienste zu erhalten. Im nächsten Schritt werden wir die DNS-Reconnaissance mit einem anderen Werkzeug untersuchen. Stellen Sie sicher, dass Sie verstehen, wie man Scans zur Versionserkennung durchführt und die Ausgabe speichert, bevor Sie fortfahren.

Installation und DNS-Abfrage mit dnsrecon

In diesem Schritt verlagern wir den Fokus auf die DNS-Reconnaissance mit dnsrecon, einem Werkzeug zum Sammeln von DNS-Informationen über eine Domain. Die DNS-Enumeration hilft dabei, Subdomains, Mailserver und andere Infrastrukturdetails zu identifizieren, die entscheidend für das Verständnis der Online-Präsenz eines Ziels sind. Dieser Schritt ist für Anfänger konzipiert und setzt voraus, dass Sie in der Kali-Linux-Container-Shell arbeiten.

Das DNS (Domain Name System) übersetzt Domainnamen wie example.com in IP-Adressen, die Computer zur Kommunikation verwenden. DNS-Einträge enthalten Informationen wie IP-Adressen für Hosts (A-Records), Mailserver (MX-Records) und mehr. dnsrecon ist ein Werkzeug, das diese Einträge abfragt, um Details über die Konfiguration einer Domain aufzudecken. Für dieses Lab verwenden wir example.com als sicheres Übungsziel.

Folgen Sie diesen Anweisungen, um dnsrecon zu installieren und zu verwenden:

  1. Aktualisieren Sie die Paketliste, um sicherzustellen, dass Sie die neueste Version von dnsrecon installieren können. Geben Sie den folgenden Befehl im Terminal ein und drücken Sie die Eingabetaste:

    apt update

    Dies aktualisiert die Paketliste. Warten Sie, bis der Vorgang abgeschlossen ist; Sie sehen die Fortschrittsanzeige der Aktualisierung.

  2. Installieren Sie dnsrecon, indem Sie den folgenden Befehl eingeben und die Eingabetaste drücken:

    apt install -y dnsrecon

    Das Flag -y bestätigt die Installation automatisch. Warten Sie, bis die Installation beendet ist; dies sollte nur wenige Sekunden dauern. Sie sehen die Fortschrittsanzeige der Installation.

  3. Sobald das Tool installiert ist, führen Sie eine grundlegende DNS-Enumeration für example.com durch. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    dnsrecon -d example.com

    Die Option -d gibt die abzufragende Domain an. Nach der Ausführung des Befehls sehen Sie eine Ausgabe, die der folgenden ähnelt (die tatsächliche Ausgabe kann variieren):

    [*] Performing General Enumeration of Domain: example.com
    [*] DNSSEC is not configured for example.com
    [*] SOA ns.icann.org 199.4.138.53
    [*] NS ns.icann.org 199.4.138.53
    [*] A example.com 93.184.216.34
    [*] AAAA example.com 2606:2800:220:1:248:1893:25c8:1946
    [*] MX example.com 0 .
    [*] TXT example.com "v=spf1 -all"
    [*] Enumeration Complete.

    Diese Ausgabe zeigt verschiedene DNS-Einträge für example.com und gibt Einblick in deren Konfiguration:

    • SOA (Start of Authority): Enthält administrative Informationen über die Zone.
    • NS (Name Server): Listet die Server auf, die für die Domain autoritativ sind.
    • A (Address): Verknüpft den Domainnamen mit einer IPv4-Adresse.
    • AAAA (IPv6 Address): Verknüpft den Domainnamen mit einer IPv6-Adresse.
    • MX (Mail Exchanger): Gibt die Mailserver an, die für den Empfang von E-Mails für die Domain zuständig sind.
    • TXT (Text): Enthält beliebigen Text, der oft für Verifizierungszwecke wie SPF (Sender Policy Framework) verwendet wird, wie hier gezeigt (v=spf1 -all).
  4. Speichern Sie die Ergebnisse der DNS-Enumeration in einer Datei namens dns_results.txt im Verzeichnis /root. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    dnsrecon -d example.com > /root/dns_results.txt

    Das Symbol > leitet die Ausgabe in die angegebene Datei um. Sie werden die Ergebnisse nicht im Terminal sehen, da sie direkt in /root/dns_results.txt gespeichert werden.

  5. Bestätigen Sie, dass die Ausgabe gespeichert wurde, indem Sie den Dateiinhalt anzeigen. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

    cat /root/dns_results.txt

    Sie sollten die gleichen DNS-Enumerationsergebnisse wie oben sehen, die nun in der Datei gespeichert sind.

Dieser Schritt hat Sie in die DNS-Reconnaissance mit dnsrecon eingeführt und gezeigt, wie man kritische Domain-Informationen sammelt. Im nächsten Schritt werden wir all Ihre Erkenntnisse in einer einzigen Zusammenfassungsdatei kombinieren. Vergewissern Sie sich, dass Sie die gespeicherten DNS-Ergebnisse sehen können, bevor Sie fortfahren.

Zusammenfassung

In diesem Lab haben Sie grundlegende Techniken der Informationsbeschaffung (Reconnaissance) mit Kali-Linux-Werkzeugen erlernt, um Informationen über ein Zielsystem zu sammeln. Sie begannen mit der Installation und Verwendung von nmap, um ein einfaches Port-Scanning auf einem sicheren lokalen Ziel (localhost) durchzuführen und dabei offene Ports sowie zugehörige Dienste wie den installierten Apache-Webserver zu identifizieren. Anschließend haben Sie diese Ergebnisse zur Dokumentation in einer Datei gespeichert. Danach haben Sie die Dienst-Enumeration mit nmap-Skripten erkundet, um detaillierte Versionsinformationen aufzudecken, gefolgt von der DNS-Reconnaissance mit dnsrecon, um Domain-Einträge für example.com abzufragen. Diese grundlegenden Fähigkeiten im Netzwerk-Scanning und in der Informationsbeschaffung sind entscheidend für Penetrationstests und Audits der Netzwerksicherheit.