Brute-Force-SSH-Angriff mit Hydra

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 Brute-Force-Angriffe gegen SSH-Services mit Hydra durchführen können. Hydra ist ein beliebtes Passwort-Cracking-Tool in der Cybersicherheit. Die Übung umfasst die Installation von Hydra, die Einrichtung eines Zielservers mit schwachen Zugangsdaten und die Ausführung von Angriffen mit vorbereiteten Wortlisten.

Sie erhalten praktische Erfahrungen bei der Konfiguration einer SSH-Testumgebung und der Analyse der Brute-Force-Fähigkeiten von Hydra. Dieses Lab zeigt reale Angriffsszenarien auf, während es die Prinzipien des ethischen Hackens in einer kontrollierten Umgebung stärkt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/output_saving("Output File Saving") hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage") hydra/HydraGroup -.-> hydra/success_detection("Login Success Detection") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/password_creation -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/username_creation -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/ssh_attack -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/output_saving -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/verbose_mode -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/success_detection -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} hydra/troubleshooting -.-> lab-549926{{"Brute-Force-SSH-Angriff mit Hydra"}} end

Hydra installieren

In diesem Schritt werden wir Hydra installieren, ein leistungsstarkes Passwort-Cracking-Tool, das für Brute-Force-Angriffe gegen verschiedene Netzwerkdienste verwendet wird. Hydra ist besonders nützlich für Penetrationstests, da es systematisch verschiedene Benutzername- und Passwortkombinationen ausprobieren kann, um Zugang zu gesicherten Systemen zu erhalten. Es unterstützt mehrere Protokolle, darunter SSH (das wir in diesem Lab verwenden werden), FTP, HTTP und mehr.

  1. Öffnen Sie zunächst das Terminal in Ihrer LabEx-VM-Umgebung. Das Terminal ist Ihre primäre Schnittstelle zum Ausführen von Befehlen in Linux. Stellen Sie sicher, dass Sie sich im Standardarbeitsverzeichnis befinden, in dem wir alle unsere Labarbeiten durchführen werden:

    cd ~/project
  2. Bevor Sie neue Software installieren, ist es eine gute Praxis, Ihre Paketliste zu aktualisieren. Dadurch stellen Sie sicher, dass Sie die neueste verfügbare Version von Hydra und all seine Abhängigkeiten erhalten:

    sudo apt update
  3. Jetzt installieren wir Hydra mit dem apt-Paketmanager, der die Softwareinstallation auf Debian-basierten Systemen wie Ubuntu verwaltet. Das -y-Flag bestätigt die Installation automatisch:

    sudo apt install -y hydra
  4. Nach der Installation überprüfen wir, ob Hydra richtig installiert wurde, indem wir seine Version prüfen. Der Befehl head -n 1 zeigt nur die erste Zeile der Ausgabe an, die die Versionsinformation enthält:

    hydra -h | head -n 1

    Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    Hydra v9.3 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.
  5. Hydra bietet auch eine grafische Benutzeroberfläche (GUI) für diejenigen, die GUI-Tools bevorzugen. Während wir in diesem Lab die Befehlszeilenversion verwenden werden, können Sie optional die GTK+-GUI-Version installieren mit:

    sudo apt install -y hydra-gtk

Ein Ziel-SSH-Server einrichten

In diesem Schritt werden wir einen lokalen SSH-Server konfigurieren, der als Ziel für das Passwort-Cracking in den folgenden Schritten dienen wird. Dies ermöglicht es uns, Penetrationstest-Techniken in einer kontrollierten Umgebung zu üben. SSH (Secure Shell) ist ein Protokoll für sichere Remotelogins zwischen Computern, und wir werden eine anfällige Version zu Lernzwecken einrichten.

  1. Stellen Sie zunächst sicher, dass Sie sich im Standardarbeitsverzeichnis befinden. Dies ist wichtig, da wir möchten, dass alle unsere Lab-Dateien an einem Ort organisiert sind:

    cd ~/project
  2. Installieren Sie das OpenSSH-Server-Paket. Diese Software wird Ihren Computer in einen SSH-Server verwandeln, der Remote-Verbindungen akzeptieren kann:

    sudo apt install -y openssh-server
  3. Erstellen Sie ein spezielles Testbenutzerkonto mit einem schwachen Passwort (ausschließlich zu Demonstrationszwecken). In realen Szenarien sind genau solche schwachen Passwörter, wonach Angreifer suchen:

    sudo useradd -m testuser
    echo "testuser:password123" | sudo chpasswd
  4. Konfigurieren Sie SSH so, dass die Passwortauthentifizierung (vorübergehend für dieses Lab) erlaubt wird. Aus Sicherheitsgründen deaktivieren viele Systeme standardmäßig die Passwortauthentifizierung, aber wir aktivieren sie hier, um zu zeigen, wie Brute-Force-Angriffe funktionieren:

    sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
  5. Starten Sie den SSH-Dienst neu, um die Änderungen anzuwenden. Dienste müssen oft neu gestartet werden, damit Konfigurationsänderungen wirksam werden:

    sudo service ssh restart
  6. Überprüfen Sie, ob der SSH-Server läuft. Dieser Befehl prüft, ob unser SSH-Server ordnungsgemäß aktiv ist und auf Verbindungen wartet:

    sudo service ssh status

    Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktiv (läuft) ist. Wenn nicht, könnte es einen Fehler in den vorherigen Schritten gegeben haben, der behoben werden muss.

  7. Testen Sie die SSH-Verbindung lokal. Dieser letzte Test bestätigt, dass alles funktioniert, bevor wir in die Angriffsphase übergehen:

    ssh testuser@localhost -o StrictHostKeyChecking=no

    Wenn Sie dazu aufgefordert werden, geben Sie das Passwort password123 ein. Nach einem erfolgreichen Login geben Sie exit ein, um zur Hauptsitzung zurückzukehren. Die Option -o StrictHostKeyChecking=no verhindert, dass SSH Sie zur Überprüfung des Server-Fingerabdrucks auffordert, was in dieser Lab-Umgebung akzeptabel ist.

Eine Liste von Benutzernamen und Passwörtern vorbereiten

In diesem Schritt werden wir Textdateien erstellen, die potenzielle Benutzernamen und Passwörter enthalten, die Hydra für den SSH-Authentifizierungsversuch verwenden wird. Diese Dateien sind für Wörterbuch-basierte Brute-Force-Angriffe unerlässlich. Ein Wörterbuchangriff funktioniert, indem systematisch alle möglichen Kombinationen von Benutzernamen und Passwörtern aus vordefinierten Listen ausprobiert werden, weshalb es wichtig ist, gute Listen vorzubereiten.

  1. Stellen Sie zunächst sicher, dass Sie sich im Standardarbeitsverzeichnis befinden. Dies hilft, Ihre Projektdateien organisiert zu halten und erleichtert es, später auf sie zu verweisen:

    cd ~/project
  2. Erstellen Sie eine Datei für die Benutzernamenliste mit dem nano-Texteditor. Häufige Benutzernamen werden in Brute-Force-Angriffen oft zuerst ausprobiert, da viele Systeme Standard- oder vorhersehbare Benutzernamen verwenden:

    nano usernames.txt

    Fügen Sie diese häufigen Benutzernamen hinzu (drücken Sie Ctrl+O, um zu speichern, und dann Ctrl+X, um zu beenden):

    admin
    root
    testuser
    user
    guest
  3. Erstellen Sie eine Datei für die Passwortliste. Schwache Passwörter wie diese werden häufig verwendet und sind oft die ersten Ziele bei Sicherheitstests:

    nano passwords.txt

    Fügen Sie diese häufigen Passwörter hinzu:

    password
    password123
    123456
    qwerty
    letmein
  4. Überprüfen Sie, ob die Dateien korrekt erstellt wurden, indem Sie ihren Inhalt anzeigen. Dieser Bestätigungsschritt stellt sicher, dass es keine Tippfehler oder Formatierungsprobleme in Ihren Listen gibt:

    cat usernames.txt
    cat passwords.txt

    Sie sollten die von Ihnen erstellten Listen im Terminal sehen.

  5. (Optional) Generieren Sie zusätzliche Passwortvariationen mit crunch. Dieses Tool hilft, umfassendere Passwortlisten zu erstellen, indem es automatisch Kombinationen basierend auf festgelegten Mustern generiert:

    sudo apt install -y crunch
    crunch 4 6 0123456789 -o num_passwords.txt

    Dies erstellt numerische Passwörter mit einer Länge zwischen 4 und 6 Zeichen. Der Befehl gibt die Mindestlänge (4), die maximale Länge (6) und den Zeichensatz (Ziffern 0 - 9) an.

Hydra gegen SSH ausführen

In diesem Schritt werden wir Hydra verwenden, um einen Brute-Force-Angriff auf unseren lokalen SSH-Server durchzuführen. Beim Brute-Force-Verfahren werden viele Benutzername/Passwort-Kombinationen ausprobiert, bis die richtige gefunden wird. Wir werden die zuvor vorbereiteten Wörterlisten nutzen, um diesen Prozess zu automatisieren.

  1. Navigieren Sie zunächst in das Projektverzeichnis, das Ihre Wörterlisten enthält. Dadurch wird sichergestellt, dass Hydra die von uns erstellten Dateien finden kann:

    cd ~/project
  2. Jetzt führen wir Hydra mit bestimmten Parametern aus. Die Befehlsstruktur gibt Hydra an, was es angreifen soll und wie. Lassen Sie uns es aufschlüsseln:

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -vV

    Erklärung der Parameter:

    • -L usernames.txt: Verweist auf unsere Liste möglicher Benutzernamen
    • -P passwords.txt: Gibt unsere Passwort-Wörterbuchdatei an
    • ssh://localhost: Zielt auf den SSH-Dienst auf diesem Computer
    • -t 4: Steuert die Geschwindigkeit, indem es auf 4 gleichzeitige Versuche begrenzt
    • -vV: Zeigt den detaillierten Fortschritt im Terminal an
  3. Während Hydra läuft, wird es jeden Versuch in Echtzeit anzeigen. Wenn es gültige Zugangsdaten findet, werden sie wie folgt deutlich in der Ausgabe erscheinen:

    [22][ssh] host: localhost   login: testuser   password: password123
  4. (Optional) Um eine dauerhafte Aufzeichnung der Ergebnisse zu erstellen, können wir sie in einer Datei speichern. Dies ist nützlich für die Dokumentation oder eine weitere Analyse:

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -o results.txt
  5. Nach Abschluss des Scans können Sie die gespeicherten Ergebnisse mit folgendem Befehl anzeigen:

    cat results.txt

Überprüfung der Angriffs-Ergebnisse

In diesem Schritt werden wir die Ausgabe von Hydra sorgfältig untersuchen, um zu ermitteln, welche Benutzername- und Passwortkombinationen bei unserem SSH-Brute-Force-Angriff erfolgreich waren. Das Verständnis dieser Ergebnisse hilft zu zeigen, wie leicht schwache Zugangsdaten ausgenutzt werden können.

  1. Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem Hydra seine Ausgabedateien gespeichert hat:

    cd ~/project

    Dies stellt sicher, dass wir uns am richtigen Ort befinden, um auf unsere Ergebnisse zuzugreifen.

  2. Sehen Sie sich die Rohausgabedatei von Hydra an, die während des Angriffs erstellt wurde:

    cat results.txt

    Sie sollten eine Ausgabe ähnlich der folgenden sehen, die alle erfolgreichen Zugangsdatenpaare anzeigt:

    [22][ssh] host: localhost   login: testuser   password: password123

    Jede Zeile repräsentiert einen erfolgreichen Anmeldeversuch mit den entsprechenden Zugangsdaten.

  3. Um einen Überblick über die Effektivität des Angriffs zu erhalten, überprüfen Sie die Zusammenfassungsstatistiken:

    grep "successfully completed" results.txt

    Dieser Befehl filtert nur die Zusammenfassungszeile heraus, die die Gesamtzahl der vorgenommenen Versuche und die Dauer des Angriffs anzeigt.

  4. Lassen Sie uns überprüfen, ob diese Zugangsdaten tatsächlich funktionieren, indem wir einen SSH-Anmeldeversuch durchführen:

    ssh testuser@localhost -o StrictHostKeyChecking=no

    Wenn Sie dazu aufgefordert werden, geben Sie das Passwort password123 ein. Nach erfolgreicher Anmeldung geben Sie exit ein, um zum Hauptterminal zurückzukehren. Dieser praktische Test bestätigt, dass die Zugangsdaten gültig sind.

  5. Erstellen Sie einen einfachen Sicherheitsbericht, der unsere Ergebnisse dokumentiert:

    echo "Security Test Report" > report.txt
    date >> report.txt
    echo "Compromised Credentials:" >> report.txt
    grep -A 2 "successfully completed" results.txt >> report.txt

    Dies erstellt ein zeitgestempeltes Dokument, das die anfälligen Zugangsdaten und die Angriffsstatistiken enthält.

  6. Schließlich sehen Sie sich den abgeschlossenen Sicherheitsbericht an:

    cat report.txt

    Dies gibt Ihnen eine klare und organisierte Übersicht über die während des Tests entdeckten Sicherheitslücken.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie mit Hydra, einem leistungsstarken Passwort-Cracking-Tool, einen Brute-Force-Angriff auf SSH durchführen können. Die Übung umfasste die Installation von Hydra, die Konfiguration eines SSH-Servers für Tests und die Erstellung von gezielten Benutzername- und Passwortlisten.

Sie haben das Ausführen von Wörterbuchangriffen und die Analyse der Ergebnisse geübt und damit gezeigt, wie leicht schwache Zugangsdaten ausgenutzt werden können. Diese praktische Erfahrung unterstreicht die dringende Notwendigkeit von starken Passwörtern und sicheren Authentifizierungsmethoden in der Cybersicherheit.