Mehrere Ziele mit Hydra angreifen

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 lernen Sie, wie Sie mithilfe von Hydra mehrere Ziele gleichzeitig angreifen können. Das Lab konzentriert sich darauf, die Funktionen von Hydra auszunutzen, um Passwort-Cracking-Versuche gegen eine Liste von Zielhosts durchzuführen.

Das Lab führt Sie durch den Prozess der Erstellung einer Zieldatei, die IP-Adressen oder Hostnamen enthält, das Laden dieser Datei in Hydra mit der Option -M, das Ausführen eines parallelen SSH-Angriffs gegen die Ziele und schließlich das Überprüfen der Ausgabe, um erfolgreiche Anmeldungen auf mehreren Hosts zu identifizieren. Diese praktische Erfahrung vermittelt Ihnen praktische Fähigkeiten bei der Verwendung von Hydra in Szenarien der Penetrationstests und Sicherheitsüberprüfungen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/task_limit("Task Limit Configuration") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/success_detection("Login Success Detection") subgraph Lab Skills hydra/target_ip -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} hydra/target_service -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} hydra/ssh_attack -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} hydra/task_limit -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} hydra/multiple_targets -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} hydra/success_detection -.-> lab-550760{{"Mehrere Ziele mit Hydra angreifen"}} end

Erstellen einer Zieldatei

In diesem Schritt erstellen Sie eine Zieldatei. Diese Datei enthält eine Liste von IP-Adressen oder Hostnamen, zu denen Hydra eine Verbindung herstellen und Passwörter cracken wird. Dies ist ein entscheidender Schritt in jedem Penetrationstest- oder Sicherheitsüberprüfungsszenario.

Zunächst verstehen wir, was eine Zieldatei ist. Es ist einfach eine Textdatei, in der jede Zeile einen Zielhost darstellt. Ein Zielhost kann eine IP-Adresse (z. B. 192.168.1.100) oder ein Hostname (z. B. example.com) sein.

Jetzt erstellen wir die Zieldatei. Wir verwenden den nano-Texteditor, der bereits in Ihrer LabEx-VM installiert ist.

  1. Öffnen Sie den nano-Editor:

    nano ~/project/targets.txt

    Dieser Befehl öffnet eine neue Datei namens targets.txt im Verzeichnis ~/project. Wenn die Datei nicht existiert, wird nano sie erstellen.

  2. Fügen Sie die folgenden IP-Adressen in die Datei targets.txt ein. Jede IP-Adresse sollte in einer neuen Zeile stehen:

    192.168.1.100
    192.168.1.101
    192.168.1.102

    Verwenden Sie gerne beliebige IP-Adressen. Dies sind nur Beispiele. In einem realen Szenario würden Sie diese durch die tatsächlichen IP-Adressen der Systeme ersetzen, die Sie autorisiert sind, zu testen.

  3. Speichern Sie die Datei und verlassen Sie nano. Drücken Sie dazu Strg+X, dann Y, um das Speichern zu bestätigen, und schließlich Enter, um den Dateinamen zu akzeptieren.

  4. Überprüfen Sie, ob die Datei erstellt wurde und den richtigen Inhalt enthält. Sie können den cat-Befehl verwenden, um den Inhalt der Datei anzuzeigen:

    cat ~/project/targets.txt

    Sie sollten die Liste der von Ihnen eingegebenen IP-Adressen sehen.

    192.168.1.100
    192.168.1.101
    192.168.1.102

Sie haben nun erfolgreich eine Zieldatei namens targets.txt in Ihrem ~/project-Verzeichnis erstellt. Diese Datei wird im nächsten Schritt verwendet, um die Ziele in Hydra zu laden.

Laden von Zielen mit der -M-Option

In diesem Schritt lernen Sie, wie Sie die im vorherigen Schritt erstellte Zieldatei mithilfe der -M-Option in Hydra laden können. Die -M-Option teilt Hydra mit, die Liste der Zielhosts aus einer Datei zu lesen. Dies ist besonders nützlich, wenn Sie eine große Anzahl von Zielen testen müssen.

Bevor wir fortfahren, besprechen wir kurz die Syntax des Hydra-Befehls mit der -M-Option. Die grundlegende Syntax lautet:

hydra -M <target_file> <service> <options>

Dabei gilt:

  • <target_file> ist der Pfad zur Datei, die die Liste der Zielhosts enthält.
  • <service> ist der Service, den Sie angreifen möchten (z. B. ssh, ftp, http).
  • <options> sind alle anderen Optionen, die Sie verwenden möchten, wie Benutzername, Passwortliste usw.

Jetzt konstruieren wir einen grundlegenden Hydra-Befehl, um die Ziele aus der zuvor erstellten Datei targets.txt zu laden. In diesem Beispiel verwenden wir den ssh-Service. Wir geben auch einen Benutzernamen und eine Passwortliste an (wir erstellen eine Platzhalter-Passwortliste zu Demonstrationszwecken).

  1. Erstellen Sie eine Platzhalter-Passwortliste:

    echo "password" > ~/project/passwords.txt

    Dieser Befehl erstellt eine Datei namens passwords.txt im Verzeichnis ~/project und fügt das Wort "password" hinzu. In einem realen Szenario würden Sie eine umfassendere Passwortliste verwenden.

  2. Führen Sie nun den Hydra-Befehl aus, um die Ziele aus der Datei targets.txt zu laden und zu versuchen, das SSH-Passwort für den Benutzer root mithilfe der Datei passwords.txt zu knacken:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -M ~/project/targets.txt ssh

    Hinweis: Dieser Befehl wird wahrscheinlich fehlschlagen, da Sie wahrscheinlich keine SSH-Server auf den IP-Adressen in Ihrer Datei targets.txt laufen haben, und selbst wenn dies der Fall wäre, hätten Sie wahrscheinlich nicht die richtigen Anmeldeinformationen. Dieser Schritt dient hauptsächlich der Demonstration, wie man Ziele aus einer Datei lädt.

    Um Fehler zu vermeiden, erstellen wir eine Datei users.txt mit einem Benutzernamen, der auf den meisten Systemen wahrscheinlich existiert.

    echo "root" > ~/project/users.txt

    Führen Sie nun den Hydra-Befehl erneut aus:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -M ~/project/targets.txt ssh

    Sie werden wahrscheinlich Fehler in Bezug auf eine abgelehnte Verbindung oder falsche Anmeldeinformationen sehen. Dies ist zu erwarten. Wichtig ist, dass Hydra versucht, eine Verbindung zu den in der Datei targets.txt aufgeführten Zielen herzustellen.

    Die Ausgabe zeigt, dass Hydra versucht, eine Verbindung zu jeder IP-Adresse in Ihrer Datei targets.txt herzustellen. Es wird den Benutzernamen "root" und das Passwort "password" für jedes Ziel ausprobieren. Da diese wahrscheinlich falsch sind, werden die Versuche fehlschlagen.

In diesem Schritt haben Sie erfolgreich gelernt, wie man Ziele aus einer Datei mithilfe der -M-Option in Hydra lädt. Dies ist eine grundlegende Fähigkeit für das Durchführen von Passwort-Cracking-Angriffen im großen Stil.

Ausführen eines parallelen SSH-Angriffs

In diesem Schritt lernen Sie, wie Sie einen parallelen SSH-Angriff mit Hydra ausführen können. Das parallele Ausführen von Angriffen beschleunigt den Crack-Prozess erheblich, insbesondere wenn es um mehrere Ziele geht. Hydra ermöglicht es Ihnen, die Anzahl der parallelen Aufgaben mithilfe der -t-Option festzulegen.

Die -t-Option steuert die Anzahl der parallelen Verbindungen, die Hydra herstellen wird. Eine höhere Anzahl von Threads kann den Angriff beschleunigen, aber es kann auch die Zielsysteme und Ihr eigenes System stärker belasten. Es ist wichtig, ein Gleichgewicht zu finden, das für Ihre spezifische Situation geeignet ist.

Ändern wir den vorherigen Hydra-Befehl, um den SSH-Angriff mit einer bestimmten Anzahl von Threads auszuführen.

  1. Führen Sie den folgenden Hydra-Befehl aus, um den SSH-Angriff mit 4 Threads auszuführen:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -t 4 -M ~/project/targets.txt ssh

    In diesem Befehl teilt die Option -t 4 Hydra mit, 4 parallele Threads zu verwenden. Dies bedeutet, dass Hydra versucht, gleichzeitig mit 4 verschiedenen Zielen eine Verbindung herzustellen.

    Wiederum werden Sie wahrscheinlich Fehler in Bezug auf eine abgelehnte Verbindung oder falsche Anmeldeinformationen sehen. Dies ist zu erwarten. Der Zweck dieses Schritts ist es, zu zeigen, wie man die -t-Option verwendet, um Angriffe parallel auszuführen.

    Die Ausgabe zeigt, dass Hydra versucht, eine Verbindung zu den IP-Adressen in Ihrer Datei targets.txt herzustellen, aber nun wird es dies mit 4 gleichzeitigen Verbindungen tun.

  2. Experimentieren Sie mit verschiedenen Werten für die -t-Option. Versuchen Sie, die Anzahl der Threads zu erhöhen, um zu sehen, wie sich dies auf die Geschwindigkeit des Angriffs auswirkt. Beachten Sie die Ressourcen auf Ihrem System und den Zielsystemen. Ein guter Ausgangspunkt ist, die Anzahl der Threads zu verdoppeln:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -t 8 -M ~/project/targets.txt ssh

    Beobachten Sie die Ausgabe und notieren Sie alle Veränderungen in der Leistung.

Wichtige Überlegungen:

  • Ressourcenverbrauch: Die Erhöhung der Anzahl der Threads erhöht die CPU- und Netzwerknutzung auf Ihrem System. Überwachen Sie die Ressourcen Ihres Systems, um sicherzustellen, dass Sie es nicht überlasten.
  • Last auf den Zielsystemen: Das Ausführen zu vieler Threads kann die Zielsysteme überlasten und möglicherweise dazu führen, dass sie abstürzen oder nicht mehr reagieren. Seien Sie respektvoll gegenüber den Zielsystemen und vermeiden Sie die Verwendung zu vieler Threads.
  • Entdeckung: Das Ausführen von Angriffen mit einer hohen Anzahl von Threads kann es Ihnen leichter machen, von Intrusion Detection Systemen (IDS) entdeckt zu werden.

In diesem Schritt haben Sie erfolgreich gelernt, wie man parallele SSH-Angriffe mit Hydra und der -t-Option ausführt. Dies ist eine entscheidende Technik zur Beschleunigung von Passwort-Cracking-Angriffen.

Überprüfen der Ausgabe für mehrere Hosts

In diesem Schritt lernen Sie, wie Sie die Ausgabe von Hydra interpretieren können, wenn Sie mehrere Hosts angreifen. Die Ausgabe von Hydra liefert wertvolle Informationen über den Erfolg oder das Scheitern der Angriffsversuche.

Wenn Hydra ein Passwort erfolgreich knackt, wird es die Anmeldeinformationen im folgenden Format anzeigen:

[<service>] host: <host>  login: <username>   password: <password>

Beispiel:

[ssh] 192.168.1.100:22 login: root   password: password

Dies zeigt an, dass Hydra das SSH-Passwort für den Benutzer root auf dem Host 192.168.1.100 erfolgreich knackt hat und das Passwort password ist.

Wenn Hydra es nicht schafft, ein Passwort zu knacken, wird es in der Regel eine Fehlermeldung wie "Login failed" (Anmeldung fehlgeschlagen) oder "Invalid credentials" (Ungültige Anmeldeinformationen) anzeigen.

Analysieren wir die Ausgabe aus den vorherigen Schritten.

  1. Führen Sie den Hydra-Befehl aus dem vorherigen Schritt erneut aus:

    hydra -L ~/project/users.txt -P ~/project/passwords.txt -t 4 -M ~/project/targets.txt ssh
  2. Untersuchen Sie die Ausgabe. Sie werden wahrscheinlich eine Reihe von "Login failed" oder "Invalid credentials" -Meldungen für jeden Zielhost sehen. Dies liegt daran, dass der von Ihnen verwendete Benutzername und das Passwort wahrscheinlich falsch sind.

    Die Ausgabe könnte in etwa so aussehen:

    Hydra v9.6 (c) 2024 by van Hauser/THC - use freely but only for legal purposes.
    Hydra starting at 2024-10-27 10:00:00
    [DATA] 1 task, 3 servers, 1 userfiles, 1 passfiles -> max 1 task per 1 server, overall 1 task per attack
    [DATA] attacking ssh://192.168.1.100:22
    [STATUS][ssh] 192.168.1.100:22 - Login failed for user 'root'
    [DATA] attacking ssh://192.168.1.101:22
    [STATUS][ssh] 192.168.1.101:22 - Login failed for user 'root'
    [DATA] attacking ssh://192.168.1.102:22
    [STATUS][ssh] 192.168.1.102:22 - Login failed for user 'root'
    Hydra finished.

    Wenn Hydra es schafft, ein Passwort zu knacken, würden Sie eine Zeile ähnlich dem obigen Beispiel sehen, die die erfolgreichen Anmeldeinformationen anzeigt.

  3. Um einen erfolgreichen Login besser zu veranschaulichen, erstellen wir ein Szenario, in dem Hydra eher erfolgreich sein wird. Dies erfordert einen anfälligen SSH-Server. Da wir keinen solchen Server zur Hand haben, ändern wir die Datei targets.txt, um auf localhost zu verweisen, und versuchen, uns als aktueller Benutzer anzumelden. Dies wird wahrscheinlich immer noch fehlschlagen, aber es ist das Nächste, was wir an einem "erfolgreichen" Szenario ohne einen speziell anfälligen Zielhost erreichen können.

    Fügen Sie zunächst 127.0.0.1 Ihrer Datei targets.txt hinzu:

    echo "127.0.0.1" >> ~/project/targets.txt

    Versuchen Sie nun, das SSH-Passwort für den aktuellen Benutzer (labex) auf localhost zu knacken. Sie müssen das Passwort für den Benutzer labex kennen. Wenn Sie keines festgelegt haben, können Sie versuchen, die Passwortliste leer zu lassen, was einen Null-Passwort-Versuch auslöst.

    hydra -l labex -P ~/project/passwords.txt -t 4 -M ~/project/targets.txt ssh

    Hinweis: Dies wird wahrscheinlich immer noch fehlschlagen, es sei denn, Sie haben ein sehr einfaches Passwort für den Benutzer labex oder haben das Passwortlose SSH-Login erlaubt.

Selbst wenn der Angriff fehlschlägt, ist das Wichtigste, dass Sie verstehen, wie Sie die Ausgabe von Hydra interpretieren können. Suchen Sie nach den Zeilen, die einen erfolgreichen Login anzeigen, und achten Sie auf die Fehlermeldungen, um zu verstehen, warum die Angriffe fehlschlagen.

In diesem Schritt haben Sie gelernt, wie Sie die Ausgabe von Hydra überprüfen können, wenn Sie mehrere Hosts angreifen, und wie Sie die Ergebnisse interpretieren können. Dies ist eine entscheidende Fähigkeit, um den Erfolg oder das Scheitern Ihrer Passwort-Cracking-Versuche zu verstehen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine Zieldatei erstellen, die IP-Adressen oder Hostnamen enthält. Dies ist für Penetrationstests und Sicherheitsüberprüfungen von entscheidender Bedeutung. Sie haben den Texteditor nano verwendet, um eine Datei namens targets.txt im Verzeichnis ~/project zu erstellen und mehrere Ziel-IP-Adressen hinzuzufügen, wobei jede Adresse in einer neuen Zeile steht. Anschließend haben Sie den Befehl cat verwendet, um den Inhalt der Datei zu überprüfen.

Das Lab hat auch gezeigt, wie Sie die erstellte Zieldatei mithilfe der -M-Option in Hydra laden können. Dies ermöglicht es Hydra, mehrere Hosts gleichzeitig effizient anzugreifen und den Passwort-Cracking-Prozess zu optimieren.