Durchlaufen von Passwörtern in Hydra-Angriffen

HydraHydraBeginner
Jetzt üben

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

Einführung

In diesem Lab werden wir untersuchen, wie Hydra während eines SSH-Angriffs durch Benutzernamen und Passwörter iteriert. Wir werden Listen von Benutzernamen und Passwörtern erstellen und dann einen Standard-SSH-Angriff ausführen, um das Standardverhalten von Hydra zu beobachten.

Das Lab beinhaltet die Vorbereitung der Dateien usernames.txt und passwords.txt, die jeweils Listen von Benutzernamen und Passwörtern enthalten. Anschließend werden wir einen grundlegenden Hydra-SSH-Angriff mit diesen Listen ausführen, um zu zeigen, wie Hydra verschiedene Kombinationen versucht. Schließlich werden wir die Auswirkungen der Option -u auf die Reihenfolge untersuchen, in der Hydra Benutzername- und Passwortkombinationen versucht.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/single_username("Single Username Attack") hydra/HydraGroup -.-> hydra/single_password("Single Password Attack") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") subgraph Lab Skills hydra/password_creation -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/username_creation -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/single_username -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/single_password -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/target_ip -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/target_service -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} hydra/ssh_attack -.-> lab-550771{{"Durchlaufen von Passwörtern in Hydra-Angriffen"}} end

Vorbereitung von Benutzername- und Passwortlisten

In diesem Schritt werden wir zwei essentielle Dateien erstellen: eine Benutzernamenliste und eine Passwortliste. Diese Listen werden von Hydra verwendet, um SSH-Anmeldungen zu versuchen. Das Erstellen dieser Listen ermöglicht es uns, verschiedene Benutzername- und Passwortkombinationen systematisch gegen unser Ziel zu testen.

Zunächst erstellen wir die Benutzernamenliste. Wir verwenden den Texteditor nano, um eine Datei namens usernames.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/usernames.txt

Fügen Sie nun die folgenden Benutzernamen in die Datei ein. Dies sind nur Beispiele; Sie können sie nach Bedarf anpassen.

root
admin
test
user
ubuntu

Drücken Sie Ctrl+O, um die Datei zu speichern, dann Enter, um den Dateinamen zu bestätigen, und schließlich Ctrl+X, um nano zu verlassen.

Als Nächstes erstellen wir die Passwortliste. Wieder verwenden wir nano, um eine Datei namens passwords.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/passwords.txt

Fügen Sie die folgenden Passwörter in die Datei ein. Denken Sie daran, dass dies nur Beispiele sind.

password
123456
qwerty
secret
ubuntu

Drücken Sie Ctrl+O, um die Datei zu speichern, dann Enter, um den Dateinamen zu bestätigen, und schließlich Ctrl+X, um nano zu verlassen.

Um zu überprüfen, ob die Dateien korrekt erstellt wurden, können Sie den Befehl cat verwenden, um ihren Inhalt anzuzeigen.

cat ~/project/usernames.txt

Sie sollten die Liste der von Ihnen eingegebenen Benutzernamen sehen.

root
admin
test
user
ubuntu

Überprüfen Sie auf ähnliche Weise die Passwortliste:

cat ~/project/passwords.txt

Sie sollten die Liste der von Ihnen eingegebenen Passwörter sehen.

password
123456
qwerty
secret
ubuntu

Diese Dateien, usernames.txt und passwords.txt, sind nun bereit, in den folgenden Schritten mit Hydra verwendet zu werden.

Ausführen eines Standard-SSH-Angriffs

In diesem Schritt werden wir einen grundlegenden SSH-Angriff mit Hydra ausführen, indem wir die Benutzername- und Passwortlisten verwenden, die wir im vorherigen Schritt erstellt haben. Dies wird das Standardverhalten von Hydra demonstrieren, nämlich das Iterieren durch Benutzernamen und Passwörter.

Bevor wir den Angriff ausführen, ist es wichtig, die grundlegende Syntax des Hydra-Befehls zu verstehen:

hydra [options] <target> <service> [additional options]
  • hydra: Der Befehl, um das Hydra-Tool aufzurufen.
  • [options]: Verschiedene Optionen, um den Angriff anzupassen, wie z. B. die Angabe von Benutzername- und Passwortlisten.
  • <target>: Die IP-Adresse oder der Hostname des Ziel-SSH-Servers. In diesem Lab verwenden wir 127.0.0.1 (localhost) als Ziel. Hinweis: In einer realen Welt würden Sie dies durch die tatsächliche IP-Adresse des Servers ersetzen, den Sie testen. Das Angreifen von Systemen ohne autorisation ist illegal.
  • <service>: Der Service, der angegriffen werden soll (z. B. ssh, ftp, http). In unserem Fall ist es ssh.
  • [additional options]: Service-spezifische Optionen.

Jetzt führen wir den Standard-SSH-Angriff aus. Wir verwenden die Option -L, um die Benutzernamenliste anzugeben, und die Option -P, um die Passwortliste anzugeben.

hydra -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh

Dieser Befehl teilt Hydra mit:

  • -L ~/project/usernames.txt: Verwende die Datei usernames.txt im Verzeichnis ~/project als Liste der Benutzernamen.
  • -P ~/project/passwords.txt: Verwende die Datei passwords.txt im Verzeichnis ~/project als Liste der Passwörter.
  • 127.0.0.1: Ziele den auf localhost laufenden SSH-Service.
  • ssh: Geben Sie an, dass wir den SSH-Service angreifen.

Führen Sie den Befehl aus. Hydra wird nun versuchen, sich am SSH-Service auf 127.0.0.1 anzumelden, indem es jeden Benutzernamen in usernames.txt und jedes Passwort in passwords.txt verwendet. Standardmäßig iteriert Hydra zuerst durch die Benutzernamen und versucht jedes Passwort für einen einzelnen Benutzernamen, bevor es zum nächsten Benutzernamen wechselt.

Die Ausgabe zeigt die vorgenommenen Versuche. Es werden wahrscheinlich viele "login failed"-Meldungen angezeigt. Wenn ein erfolgreicher Login gefunden wird, wird die Benutzername- und Passwortkombination angezeigt. Da wir schwache Passwörter verwenden und localhost als Ziel haben, ist es möglich, dass ein Login erfolgreich ist.

Wichtig: Dieser Befehl kann je nach Größe Ihrer Benutzername- und Passwortlisten einige Zeit in Anspruch nehmen. Beachten Sie auch, dass wiederholte fehlgeschlagene Anmeldeversuche Sicherheitsmaßnahmen auf dem Zielsystem auslösen können, wie z. B. das Sperren von Konten oder das Blockieren von IP-Adressen.

Ausführen mit -u, um zuerst die Passwörter zu durchlaufen

In diesem Schritt verwenden wir die Option -u mit Hydra, um die Reihenfolge zu ändern, in der es Anmeldeversuche unternimmt. Standardmäßig iteriert Hydra zuerst durch die Benutzernamen und versucht alle Passwörter für jeden Benutzernamen, bevor es zum nächsten geht. Die Option -u kehrt dieses Verhalten um, sodass Hydra zuerst durch die Passwörter iteriert und jedes Passwort für alle Benutzernamen versucht, bevor es zum nächsten Passwort wechselt.

Dies kann in Situationen nützlich sein, in denen Sie vermuten, dass ein gemeinsames Passwort für mehrere Konten verwendet wird.

Um die Option -u zu verwenden, fügen wir sie einfach zu unserem Hydra-Befehl hinzu.

hydra -u -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh

Dieser Befehl teilt Hydra mit:

  • -u: Zuerst die Passwörter durchlaufen.
  • -L ~/project/usernames.txt: Verwende die Datei usernames.txt im Verzeichnis ~/project als Liste der Benutzernamen.
  • -P ~/project/passwords.txt: Verwende die Datei passwords.txt im Verzeichnis ~/project als Liste der Passwörter.
  • 127.0.0.1: Ziele den auf localhost laufenden SSH-Service.
  • ssh: Geben Sie an, dass wir den SSH-Service angreifen.

Führen Sie den Befehl aus. Hydra wird nun versuchen, sich am SSH-Service auf 127.0.0.1 anzumelden. Diesmal wird es das erste Passwort in passwords.txt gegen jeden Benutzernamen in usernames.txt versuchen, bevor es zum nächsten Passwort wechselt.

Beobachten Sie die Ausgabe. Sie sollten bemerken, dass die Reihenfolge der Versuche sich vom vorherigen Schritt unterscheidet. Hydra wird nun das gleiche Passwort nacheinander gegen mehrere Benutzernamen versuchen.

Wie zuvor wird die Ausgabe die vorgenommenen Versuche anzeigen. Es werden wahrscheinlich viele "login failed"-Meldungen angezeigt. Wenn ein erfolgreicher Login gefunden wird, wird die Benutzername- und Passwortkombination angezeigt.

Indem Sie die Ausgabe dieses Befehls mit der Ausgabe des Befehls im vorherigen Schritt vergleichen, können Sie den Unterschied in der Reihenfolge der Anmeldeversuche sehen. Dies kann hilfreich sein, um zu verstehen, wie Hydra funktioniert, und um die effektivste Angriffsstrategie für eine bestimmte Situation auszuwählen.

Vergleich der Versuchsreihenfolge

In diesem Schritt werden wir die Reihenfolge der Anmeldeversuche analysieren und vergleichen, die Hydra in den beiden vorherigen Schritten unternommen hat. Dies wird uns helfen, die Auswirkungen der Option -u auf die Angriffsstrategie zu verstehen.

Um die Versuchsreihenfolge effektiv zu vergleichen, können wir den Befehl script verwenden, um die Ausgabe beider Hydra-Befehle zu erfassen und dann die erfasste Ausgabe zu analysieren.

Zuerst erfassen wir die Ausgabe des Standard-Hydra-Befehls (ohne die Option -u) in einer Datei namens default_attack.log im Verzeichnis ~/project.

script -c "hydra -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh" ~/project/default_attack.log

Dieser Befehl startet eine neue Shell-Sitzung mit script, führt den Hydra-Befehl innerhalb dieser Sitzung aus und speichert die gesamte Ausgabe in die angegebene Protokolldatei. Geben Sie exit ein, um die script-Sitzung zu beenden, nachdem Hydra fertig ist.

Als Nächstes erfassen wir die Ausgabe des Hydra-Befehls mit der Option -u in einer Datei namens u_attack.log im Verzeichnis ~/project.

script -c "hydra -u -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh" ~/project/u_attack.log

In ähnlicher Weise erfasst dieser Befehl die Ausgabe des Hydra-Befehls mit der Option -u in die Datei u_attack.log. Geben Sie exit ein, um die script-Sitzung zu beenden, nachdem Hydra fertig ist.

Jetzt, da wir die Ausgabe beider Befehle erfasst haben, können wir den Befehl head verwenden, um die ersten Zeilen jeder Protokolldatei anzuzeigen und die Versuchsreihenfolge zu vergleichen.

head ~/project/default_attack.log

Untersuchen Sie die Ausgabe. Sie sollten sehen, dass die Benutzernamen durchlaufen werden, wobei jedes Passwort für einen einzelnen Benutzernamen versucht wird, bevor zum nächsten Benutzernamen gewechselt wird.

Als Nächstes zeigen Sie die ersten Zeilen der Datei u_attack.log an:

head ~/project/u_attack.log

Untersuchen Sie diese Ausgabe. Sie sollten sehen, dass die Passwörter durchlaufen werden, wobei jedes Passwort für alle Benutzernamen versucht wird, bevor zum nächsten Passwort gewechselt wird.

Durch den Vergleich der beiden Protokolldateien können Sie deutlich den Unterschied in der Reihenfolge der Anmeldeversuche erkennen. Die Standard-Angriffsstrategie durchläuft die Benutzernamen, während der Angriff mit der Option -u die Passwörter durchläuft.

Dieser Vergleich zeigt die Wichtigkeit auf, die verschiedenen Optionen in Hydra zu verstehen und wie sie verwendet werden können, um die Angriffsstrategie an eine bestimmte Situation anzupassen.

Zusammenfassung

In diesem Lab haben wir begonnen, indem wir die erforderlichen Dateien für einen Hydra-SSH-Angriff vorbereitet haben. Genauer gesagt, haben wir die Dateien usernames.txt und passwords.txt im Verzeichnis ~/project mit dem Texteditor nano erstellt. Diese Dateien enthalten Listen möglicher Benutzernamen und Passwörter, die Hydra verwenden wird, um SSH-Anmeldungen zu versuchen. Anschließend wurde der Befehl cat verwendet, um den Inhalt beider Dateien zu überprüfen und sicherzustellen, dass sie korrekt erstellt wurden und die gewünschten Listen enthalten.

Im nächsten Schritt haben wir einen Standard-SSH-Angriff mit Hydra unter Verwendung der erstellten Benutzernamen- und Passwortlisten durchgeführt. Dies hat das Standard-Iterationsverhalten von Hydra beim Versuch, SSH-Anmeldungen zu knacken, demonstriert.