In diesem Labor lernen Sie, die Verbindungsintervalle des Hydra-Passwort-Crack-Tools zu steuern. Das Labor demonstriert, wie Sie Hydra so konfigurieren, dass Verzögerungen zwischen den Verbindungsversuchen eingeführt werden, um das Angriffstempo zu verwalten und potenziell die Erkennung zu umgehen.
Das Labor beginnt mit der Einrichtung eines grundlegenden SSH-Servers auf der LabEx-VM unter Verwendung von OpenSSH. Sie installieren den Server, überprüfen seinen Status und stellen sicher, dass er auf Port 22 lauscht. Anschließend führen Sie Hydra mit den Standardzeiten aus und ändern dann den Befehl, um die Option -W 5 einzuschließen, die eine 5-Sekunden-Pause zwischen den Verbindungsversuchen einführt. Schließlich beobachten Sie die Auswirkungen dieser Zeitanpassung auf das allgemeine Angriffstempo.
Einfach starten, ohne Installation.
SSH-Server einrichten
In diesem Schritt richten wir einen grundlegenden SSH-Server auf der LabEx-VM ein. SSH (Secure Shell) ist ein kryptografisches Netzwerkprotokoll zum sicheren Betrieb von Netzwerkdiensten über ein unsicheres Netzwerk. Es wird häufig für Remote-Befehlszeilenanmeldungen und die Ausführung von Remote-Befehlen verwendet.
Zuerst müssen wir den OpenSSH-Server installieren. OpenSSH ist eine Sammlung sicherheitsrelevanter Netzwerk-Tools, die auf dem Secure Shell-Protokoll basieren, und es ist die gängigste SSH-Implementierung.
Öffnen Sie ein Terminal auf der LabEx-VM. Sie können das Standard-Xfce-Terminal verwenden.
Führen Sie den folgenden Befehl aus, um die Paketlisten zu aktualisieren:
sudo apt update
Dieser Befehl synchronisiert die Paketindexdateien von ihren Quellen. Es ist eine gute Praxis, dies auszuführen, bevor Sie neue Software installieren. Möglicherweise werden Sie nach Ihrem Passwort gefragt, aber denken Sie daran, dass der Benutzer labex ohne Passwort sudo-Berechtigungen hat.
Als Nächstes installieren Sie den OpenSSH-Server:
sudo apt install openssh-server -y
Der Flagge -y antwortet automatisch mit "ja" auf alle Eingabeaufforderungen während der Installation, wodurch der Prozess nicht interaktiv ist.
Nach Abschluss der Installation sollte der SSH-Server automatisch starten. Sie können seinen Status mit folgendem Befehl überprüfen:
sudo service ssh status
Um zu bestätigen, dass der SSH-Server läuft, können Sie überprüfen, ob der SSH-Port (Port 22) lauscht. Verwenden Sie den Befehl netstat:
netstat -tulnp | grep 22
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Dies zeigt an, dass der SSH-Server auf Port 22 sowohl für IPv4- als auch für IPv6-Verbindungen lauscht.
Nachdem der SSH-Server eingerichtet ist, können Sie sich von einem anderen Rechner aus über einen SSH-Client mit ihm verbinden. In diesem Labor konzentrieren wir uns jedoch darauf, Hydra zum Knacken des SSH-Passworts zu verwenden.
Hydra mit Standardzeiten ausführen
In diesem Schritt führen wir Hydra aus, um das SSH-Passwort zu knacken. Wir verwenden eine einfache Benutzer- und Passwortliste und beobachten das Angriffstempo mit den Standardzeiteinstellungen.
Erstellen wir zunächst eine Benutzerliste mit dem Namen users.txt im Verzeichnis ~/project. Diese Datei enthält einen einzigen Benutzernamen: labex.
Führen Sie im Terminal den folgenden Befehl aus, um die Datei users.txt zu erstellen:
echo "labex" > ~/project/users.txt
Als Nächstes erstellen Sie eine Passwortliste mit dem Namen passwords.txt im Verzeichnis ~/project. Diese Datei enthält einige gängige Passwörter, einschließlich des korrekten Passworts für den Benutzer labex.
Wichtig: Sie müssen die folgenden Befehle im Desktop-Terminal ausführen, da die Umgebungsvariable PASSWORD nur im Desktop-Umfeld verfügbar ist.
Führen Sie im Desktop-Terminal die folgenden Befehle aus, um die Datei passwords.txt zu erstellen:
In unserem Fall ist der Zielhost localhost (die LabEx-VM selbst), der Dienst ist ssh, und wir verwenden die gerade erstellten Benutzer- und Passwortlisten.
-L ~/project/users.txt: Gibt die Benutzerliste im Dateipfad ~/project/users.txt an.
-P ~/project/passwords.txt: Gibt die Passwortliste im Dateipfad ~/project/passwords.txt an.
localhost: Der Zielhost (in diesem Fall der lokale Rechner).
ssh: Der Dienst, der angegriffen werden soll (SSH).
Hydra beginnt nun, sich mit den Benutzernamen und Passwörtern aus den Listen beim SSH-Server anzumelden. Sie sehen eine Ausgabe, die den Fortschritt des Angriffs anzeigt. Es wird jede Kombination aus Benutzernamen und Passwort ausprobieren. Da das korrekte Passwort aus der Umgebungsvariable $PASSWORD in der Datei passwords.txt enthalten ist, sollte Hydra es relativ schnell finden.
Die Ausgabe sieht in etwa so aus:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: [actual_password]
Hydra finished.
Die wichtige Zeile ist [22][ssh] host: localhost login: labex password: [actual_password]. Dies zeigt an, dass Hydra das Passwort für den Benutzer labex erfolgreich gefunden hat.
Beachten Sie die Geschwindigkeit, mit der Hydra Passwörter ausprobiert. Dies ist die Standardzeit. Im nächsten Schritt werden wir die Zeit ändern, um zu sehen, wie sich dies auf das Angriffstempo auswirkt.
Lerne durch echte Programmierung.
Hinzufügen von -W 5 für 5-Sekunden-Lücken
In diesem Schritt fügen wir die Option -W 5 zum Hydra-Befehl hinzu. Diese Option führt eine 5-Sekunden-Verzögerung zwischen jedem Anmeldeversuch ein. Dies ist nützlich, um Konto-Sperrungen oder die Erkennung durch Intrusion Detection Systeme zu vermeiden.
Die Option -W in Hydra gibt den Timeout für die Wartezeit auf eine Antwort vom Zieldienst an. Standardmäßig verwendet Hydra einen sehr kurzen Timeout. Eine Erhöhung dieses Timeouts kann hilfreich sein, wenn der Zieldienst langsam antwortet oder Netzwerklatenzprobleme auftreten.
Der einzige Unterschied zwischen diesem Befehl und dem vorherigen ist die Hinzufügung der Option -W 5.
Jetzt versucht Hydra, sich beim SSH-Server anzumelden, wartet aber nach jedem fehlgeschlagenen Anmeldeversuch 5 Sekunden, bevor es das nächste Passwort ausprobiert.
Beobachten Sie die Ausgabe. Sie werden feststellen, dass das Angriffstempo deutlich langsamer ist als im vorherigen Schritt. Hydra findet zwar immer noch das richtige Passwort ("labex"), aber es dauert länger.
Die Ausgabe sieht in etwa so aus:
Hydra vX.X (c) XXXX by van Hauser/THC - use help for legal stuff
Hydra starting at YYYY-MM-DD HH:MM:SS
[DATA] 1 task/1 service to scan
[DATA] attacking ssh://localhost:22
[STATUS] X.XX tries/min
[STATUS] X of X passwords tested (X.XX%)
[22][ssh] host: localhost login: labex password: labex
Hydra finished.
Der entscheidende Unterschied ist jedoch die Zeit, die benötigt wird, um die Meldung „Hydra finished.“ zu erreichen. Mit der Option -W 5 dauert es mindestens 10 Sekunden (2 fehlgeschlagene Versuche * 5 Sekunden/Versuch), bevor Hydra das richtige Passwort findet.
Im nächsten Schritt werden wir die Auswirkungen dieser Änderung auf das Angriffstempo und die Implikationen für Sicherheitstests besprechen.
Auswirkungen auf das Angriffstempo beobachten
In diesem Schritt analysieren wir die Auswirkungen der Option -W 5 auf das Angriffstempo von Hydra.
Wie Sie in den vorherigen Schritten beobachtet haben, verlangsamt die Option -W 5 den Angriff deutlich. Ohne die Option -W 5 versucht Hydra, sich so schnell wie möglich anzumelden, begrenzt nur durch die Netzwerklatenz und die Reaktionszeit des Servers. Mit -W 5 pausiert Hydra 5 Sekunden nach jedem fehlgeschlagenen Anmeldeversuch.
Dieser Unterschied im Angriffstempo hat mehrere wichtige Auswirkungen:
Konto-Sperrung: Viele Systeme verfügen über Konto-Sperrrichtlinien, die ein Konto nach einer bestimmten Anzahl von fehlgeschlagenen Anmeldeversuchen deaktivieren. Durch die Verlangsamung des Angriffstempos mit -W 5 können Sie das Risiko verringern, diese Sperrrichtlinien auszulösen und eine Sperrung des Zielkontos zu vermeiden.
Intrusion Detection Systeme (IDS): IDS überwachen den Netzwerkverkehr auf verdächtige Aktivitäten, wie z. B. Brute-Force-Angriffe. Eine schnelle Folge von fehlgeschlagenen Anmeldeversuchen ist ein starkes Indiz für einen Brute-Force-Angriff und kann einen Alarm auslösen. Durch die Verlangsamung des Angriffstempos erschweren Sie es einem IDS, den Angriff zu erkennen.
Ressourcenverbrauch: Ein schnelles Angriffstempo kann sowohl auf dem angreifenden Rechner als auch auf dem Zielserver erhebliche Ressourcen verbrauchen. Die Verlangsamung des Angriffstempos kann den Ressourcenverbrauch reduzieren und den Angriff weniger auffällig machen.
Dauer bis zum Abschluss: Die offensichtlichste Auswirkung ist die erhöhte Zeit, die zum Abschluss des Angriffs benötigt wird. Wenn Sie eine große Passwortliste haben, kann die Hinzufügung einer Verzögerung zwischen den Versuchen die Gesamtzeit, die zum Knacken des Passworts benötigt wird, erheblich erhöhen.
Zusammenfassend lässt sich sagen, dass die Option -W in Hydra es Ihnen ermöglicht, das Angriffstempo zu steuern und den Bedarf an Geschwindigkeit mit dem Risiko der Erkennung und Konto-Sperrung in Einklang zu bringen. Die Wahl des richtigen Wertes für -W hängt vom jeweiligen Ziel und den Zielen des Angriffs ab. Für Penetrationstests ist es oft besser, heimlich zu bleiben und die Erkennung zu vermeiden, auch wenn dies bedeutet, dass der Angriff länger dauert.
Dieses Labor demonstrierte ein grundlegendes Beispiel für die Verwendung von Hydra zum Knacken eines SSH-Passworts. In realen Szenarien verwenden Angreifer häufig viel größere Benutzer- und Passwortlisten und ausgefeiltere Techniken, um Sicherheitsmaßnahmen zu umgehen. Es ist entscheidend, starke, eindeutige Passwörter zu verwenden und geeignete Sicherheitsmaßnahmen zu implementieren, um sich vor Brute-Force-Angriffen zu schützen.
Direkt aus dem Tutorial heraus programmieren.
Zusammenfassung
In diesem Labor haben Sie gelernt, wie Sie die Verbindungsintervalle von Hydra steuern können, um das Angriffstempo zu verwalten und die Erkennung zu umgehen.
Abgeschlossene Hauptschritte:
Einrichtung eines SSH-Servers mit OpenSSH und Überprüfung, dass er auf Port 22 lauscht
Erstellung von Benutzer- und Passwortlisten für Hydra-Tests
Ausführung von Hydra mit Standardzeiten, um das schnelle Angriffstempo zu beobachten
Hinzufügen der Option -W 5, um 5-Sekunden-Verzögerungen zwischen den Verbindungsversuchen einzuführen
Beobachtung, wie die Zeitkontrolle die Angriffsgeschwindigkeit beeinflusst und hilft, Konto-Sperrungen und Erkennungssysteme zu vermeiden
Die Option -W ermöglicht es Ihnen, Angriffsgeschwindigkeit und Stealth in Einklang zu bringen. Sie ist ein entscheidender Parameter für effektive Penetrationstests, minimiert gleichzeitig das Risiko, Sicherheitsmaßnahmen auszulösen.