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.
-
Ü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.
-
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.
-
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.
-
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.
-
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.