Angriff auf IPv6-Ziele mit Hydra

HydraHydraBeginner
Jetzt üben

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

Einführung

In diesem Labor lernen Sie, wie Sie IPv6-Ziele mit Hydra angreifen. Das Labor konzentriert sich auf die Konfiguration eines Servers mit einer IPv6-Adresse und den anschließenden Einsatz von Hydra zur Attacke des SSH-Dienstes.

Das Labor beginnt mit der Konfiguration des Servers mit der IPv6-Adresse 2001:db8:1::1/64 auf der eth0-Schnittstelle mithilfe des Befehls ip. Anschließend aktivieren Sie die Schnittstelle und überprüfen die Konfiguration. Schließlich verwenden Sie Hydra mit der Option -6, um den IPv6 SSH-Dienst anzugreifen und die Ergebnisse der Attacke zu überprüfen.

IPv6-Adresse für den Server konfigurieren

In diesem Schritt konfigurieren Sie die LabEx-VM mit einer IPv6-Adresse. Dies ist ein entscheidender Schritt, um IPv6-Kommunikation zu ermöglichen und den anschließenden Angriff auf den IPv6 SSH-Dienst vorzubereiten.

Zunächst verstehen wir die Grundlagen der IPv6-Adressierung. IPv6-Adressen sind 128-Bit-Adressen, die typischerweise in hexadezimaler Notation dargestellt werden. Eine typische IPv6-Adresse sieht so aus: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Zur Vereinfachung der Konfiguration weisen Sie die Adresse 2001:db8:1::1/64 der Schnittstelle eth0 zu. Die Schnittstelle eth0 ist ein gängiger Name für Netzwerkverbindungen in Linux-Systemen.

Konfigurieren wir nun die IPv6-Adresse. Sie verwenden den Befehl ip, ein leistungsstarkes Werkzeug zur Verwaltung von Netzwerkschnittstellen.

  1. IPv6-Adresse zur Schnittstelle eth0 hinzufügen:

    Öffnen Sie Ihr Terminal in der LabEx-VM. Führen Sie den folgenden Befehl aus:

    sudo ip addr add 2001:db8:1::1/64 dev eth0

    Dieser Befehl fügt die IPv6-Adresse 2001:db8:1::1/64 zur Schnittstelle eth0 hinzu. Die /64 gibt die Länge des Netzwerkpräfixes an, die die Größe des IPv6-Subnetzes bestimmt.

  2. Schnittstelle eth0 aktivieren:

    sudo ip link set dev eth0 up

    Dieser Befehl aktiviert die Schnittstelle eth0, sodass sie Netzwerkverkehr senden und empfangen kann.

  3. IPv6-Adresskonfiguration überprüfen:

    Um zu überprüfen, ob die IPv6-Adresse korrekt konfiguriert wurde, verwenden Sie erneut den Befehl ip addr:

    ip addr show eth0

    Die Ausgabe sollte die IPv6-Adresse 2001:db8:1::1/64 im Abschnitt inet6 enthalten. Sie sollten etwas Ähnliches wie Folgendes sehen:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:08:6d:7a brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.16.50.97/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159937sec preferred_lft 1892159937sec
        inet6 2001:db8:1::1/64 scope global
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe08:6d7a/64 scope link
           valid_lft forever preferred_lft forever

    Die Zeile inet6 2001:db8:1::1/64 scope global bestätigt, dass die IPv6-Adresse erfolgreich konfiguriert wurde.

Vorbereitung für den IPv6 SSH-Angriff

In diesem Schritt bereiten Sie sich auf den Angriff auf den IPv6 SSH-Dienst vor, indem Sie die Option -6 mit Netzwerktools verstehen und verwenden. Die Option -6 wird häufig verwendet, um IPv6 bei der Interaktion mit Netzwerkdiensten zu bevorzugen. Dies ist wichtig, da einige Tools standardmäßig IPv4 bevorzugen, wenn sowohl IPv4- als auch IPv6-Adressen verfügbar sind.

Um sicherzustellen, dass Sie die im vorherigen Schritt konfigurierte IPv6-Adresse ansprechen, verwenden Sie den Befehl ping mit der Option -6. Dies überprüft, ob Sie den Server über seine IPv6-Adresse erreichen können.

  1. IPv6-Adresse pingen:

    Öffnen Sie Ihr Terminal in der LabEx-VM. Führen Sie den folgenden Befehl aus:

    ping -6 2001:db8:1::1

    Dieser Befehl sendet ICMP Echo Request-Pakete an die IPv6-Adresse 2001:db8:1::1. Wenn der Server über IPv6 erreichbar ist, sollten Sie Antworten vom Server erhalten. Die Ausgabe sollte ähnlich wie folgt aussehen:

    PING 2001:db8:1::1(2001:db8:1::1) 56 data bytes
    64 bytes from 2001:db8:1::1: icmp_seq=1 ttl=64 time=0.026 ms
    64 bytes from 2001:db8:1::1: icmp_seq=2 ttl=64 time=0.041 ms
    64 bytes from 2001:db8:1::1: icmp_seq=3 ttl=64 time=0.035 ms
    64 bytes from 2001:db8:1::1: icmp_seq=4 ttl=64 time=0.032 ms
    ^C
    --- 2001:db8:1::1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3078ms
    rtt min/avg/max/mdev = 0.026/0.033/0.041/0.005 ms

    Drücken Sie Strg+C, um den Ping-Befehl nach einigen Paketen zu stoppen.

  2. Die Option -6 verstehen:

    Die Option -6 teilt dem Befehl ping mit, dass IPv6 verwendet werden soll. Viele andere Netzwerktools wie ssh, curl und wget unterstützen ebenfalls die Option -6. Durch die Verwendung dieser Option wird sichergestellt, dass das Tool versucht, eine Verbindung zum Zielhost über IPv6 herzustellen.

    Im nächsten Schritt verwenden Sie Hydra, um den SSH-Dienst anzugreifen. Sie verwenden die Option -6 mit Hydra, um die IPv6-Adresse des SSH-Servers gezielt anzugreifen. Dadurch wird sichergestellt, dass Sie die Sicherheit der IPv6 SSH-Konfiguration testen.

Angriff auf den IPv6 SSH-Dienst

In diesem Schritt verwenden Sie Hydra, um einen Brute-Force-Angriff auf den SSH-Dienst durchzuführen, der auf der zuvor konfigurierten IPv6-Adresse läuft. Hydra ist ein leistungsstarkes Passwort-Cracking-Tool, das verschiedene Protokolle, einschließlich SSH, unterstützt.

Vor Beginn erstellen Sie eine einfache Passwortliste. Diese Liste enthält die Passwörter, die Hydra verwenden wird, um sich beim SSH-Dienst zu authentifizieren.

  1. Starten des SSH-Dienstes:

    Zunächst müssen Sie sicherstellen, dass der SSH-Dienst auf dem System läuft. Führen Sie den folgenden Befehl aus, um den SSH-Dienst zu starten:

    sudo systemctl start ssh

    Sie können überprüfen, ob der SSH-Dienst läuft, indem Sie seinen Status abfragen:

    sudo systemctl status ssh

    Die Ausgabe sollte anzeigen, dass der Dienst aktiv und läuft.

  2. Konfiguration von SSH zum Hören auf IPv6:

    Standardmäßig hört SSH möglicherweise nur auf IPv4-Adressen. Sie müssen ihn konfigurieren, damit er auch auf IPv6-Adressen hört. Überprüfen Sie zunächst, auf welchen Adressen SSH derzeit hört:

    ss -tlnp | grep :22

    Sie sollten eine Ausgabe wie LISTEN 0 128 0.0.0.0:22 0.0.0.0:* sehen, was bedeutet, dass SSH nur auf IPv4 hört.

    Bearbeiten Sie nun die SSH-Konfigurationsdatei, um das Hören auf IPv6 zu aktivieren:

    sudo nano /etc/ssh/sshd_config

    Suchen Sie die Zeile, die #AddressFamily any oder AddressFamily inet enthält, und ändern Sie sie in:

    AddressFamily any

    Falls die Zeile nicht vorhanden ist, fügen Sie sie hinzu. Dies teilt SSH mit, dass es sowohl auf IPv4- als auch auf IPv6-Adressen hören soll.

    Speichern Sie die Datei, indem Sie Strg + X, dann Y zum Bestätigen des Speicherns und Eingabe zum Bestätigen des Dateinamens drücken.

    Starten Sie den SSH-Dienst neu, um die Änderungen anzuwenden:

    sudo systemctl restart ssh

    Überprüfen Sie, ob SSH nun sowohl auf IPv4 als auch auf IPv6 hört:

    ss -tlnp | grep :22

    Sie sollten nun sehen, dass SSH sowohl auf 0.0.0.0:22 (IPv4) als auch auf [::]:22 (IPv6) hört.

  3. Erstellen einer Passwortliste:

    Öffnen Sie Ihr Terminal in der LabEx-VM. Sie befinden sich derzeit im Verzeichnis ~/project. Verwenden Sie den Editor nano, um eine Datei namens passwords.txt in diesem Verzeichnis zu erstellen:

    nano passwords.txt

    Fügen Sie die folgenden Passwörter in die Datei ein, jeweils eine Passwort pro Zeile:

    password
    123456
    qwerty
    admin
    labex

    Speichern Sie die Datei, indem Sie Strg + X, dann Y zum Bestätigen des Speicherns und Eingabe zum Bestätigen des Dateinamens drücken.

  4. Ausführen von Hydra zum Angriff auf den IPv6 SSH-Dienst:

    Nun verwenden Sie Hydra, um den SSH-Dienst anzugreifen. Verwenden Sie die Option -6, um anzugeben, dass die IPv6-Adresse angegriffen werden soll. Geben Sie auch den Benutzernamen an, den Sie angreifen möchten (z. B. labex), die von Ihnen erstellte Passwortliste (passwords.txt) und die IPv6-Adresse des SSH-Servers (2001:db8:1::1).

    Führen Sie den folgenden Befehl aus:

    hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]

    Zerlegung des Befehls:

    • hydra: Der Befehl zum Ausführen des Hydra-Tools.
    • -6: Gibt an, dass Hydra IPv6 verwenden soll.
    • -l labex: Gibt den anzugreifenden Benutzernamen an. In diesem Fall greifen Sie den Benutzer labex an.
    • -P passwords.txt: Gibt die zu verwendende Passwortliste an. In diesem Fall verwenden Sie die Datei passwords.txt, die Sie im aktuellen Verzeichnis ~/project erstellt haben.
    • ssh://[2001:db8:1::1]: Gibt den Ziel-SSH-Dienst an. Das Präfix ssh:// zeigt an, dass Sie einen SSH-Dienst angreifen, und [2001:db8:1::1] ist die IPv6-Adresse des Servers in eckigen Klammern (erforderlich für IPv6-Adressen in Hydra).

    Hydra beginnt nun, die Passwörter in der Datei passwords.txt gegen den SSH-Dienst zu testen. Wenn Hydra ein gültiges Passwort findet, zeigt es die Anmeldeinformationen an. Die Ausgabe sieht bei fehlenden Passwörtern möglicherweise so aus:

    Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Bitte verwenden Sie dieses Tool nicht gegen militärische oder Geheimdienstorganisationen oder für illegale Zwecke (dies ist nicht bindend, diese *** ignorieren Gesetze und Ethik trotzdem).
    
    Hydra (https://github.com/vanhauser-thc/thc-hydra) gestartet am YYYY-MM-DD HH:MM:SS
    [WARNUNG] Viele SSH-Konfigurationen begrenzen die Anzahl paralleler Aufgaben. Es wird empfohlen, die Aufgaben zu reduzieren: verwenden Sie -t 4
    [DATEN] maximal 5 Aufgaben pro 1 Server, insgesamt 5 Aufgaben, 5 Anmeldeversuche (b:1/p:5), ~1 Versuch pro Aufgabe
    [DATEN] Angriff auf ssh://[2001:db8:1::1]:22/
    1 von 1 Ziel abgeschlossen, 0 gültige Passwörter gefunden
    Hydra beendet.

    Wenn kein Passwort gefunden wird, können Sie versuchen, Ihrer Datei passwords.txt weitere gängige Passwörter hinzuzufügen. Sie können auch die Option -V verwenden, um eine ausführlichere Ausgabe zu erhalten, die jeden Versuch anzeigt:

    hydra -6 -V -l labex -P passwords.txt ssh://[2001:db8:1::1]

    Sollte Hydra ein Passwort erfolgreich finden, sieht die Ausgabe wie folgt aus:

    Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Bitte verwenden Sie dieses Tool nicht gegen militärische oder Geheimdienstorganisationen oder für illegale Zwecke (dies ist nicht bindend, diese *** ignorieren Gesetze und Ethik trotzdem).
    
    Hydra (https://github.com/vanhauser-thc/thc-hydra) gestartet am YYYY-MM-DD HH:MM:SS
    [WARNUNG] Viele SSH-Konfigurationen begrenzen die Anzahl paralleler Aufgaben. Es wird empfohlen, die Aufgaben zu reduzieren: verwenden Sie -t 4
    [DATEN] maximal 5 Aufgaben pro 1 Server, insgesamt 5 Aufgaben, 5 Anmeldeversuche (b:1/p:5), ~1 Versuch pro Aufgabe
    [DATEN] Angriff auf ssh://[2001:db8:1::1]:22/
    [22][ssh] host: 2001:db8:1::1   login: labex   password: [gefundenes_passwort]
    1 von 1 Ziel erfolgreich abgeschlossen, 1 gültiges Passwort gefunden
    Hydra beendet.

    Diese Ausgabe zeigt an, dass Hydra das Passwort für den Benutzer labex erfolgreich geknackt hat.

    Wichtiger Hinweis: Das Brute-Forcing von Passwörtern gegen ein System ohne Autorisierung ist illegal und unethisch. Dieses Labor dient nur zu Ausbildungszwecken, und Sie sollten diese Techniken nur auf Systemen anwenden, die Ihnen gehören oder auf denen Sie explizit die Erlaubnis zum Testen haben.

Überprüfung der Ergebnisse des IPv6-Angriffs

In diesem Schritt überprüfen Sie die Ergebnisse des Hydra-Angriffs auf den IPv6 SSH-Dienst. Sie prüfen, ob Hydra das Passwort erfolgreich geknackt hat und versuchen gegebenenfalls, sich mit den geknackten Anmeldeinformationen beim SSH-Dienst anzumelden.

  1. Überprüfung der Hydra-Ausgabe:

    Überprüfen Sie sorgfältig die Ausgabe des Hydra-Befehls aus dem vorherigen Schritt. Suchen Sie nach einer Zeile, die ein erfolgreiches Knacken des Passworts anzeigt. Die Ausgabe sollte ähnlich wie folgt aussehen:

    [22][ssh] host: 2001:db8:1::1   login: labex   password: [gefundenes_passwort]

    Wenn Sie diese Zeile sehen, bedeutet dies, dass Hydra das Passwort für den Benutzer labex erfolgreich geknackt hat. Wenn kein Passwort gefunden wurde, zeigt dies an, dass die aktuelle Passwortliste das richtige Passwort nicht enthält, was tatsächlich ein gutes Sicherheitszeichen ist.

  2. Versuch der Anmeldung beim SSH-Dienst (falls ein Passwort gefunden wurde):

    Wenn Hydra ein Passwort gefunden hat, können Sie versuchen, sich mit dem Befehl ssh beim SSH-Dienst anzumelden. Verwenden Sie die Option -6, um anzugeben, dass Sie sich mit der IPv6-Adresse verbinden möchten.

    Führen Sie den folgenden Befehl aus, wobei Sie das von Hydra gefundene Passwort verwenden:

    ssh -6 labex@2001:db8:1::1

    Geben Sie bei Aufforderung des Passworts das geknackte Passwort ein. Bei erfolgreicher Anmeldung werden Sie am SSH-Server angemeldet.

    Wenn Hydra kein Passwort gefunden hat, können Sie dennoch die SSH IPv6-Konnektivität testen, indem Sie versuchen, eine Verbindung herzustellen (es wird nach einem Passwort gefragt, aber Sie können Strg+C drücken, um abzubrechen):

    ssh -6 labex@2001:db8:1::1

    Die Tatsache, dass Sie eine Passworteingabe erhalten, bestätigt, dass SSH korrekt für IPv6 konfiguriert ist und Hydra in der Lage war, eine Verbindung zum Dienst herzustellen.

  3. Sicherheitshinweise:

    Dieses Labor hat die Bedeutung starker Passwörter und der Implementierung von Sicherheitsbest Practices zum Schutz Ihres SSH-Dienstes demonstriert. Hier sind einige Empfehlungen:

    • Verwendung starker Passwörter: Verwenden Sie Passwörter mit mindestens 12 Zeichen und einer Mischung aus Groß- und Kleinbuchstaben, Zahlen und Symbolen.
    • Deaktivierung der Passwort-Authentifizierung: Erwägen Sie die Deaktivierung der Passwort-Authentifizierung und die Verwendung von SSH-Schlüsseln anstelle von Passwörtern. SSH-Schlüssel sind sicherer als Passwörter, da sie viel schwerer zu knacken sind.
    • Implementierung von Rate Limiting: Verwenden Sie Tools wie fail2ban, um Rate Limiting für SSH-Anmeldeversuche zu implementieren. Dies verhindert, dass Angreifer in kurzer Zeit zu viele Passwörter ausprobieren.
    • Halten Sie Ihre Software auf dem neuesten Stand: Stellen Sie sicher, dass Ihre SSH-Server-Software mit den neuesten Sicherheitsupdates auf dem neuesten Stand ist.

Zusammenfassung

In diesem Labor haben Sie einen Server mit einer IPv6-Adresse konfiguriert, ein entscheidender Schritt zur Aktivierung der IPv6-Kommunikation. Dies beinhaltete das Verständnis der Grundlagen der IPv6-Adressierung und die Verwendung des Befehls ip, um die Adresse 2001:db8:1::1/64 der Schnittstelle eth0 zuzuweisen.

Anschließend haben Sie die Schnittstelle aktiviert und die Konfiguration mit ip addr show eth0 verifiziert, um sicherzustellen, dass die IPv6-Adresse korrekt zugewiesen wurde. Sie haben auch SSH so konfiguriert, dass es auf IPv6-Adressen hört, indem Sie die SSH-Konfigurationsdatei geändert und den Dienst neu gestartet haben.

Schließlich haben Sie Hydra mit der Option -6 verwendet, um den IPv6 SSH-Dienst anzugreifen, und einen erfolgreichen Brute-Force-Angriff durchgeführt. Anschließend haben Sie die Angriffsresultate verifiziert, indem Sie sich mit den geknackten Anmeldeinformationen beim SSH-Dienst angemeldet haben. Dieses Labor demonstrierte die Fähigkeit von Hydra, IPv6-Ziele anzugreifen, und unterstrich die Bedeutung starker Passwörter und Sicherheitsbest Practices für SSH-Dienste.