Hydra installieren und verifizieren

HydraBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie, Hydra zu installieren und zu verifizieren. Hydra ist ein vielseitiges Tool zum Knacken von Passwörtern (password-cracking tool) für Brute-Force-Angriffe (brute-forcing) auf Netzwerk-Logins über verschiedene Protokolle. Die Übungen umfassen die Installation von Paketen, die Überprüfung der Version und grundlegende Befehlstests, um die ordnungsgemäße Funktionalität sicherzustellen.

Sie werden wichtige Hydra-Operationen üben, darunter die Überprüfung der Version, das Auffinden der ausführbaren Datei (executable) und die Erkundung der Befehlsoptionen. Diese praktischen Schritte helfen Ihnen, eine erfolgreiche Installation zu bestätigen und sich gleichzeitig mit diesem wichtigen Sicherheitstool vertraut zu machen.

Hydra auf Ihrem System installieren

In diesem Schritt installieren Sie Hydra, ein leistungsstarkes Tool zum Knacken von Passwörtern (password-cracking tool), das zum Testen der Netzwerksicherheit verwendet wird. Hydra führt Brute-Force-Angriffe (brute-force attacks) gegen Login-Systeme durch und unterstützt über 30 Protokolle, darunter HTTP, FTP, SSH und mehr. Wir installieren es auf Ihrer LabEx VM, die eine sichere Lernumgebung bietet.

Hinweis: Kostenlose Benutzer können sich nicht mit dem Internet verbinden, daher ist Hydra bereits in der Laborumgebung vorinstalliert. Sie können direkt zu Punkt 4 in der Liste springen (prüfen, ob Hydra installiert ist). Upgrade auf einen Pro-Benutzer, um die Installation von Hydra selbst zu üben.

  1. Zuerst müssen wir die Paketliste aktualisieren. Dies stellt sicher, dass Sie die neueste verfügbare Version von Hydra und ihren Abhängigkeiten (dependencies) installieren:
sudo apt update

Der Befehl sudo gewährt Ihnen Administratorrechte, während apt update die Liste der verfügbaren Pakete Ihres Systems aktualisiert.

  1. Installieren Sie nun Hydra mit dem apt-Paketmanager. Das Flag -y bestätigt automatisch alle Eingabeaufforderungen während der Installation:
sudo apt install -y hydra
  1. Der Installationsprozess behandelt automatisch alle erforderlichen Abhängigkeiten. Dies sind zusätzliche Softwarekomponenten, die Hydra benötigt, um ordnungsgemäß zu funktionieren. Warten Sie, bis der Vorgang abgeschlossen ist - Sie sehen eine Meldung, wenn er abgeschlossen ist.

  2. Lassen Sie uns nach der Installation überprüfen, ob Hydra ordnungsgemäß installiert und zugänglich ist. Der Befehl which zeigt, wo das System die ausführbare Hydra-Datei (Hydra executable) findet:

which hydra
which hydra

Erwartete Ausgabe:

/usr/bin/hydra

Diese Ausgabe bestätigt, dass Hydra korrekt installiert ist. Der Speicherort /usr/bin/ bedeutet, dass das Tool systemweit verfügbar ist, sodass Sie es von jedem Verzeichnis in Ihrem Terminal aus ausführen können. In den nächsten Schritten werden wir untersuchen, wie Sie die leistungsstarken Funktionen von Hydra nutzen können.

Hydra-Installation mit Versionsprüfung verifizieren

In diesem Schritt überprüfen wir, ob Hydra ordnungsgemäß installiert ist, indem wir die Versionsnummer überprüfen. Dies ist eine wichtige erste Überprüfung, da sie drei wichtige Dinge bestätigt: dass die Software korrekt installiert ist, dass Ihr System sie finden kann (über den PATH) und dass sie einsatzbereit ist.

Bei der Arbeit mit Befehlszeilentools (command-line tools) wie Hydra ist die Überprüfung der Version immer ein guter Ausgangspunkt. Sie hilft Ihnen zu bestätigen, dass Sie mit dem richtigen Tool arbeiten, und gibt Ihnen grundlegende Informationen über Ihre Installation.

  1. Beginnen wir mit einer grundlegenden Versionsprüfung. Geben Sie diesen Befehl in Ihr Terminal ein:
hydra -v
  1. Nach dem Ausführen sollten Sie eine ähnliche Ausgabe sehen:
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.

Dies zeigt Ihnen die Versionsnummer (v9.2 in diesem Beispiel) und einige Copyright-Informationen. Die Versionsnummer ist besonders wichtig, wenn Sie Tutorials oder Dokumentationen befolgen, da verschiedene Versionen möglicherweise leicht unterschiedliche Funktionen haben.

  1. Für weitere technische Details zu Ihrer Hydra-Installation, einschließlich der Art und Weise, wie sie kompiliert wurde, verwenden Sie die Option -V (Großschreibung):
hydra -V
  1. Dieser Befehl zeigt zusätzliche Build-Informationen an, die für die Fehlerbehebung oder beim Melden von Problemen nützlich sein können.

Diese einfachen Überprüfungen erreichen mehrere wichtige Dinge:

  • Sie bestätigen, dass Hydra installiert ist und funktioniert
  • Sie überprüfen, ob Ihr System den Hydra-Befehl finden kann (d. h. er befindet sich in Ihrem PATH)
  • Sie geben Ihnen Informationen darüber, welche Version Sie verwenden
  • Sie helfen, unmittelbare Probleme mit der Installation zu identifizieren

Wenn einer dieser Befehle fehlschlägt oder einen Fehler ausgibt, bedeutet dies wahrscheinlich, dass Hydra nicht korrekt installiert ist oder sich nicht im PATH Ihres Systems befindet, und Sie müssen die Installation beheben.

Hydra-Ausführungspfad lokalisieren

In diesem Schritt lernen Sie, wie Sie herausfinden, wo Hydra auf Ihrem System installiert ist. Wenn wir Software wie Hydra installieren, platziert das System die ausführbare Datei (executable file) in bestimmten Verzeichnissen. Das Wissen um diesen Pfad ist aus folgenden Gründen unerlässlich:

  1. Es hilft Ihnen, zu überprüfen, ob die Installation erfolgreich war
  2. Sie benötigen diesen Pfad, wenn Sie Skripte oder Aliase erstellen
  3. Systemadministratoren müssen oft die Speicherorte ausführbarer Dateien für Sicherheitsüberprüfungen (security audits) überprüfen

Beginnen wir mit dem grundlegenden Befehl zum Auffinden von Hydra:

  1. Verwenden Sie den Befehl which, um die ausführbare Datei von Hydra zu finden. Dieser Befehl durchsucht die PATH-Umgebungsvariable (PATH environment variable) Ihres Systems, um herauszufinden, wo Hydra installiert ist:
which hydra
  1. Die Ausgabe zeigt Ihnen den vollständigen Pfad an, in dem sich die Hauptausführungsdatei von Hydra befindet. Ein typisches Linux-System zeigt so etwas wie:
/usr/bin/hydra
  1. Lassen Sie uns nun weitere Details zu dieser ausführbaren Datei abrufen. Der folgende Befehl kombiniert ls -l (der Dateidetails anzeigt) mit which hydra (um den Pfad zu erhalten):
ls -l $(which hydra)
  1. Dies liefert Ihnen wichtige Informationen, einschließlich:
    • Dateiberechtigungen (wer sie lesen/schreiben/ausführen kann)
    • Dateibesitzer (normalerweise root für systeminstallierte Programme)
    • Dateigröße und Änderungsdatum
    • Der tatsächliche Pfad

Beispielausgabe:

-rwxr-xr-x 1 root root 123456 Jan 1 00:00 /usr/bin/hydra
  1. Um noch tiefer zu gehen, können wir überprüfen, welche Art von Datei die ausführbare Datei von Hydra ist. Dies ist besonders nützlich, wenn Sie überprüfen müssen, ob es sich um eine echte Binärdatei (genuine binary) und nicht um ein Skript oder einen Symlink handelt:
file $(which hydra)
  1. Die Ausgabe teilt Ihnen mit, dass es sich um eine kompilierte Binärdatei (compiled binary) (kein Skript) handelt, und zeigt technische Details zu ihrer Architektur und Verknüpfung (linking):
/usr/bin/hydra: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=abcdef1234567890, for GNU/Linux 3.2.0, stripped

Diese Befehle geben Ihnen ein vollständiges Bild davon, wo Hydra installiert ist und welche Art von ausführbarer Datei es ist. Dies ist grundlegendes Wissen für die Arbeit mit jedem Befehlszeilentool.

Hydra mit dem Hilfebefehl ausführen

In diesem Schritt lernen Sie, wie Sie auf die integrierte Hilfedokumentation von Hydra zugreifen, um die grundlegende Verwendung und die Befehlssyntax zu verstehen. Das Hilfesystem von Hydra ist Ihr erster Anlaufpunkt bei der Arbeit mit diesem Tool, da es alle verfügbaren Befehle und Optionen im Detail erklärt.

  1. Um das grundlegende Hilfemenü anzuzeigen, das die allgemeine Befehlsstruktur und die gängigen Optionen zeigt, führen Sie diesen einfachen Befehl in Ihrem Terminal aus:
hydra -h
  1. Die Ausgabe zeigt die Versionsinformationen von Hydra gefolgt von der grundlegenden Befehlssyntax an. Dies beinhaltet:
  • Erforderliche Parameterformate
  • Häufige Options-Flags (option flags)
  • Grundlegende Anwendungsbeispiele
    Hier ist, was Sie typischerweise sehen werden:
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]

Options:
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  ...
  1. Für protokollspezifische Hilfe, die erweiterte Optionen für bestimmte Dienste (wie HTTP oder FTP) anzeigt, verwenden Sie dieses Befehlsformat:
hydra -U SERVICE

Ersetzen Sie SERVICE durch den tatsächlichen Protokollnamen, mit dem Sie arbeiten, z. B. http, ftp oder ssh. Dies zeigt spezielle Optionen für diesen bestimmten Dienst an.

  1. Um alle verfügbaren Dienstmodule (service modules) zu entdecken, mit denen Hydra arbeiten kann, führen Sie diesen Befehl aus (beachten Sie, dass 'foo' und 'bar' hier nur Platzhalter sind):
hydra -l foo -p bar -U
  1. Die umfassende Hilfeausgabe liefert wichtige Informationen, einschließlich:
  • Obligatorische vs. optionale Parameter für jedes Modul
  • Praktische Anwendungsbeispiele
  • Vollständige Liste der unterstützten Protokolle
  • Leistungsbezogene Einstellungen zur Optimierung Ihrer Tests

Denken Sie daran, dass das Hilfesystem von Hydra kontextsensitiv ist - die angezeigten Informationen ändern sich je nachdem, welche Optionen Sie mit den Flags -h oder -U kombinieren.

Hydra mit einem Dummy-Befehl testen

In diesem Schritt führen Sie einen sicheren Testbefehl mit Hydra aus, um seine grundlegende Funktionalität zu überprüfen, ohne reale Systeme anzugreifen. Dies ist ein wichtiger erster Schritt, um zu verstehen, wie Hydra funktioniert, bevor Sie es in realen Szenarien einsetzen.

  1. Erstellen Sie zunächst eine Test-Passwortliste (test password list). Diese Datei enthält Beispielpasswörter, die Hydra während des Tests ausprobieren wird:
echo -e "password\n123456\nqwerty" > ~/project/test_passwords.txt
  1. Erstellen Sie eine Test-Benutzernamenliste (test username list). Ebenso enthält diese Datei Beispielbenutzernamen, die Hydra zu verwenden versucht:
echo -e "admin\ntest\nroot" > ~/project/test_usernames.txt
  1. Jetzt führen wir Hydra im Testmodus gegen localhost (Ihren eigenen Rechner) aus. Dies ist völlig sicher, da wir uns selbst angreifen und Test-Zugangsdaten (test credentials) verwenden, die nicht wirklich funktionieren:
hydra -L ~/project/test_usernames.txt -P ~/project/test_passwords.txt 127.0.0.1 ssh -t 1 -vV
  1. Sie sollten eine Ausgabe sehen, die den Testversuch zeigt. Diese Ausgabe demonstriert, wie Hydra die Passwortkombinationen durchläuft, obwohl es sich nicht tatsächlich anmelden wird:
[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://127.0.0.1:22
[22][ssh] host: 127.0.0.1   login: admin   password: password
[22][ssh] host: 127.0.0.1   login: admin   password: 123456
[22][ssh] host: 127.0.0.1   login: admin   password: qwerty
...
[STATUS] attack finished for 127.0.0.1 (waiting for children to complete tests)
  1. Der Befehl verwendet diese sicheren Parameter, die wichtig zu verstehen sind:
  • -L: Gibt den Pfad zur von uns erstellten Benutzernamenlistendatei an
  • -P: Gibt den Pfad zur von uns erstellten Passwortlistendatei an
  • -t 1: Beschränkt Hydra auf 1 parallele Verbindung (macht den Test langsamer, aber sicherer)
  • -vV: Aktiviert die ausführliche Ausgabe (verbose output), damit wir sehen können, was Hydra tut
  • ssh: Gibt an, dass wir gegen das SSH-Protokoll testen (obwohl dieser Test nicht erfolgreich sein wird)

Dieser Test demonstriert die grundlegende Funktionsweise von Hydra ohne Risiko und zeigt, wie es systematisch verschiedene Benutzername/Passwort-Kombinationen ausprobiert. Die Ausgabe zeigt die unternommenen Versuche, obwohl keiner gegen Ihren lokalen Rechner erfolgreich sein wird.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie das Hydra-Passwort-Cracking-Tool auf einem LabEx VM-System installieren und verifizieren. Der Prozess umfasste das Aktualisieren von Paketen, die Installation von Hydra über apt und die Bestätigung seines Installationspfads in /usr/bin/hydra. Sie haben die Installation auch verifiziert, indem Sie die Version von Hydra mit den Befehlen hydra -v und hydra -V überprüft haben.

Zusätzlich haben Sie die grundlegende Funktionalität von Hydra erkundet, indem Sie seinen ausführbaren Pfad mit which hydra lokalisiert und Befehle wie hydra -h getestet haben. Diese Schritte stellten sicher, dass Hydra ordnungsgemäß installiert und für den praktischen Einsatz in Sicherheitstestszenarien bereit ist.