In diesem Lab lernen Sie die wesentlichen Befehle und Techniken für die Verwendung von Hydra, einem vielseitigen Tool zum Knacken von Passwörtern. Sie werden grundlegende Befehlsstrukturen mit wichtigen Optionen wie Benutzername (-l/-L), Passwort (-p/-P) und Port (-s) kennenlernen und einen einfachen SSH-Angriff gegen einen Testserver üben.
Die Übungen führen Sie durch die Zielkonfiguration, die Ausführung des Angriffs und die Interpretation der Ausgabe. Durch den Abschluss dieses Labs sammeln Sie praktische Erfahrungen mit der Kernfunktionalität von Hydra für grundlegende Brute-Force-Versuche (Brute-Force-Angriffe) gegen Netzwerkdienste.
Wichtig: Dieses Lab ist für die Desktop-Oberfläche konzipiert. Führen Sie die Befehle NICHT in der Single-Terminal-Oberfläche aus.
Die Befehlsstruktur von Hydra verstehen
In diesem Schritt werden wir die grundlegende Befehlsstruktur von Hydra untersuchen. Hydra ist ein leistungsstarkes Tool zum Testen der Passwortsicherheit durch Brute-Force-Angriffe (Brute-Force-Attacken). Bevor wir beginnen, ist es wichtig zu verstehen, dass Hydra systematisch verschiedene Kombinationen aus Benutzernamen und Passwörtern gegen Netzwerkdienste ausprobiert, um schwache Anmeldeinformationen zu identifizieren.
Der grundlegende Hydra-Befehl folgt diesem Muster:
Lassen Sie uns die am häufigsten verwendeten Optionen aufschlüsseln, um zu verstehen, was jeder Teil bewirkt:
-l oder -L: Diese ermöglichen es Ihnen, entweder einen einzelnen Benutzernamen (-l) zum Testen oder eine Datei mit mehreren Benutzernamen (-L) anzugeben.
-p oder -P: Ähnlich wie bei Benutzernamen können Sie damit entweder ein einzelnes Passwort (-p) oder mehrere Passwörter aus einer Datei (-P) testen.
-t: Steuert, wie viele Versuche Hydra gleichzeitig unternimmt (parallele Threads).
-s: Wichtig, wenn der Dienst, den Sie testen, nicht seine Standard-Portnummer verwendet.
-vV: Zeigt detaillierte Fortschrittsinformationen während des Angriffs an.
-o: Speichert Ihre Ergebnisse zur späteren Überprüfung in einer angegebenen Datei.
Um zu überprüfen, ob Hydra korrekt funktioniert und alle verfügbaren Optionen anzuzeigen, beginnen wir mit einem einfachen Befehl, der das Hilfemenü anzeigt:
hydra -h
Nachdem Sie dies ausgeführt haben, sollten Sie die vollständige Liste der Optionen und Befehle von Hydra sehen. Diese Ausgabe bestätigt, dass das Tool ordnungsgemäß installiert und für unsere Sicherheitsüberprüfungsübungen bereit ist. Das Hilfemenü ist auch eine nützliche Referenz, wenn Sie während Ihrer Arbeit die spezifische Befehlssyntax überprüfen müssen.
Zielhost und Port angeben
In diesem Schritt lernen Sie, wie Sie den Zielhost und den Port bei der Verwendung von Hydra angeben. Dies ist wichtig, um Ihren Angriff auf den richtigen Dienst zu lenken. Stellen Sie sich das wie das Adressieren eines Briefumschlags vor - Sie benötigen das richtige Ziel (IP/Hostname) und den spezifischen Briefkasten (Port), um Ihre Nachricht zuzustellen.
Das grundlegende Format für die Angabe von Zielinformationen in Hydra lautet:
hydra [options] < service > :// < target > [:port]
Lassen Sie uns jede Komponente aufschlüsseln:
<service>: Das Protokoll oder der Dienst, den Sie angreifen (z. B. ssh, ftp, http). Dies teilt Hydra mit, welche Art von Authentifizierung versucht werden soll.
<target>: Die IP-Adresse oder der Hostname des Zielservers. Dies ist wie die Gebäudeadresse, auf die Sie zugreifen möchten.
[:port]: Optionale Portnummer. Dienste laufen normalerweise auf Standardports (wie 22 für SSH), aber manchmal werden sie aus Sicherheitsgründen auf andere Ports verschoben.
Zum Üben verwenden wir einen Test-SSH-Server, der auf localhost (127.0.0.1) auf Port 22 läuft. Das bedeutet, dass wir unseren eigenen Rechner angreifen, was zum Lernen sicher ist. Versuchen Sie diesen Befehl, um die Zielspezifikation zu überprüfen:
-vV bewirkt, dass Hydra detaillierte Ausgaben anzeigt, damit Sie sehen können, was passiert
-l testuser gibt einen Testbenutzernamen an
-p testpass gibt ein Testpasswort an
ssh://127.0.0.1:22 weist Hydra an, die SSH-Authentifizierung auf unserem lokalen Rechner zu versuchen
Hinweis: Dies ist nur ein Testbefehl, um die Syntax zu demonstrieren. Wir werden in späteren Schritten echte Anmeldeinformationen verwenden, wenn Sie verstehen, wie die Teile zusammenpassen.
Benutzernamen- und Passwortoptionen verwenden
In diesem Schritt werden wir untersuchen, wie Hydra Authentifizierungsdaten für Brute-Force-Angriffe (Brute-Force-Attacken) verarbeitet. Das Verständnis dieser Optionen ist entscheidend, da Hydra wissen muss, welche Kombinationen beim Versuch, sich am Zielsystem anzumelden, ausprobiert werden sollen.
Hydra bietet drei Hauptmethoden zur Angabe von Anmeldeinformationen, die jeweils für verschiedene Szenarien geeignet sind:
Einzelne Anmeldeinformationen testen (nützlich für eine schnelle Überprüfung):
hydra -l username -p password ssh://127.0.0.1
Dieser Befehl versucht genau eine Kombination aus Benutzername und Passwort für den SSH-Dienst.
Listenbasiertes Testen (üblich für Wörterbuchangriffe (Dictionary Attacks)):
Hier versucht Hydra jede mögliche Kombination zwischen Benutzernamen in usernames.txt und Passwörtern in passwords.txt.
Gepaarte Anmeldeinformationsdatei (wenn Benutzernamen und Passwörter direkt verknüpft sind):
hydra -C creds.txt ssh://127.0.0.1
Dies verwendet eine Datei, in der jede Zeile einen Benutzernamen und ein Passwort enthält, die durch einen Doppelpunkt getrennt sind (username:password).
Lassen Sie uns Testdateien erstellen, um diese Optionen zu üben. Zuerst erstellen wir eine einfache Benutzernamenliste mit gängigen administrativen Konten:
echo -e "admin\nroot\ntestuser" > usernames.txt
Als Nächstes erstellen wir eine Passwortliste mit einigen schwachen Passwörtern, die häufig in realen Systemen zu finden sind:
Die -vV-Flags bewirken, dass Hydra eine detaillierte Ausgabe anzeigt, sodass Sie den Fortschritt des Angriffs beobachten und verstehen können, was in jedem Schritt geschieht.
Einen einfachen SSH-Angriffsbefehl ausführen
In diesem Schritt kombinieren Sie alle bisherigen Erkenntnisse, um einen vollständigen SSH-Brute-Force-Angriff (SSH Brute-Force Attack) mit Hydra auszuführen. Wir verwenden den Test-SSH-Server, der auf localhost (127.0.0.1) mit den zuvor vorbereiteten Anmeldeinformationen läuft. Diese praktische Übung hilft Ihnen zu verstehen, wie Hydra systematisch verschiedene Kombinationen aus Benutzernamen und Passwörtern für einen SSH-Dienst ausprobiert.
Bevor wir den Angriff starten, überprüfen wir, ob unsere Zielkonfiguration ordnungsgemäß funktioniert. Wir versuchen eine manuelle SSH-Verbindung, um zu bestätigen, dass der Dienst ausgeführt wird:
(Geben Sie "Strg+C" ein, wenn Sie zur Eingabe des Passworts aufgefordert werden, um zu Ihrer Sitzung zurückzukehren)
Dieser manuelle Test hilft uns zu bestätigen, dass der SSH-Dienst aktiv ist und auf Verbindungsversuche reagiert. Wenn Hydra ausgeführt wird, werden ähnliche Verbindungsversuche unternommen, aber der Prozess mit mehreren Versuchen automatisiert.
LabEx VM stellt das Passwort für labex in der Umgebungsvariable PASSWORD bereit. Fügen wir es zur Testzwecken der Passwortdatei hinzu:
Wichtig: Führen Sie die folgenden Befehle in der Desktop-Oberfläche aus, da Sie sonst die Umgebungsvariable PASSWORD nicht erhalten.
Führen wir nun den eigentlichen Hydra-Angriffsbefehl aus. Hier fügen wir alle Komponenten zusammen, die wir vorbereitet haben - die Benutzernamenliste, die Passwortliste und die Zielinformationen:
Lassen Sie uns aufschlüsseln, was jeder Parameter bewirkt:
-vV: Aktiviert die ausführliche Ausgabe, sodass Sie den Fortschritt von Hydra in Echtzeit sehen können
-L usernames.txt: Gibt die Datei mit potenziellen Benutzernamen an, die ausprobiert werden sollen
-P passwords.txt: Gibt die Datei mit potenziellen Passwörtern an, die getestet werden sollen
-t 4: Legt die Anzahl der parallelen Verbindungen (Threads) fest, die verwendet werden sollen
ssh://127.0.0.1: Identifiziert unser Ziel als SSH-Dienst auf localhost
Der Befehl testet systematisch alle Kombinationen aus unseren Benutzer- und Passwortlisten. In unserer kontrollierten Testumgebung wird dies absichtlich fehlschlagen, um gültige Anmeldeinformationen zu finden, aber Sie werden genau sehen, wie Hydra die Kombinationen durcharbeitet. Die ausführliche Ausgabe zeigt Ihnen jeden Versuch, den Hydra unternimmt, und hilft Ihnen, den Brute-Force-Prozess (Brute-Force Prozess) zu verstehen.
Beachten Sie, wie Hydra automatisch fehlgeschlagene Versuche behandelt und mit der nächsten Kombination fortfährt. Dies demonstriert die Leistungsfähigkeit automatisierter Tools im Vergleich zu manuellen Tests. Der Vorgang kann einige Augenblicke dauern, da Hydra alle möglichen Kombinationen in unseren Testdateien durcharbeitet.
Befehlsausgabe überprüfen
In diesem Schritt werden wir untersuchen, wie man die Ausgabe von Hydra nach der Ausführung eines SSH-Angriffs liest und versteht. Dies ist wichtig, da die Ausgabe uns mitteilt, ob der Angriff erfolgreich war, und wertvolle Debugging-Informationen liefert. Als Anfänger lernen Sie, wichtige Erfolgsindikatoren in den Ergebnissen zu identifizieren.
Als Sie den SSH-Angriffsbefehl in Schritt 4 ausgeführt haben, hat Hydra eine Ausgabe generiert, die wie folgt aussieht:
[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... done
[STATUS] 80.00 tries/min, 80 tries in 00:01h, 19 to do in 00:01h
[22][ssh] host: 127.0.0.1 login: testuser password: testpass
1 of 1 target successfully completed, 1 valid password found
Lassen Sie uns aufschlüsseln, was jeder Teil bedeutet:
Die Zeile [DATA] zeigt den angegriffenen Zieldienst und die Adresse an
[STATUS] liefert Echtzeitstatistiken über den Fortschritt des Angriffs
Die wichtigste Zeile zeigt alle gefundenen Anmeldeinformationen im Format: [port][service] host: IP login: username password: password
Die letzte Zeile fasst die Angriffsergebnisse zusammen
Zur Dokumentation und späteren Analyse können Sie die Ausgabe von Hydra mit der Option -o in einer Datei speichern. Dadurch wird eine dauerhafte Aufzeichnung Ihrer Testergebnisse erstellt:
Nachdem der Befehl abgeschlossen ist, können Sie die gespeicherten Ergebnisse mit folgendem Befehl anzeigen:
cat results.txt
Diese Datei enthält die gleiche Ausgabe, die Sie im Terminal gesehen haben, sodass Sie die Ergebnisse später überprüfen oder mit Teammitgliedern teilen können.
Zusammenfassung
In diesem Lab haben Sie die wesentlichen Befehle und Techniken zur Durchführung von Passwort-Cracking-Angriffen (Password-Cracking Attacks) mit Hydra erlernt. Die Übungen umfassten die Kernbefehlssyntax, einschließlich der Angabe von Benutzernamen/Passwörtern mit den Flags -l/-L und -p/-P, der Portkonfiguration mit -s und der grundlegenden Überprüfung der Hydra-Installation.
Sie haben auch die Zielspezifikation im Format <service>://<target>[:port] anhand praktischer SSH-Angriffsbeispiele geübt. Diese grundlegenden Fähigkeiten ermöglichen es Ihnen, grundlegende Hydra-Operationen auszuführen und gleichzeitig die richtige Befehlsstruktur und Zieldefinition zu verstehen.