In diesem Lab lernen Sie, wie Sie Brute-Force-Angriffe gegen FTP-Dienste mit Hydra durchführen, einem vielseitigen Tool zum Knacken von Passwörtern. Sie richten einen lokalen FTP-Server mit vsftpd ein und erstellen Testkonten mit schwachen Passwörtern, um Sicherheitslücken zu demonstrieren.
Das Lab führt Sie durch die Ausführung von Hydra-Angriffen, die Analyse der Ergebnisse und das Verständnis, wie schwache Authentifizierung FTP-Dienste gefährden kann. Diese praktische Übung umfasst die Serverkonfiguration, die Angriffssimulation und die Sicherheitsbewertung in einer kontrollierten Umgebung.
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/single_username("Single Username Attack")
hydra/HydraGroup -.-> hydra/single_password("Single Password Attack")
hydra/HydraGroup -.-> hydra/ftp_attack("FTP Brute Force")
hydra/HydraGroup -.-> hydra/output_saving("Output File Saving")
hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage")
subgraph Lab Skills
hydra/installation -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/password_creation -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/username_creation -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/single_username -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/single_password -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/ftp_attack -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/output_saving -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
hydra/verbose_mode -.-> lab-549914{{"FTP-Dienste mit Hydra angreifen"}}
end
Einrichten eines lokalen FTP-Servers
In diesem Schritt richten Sie einen lokalen FTP-Server mit vsftpd (Very Secure FTP Daemon) in der LabEx VM-Umgebung ein. FTP (File Transfer Protocol, Dateiübertragungsprotokoll) ist ein Standard-Netzwerkprotokoll, das zum Übertragen von Dateien zwischen einem Client und einem Server über ein Netzwerk verwendet wird. Stellen Sie es sich wie eine digitale Poststelle vor, die Dateizustellungen zwischen Computern abwickelt.
Zuerst müssen wir das vsftpd-Paket installieren. Dieser Befehl aktualisiert Ihre Paketliste und installiert die FTP-Serversoftware:
Nach der Installation ist es eine gute Praxis, eine Sicherungskopie der Standardkonfigurationsdatei zu erstellen. Auf diese Weise können Sie die ursprünglichen Einstellungen bei Bedarf jederzeit wiederherstellen:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Jetzt bearbeiten wir die Konfigurationsdatei mit nano, einem einfachen Texteditor in Linux. Diese Datei steuert, wie sich Ihr FTP-Server verhält:
sudo nano /etc/vsftpd.conf
Innerhalb der Konfigurationsdatei müssen wir diese wichtigen Einstellungen ändern. Diese Änderungen werden:
Nachdem Sie diese Änderungen vorgenommen haben, speichern Sie die Datei, indem Sie Strg+O (Write Out) drücken, und beenden Sie dann nano mit Strg+X.
Jetzt müssen wir den vsftpd-Dienst neu starten, um unsere Konfigurationsänderungen anzuwenden. Dies ist wie das Aktualisieren des Servers mit unseren neuen Einstellungen:
sudo service vsftpd restart
Als Nächstes erstellen wir ein Testbenutzerkonto speziell für den FTP-Zugriff. Das Flag -m erstellt ein Home-Verzeichnis und -s legt die Standard-Shell fest:
Wenn Sie dazu aufgefordert werden, setzen Sie das Passwort auf password123. Wir verwenden dieses einfache Passwort nur zu Testzwecken - in realen Situationen sollten Sie immer starke Passwörter verwenden.
Erstellen wir ein spezielles Verzeichnis für FTP-Tests und setzen wir die richtigen Berechtigungen. Dies stellt sicher, dass unser Testbenutzer auf Dateien in diesem Ordner zugreifen und diese ändern kann:
Schließlich sollten wir überprüfen, ob unser FTP-Server ordnungsgemäß läuft. Dieser Befehl überprüft den Status des vsftpd-Dienstes:
sudo service vsftpd status
Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktiv ist (läuft). Wenn Sie Fehler sehen, müssen Sie möglicherweise Ihre Konfigurationsschritte überprüfen.
Konfigurieren des FTP-Servers mit Testbenutzern
In diesem Schritt bereiten wir unseren FTP-Server für Sicherheitstests vor, indem wir Testkonten mit absichtlich schwachen Passwörtern erstellen. Dieses Setup ahmt häufige Sicherheitslücken nach, die in realen Systemen gefunden werden, in denen Benutzer oft einfache Passwörter wählen. Wir erstellen drei Testbenutzer, richten ihre Home-Verzeichnisse ein und generieren Passwortlisten, die Hydra später verwenden wird.
Erstellen wir zunächst drei Testbenutzer mit schwachen Passwörtern (nur zu Demonstrationszwecken). Diese Befehle erstellen neue Systembenutzer mit Home-Verzeichnissen und setzen ihre Passwörter:
Jetzt erstellen wir dedizierte FTP-Verzeichnisse für jeden Benutzer und setzen die richtigen Eigentumsrechte. Dies stellt sicher, dass jeder Benutzer nur über FTP auf seine eigenen Dateien zugreifen kann:
Füllen wir das Verzeichnis jedes Benutzers mit einer Testdatei. Diese Dateien helfen später, den erfolgreichen FTP-Zugriff zu überprüfen:
echo "This is ftpuser1's test file" | sudo tee /home/ftpuser1/ftp_files/test1.txt
echo "This is ftpuser2's test file" | sudo tee /home/ftpuser2/ftp_files/test2.txt
echo "This is ftpuser3's test file" | sudo tee /home/ftpuser3/ftp_files/test3.txt
Bevor wir fortfahren, überprüfen wir, ob der FTP-Zugriff für einen unserer Testbenutzer funktioniert. Dieser curl-Befehl versucht, eine Datei mit FTP-Anmeldeinformationen herunterzuladen:
Wenn alles korrekt konfiguriert ist, sollten Sie den Inhalt von test1.txt in Ihrem Terminal sehen.
This is ftpuser1's test file
Vorbereiten von Angriffslisten für FTP
In diesem Schritt bereiten Sie die Wortlisten vor, die Hydra verwenden wird, um zu versuchen, sich am FTP-Server anzumelden. Diese Listen enthalten potenzielle Benutzernamen und Passwörter, die Hydra während des Brute-Force-Angriffs systematisch ausprobieren wird. Das Verständnis, wie man effektive Wortlisten erstellt, ist entscheidend für Penetrationstests (Penetration Testing).
Zuerst erstellen wir eine einfache Benutzernamenliste mit gängigen FTP-Benutzernamen. Dies sind Standard- oder häufig verwendete Kontonamen, die Administratoren manchmal vergessen zu ändern:
Als Nächstes erstellen wir eine Passwortliste mit gängigen schwachen Passwörtern. Viele Benutzer legen einfache Passwörter fest, die leicht zu merken, aber auch leicht zu erraten sind:
Überprüfen wir, ob beide Dateien korrekt erstellt wurden, indem wir ihren Inhalt anzeigen. Dies stellt sicher, dass unsere Listen genau das enthalten, was wir beabsichtigt haben:
Um komplexere Passwortkombinationen zu generieren, installieren wir das Tool crunch. Dies hilft, systematische Passwortmuster zu erstellen, die in realen Systemen verwendet werden könnten:
sudo apt-get install -y crunch
Jetzt verwenden wir crunch, um numerische Passwörter mit genau 6 Ziffern zu generieren. Dies simuliert gängige Passwörter, die nur aus Zahlen bestehen, wie z. B. Geburtsdaten oder einfache PINs:
Kombinieren Sie alle Passwortlisten in einer umfassenden Datei. Diese zusammengeführte Liste gibt Hydra mehr Passwortoptionen, die es während des Angriffs ausprobieren kann:
Überprüfen Sie, wie viele Passworteinträge wir erstellt haben. Dies hilft, abzuschätzen, wie lange der Brute-Force-Angriff dauern könnte:
wc -l ~/project/combined_passwords.txt
Erstellen Sie schließlich eine kleinere Testpasswortdatei zu Demonstrationszwecken. Die Verwendung einer Teilmenge hilft zu überprüfen, ob unser Setup funktioniert, bevor wir den vollständigen Angriff ausführen:
head -n 50 ~/project/combined_passwords.txt > ~/project/test_passwords.txt
Ausführen eines Hydra-Angriffs auf den FTP-Dienst
In diesem Schritt verwenden Sie Hydra, um einen Brute-Force-Angriff auf den lokalen FTP-Server durchzuführen, den wir zuvor konfiguriert haben. Hydra ist ein beliebtes Tool zum Knacken von Passwörtern, das viele Protokolle unterstützt, darunter FTP. Ein Brute-Force-Angriff versucht systematisch alle möglichen Passwortkombinationen, bis das richtige gefunden ist. Dies zeigt, warum schwache Passwörter anfällig für solche Angriffe sind.
Überprüfen Sie zunächst, ob Hydra installiert ist, indem Sie das Hilfemenü überprüfen. Dies bestätigt, dass das Tool einsatzbereit ist und zeigt die verfügbaren Optionen an:
hydra -h
Führen Sie einen einfachen Hydra-Angriff mit den von uns erstellten Benutzer- und Passwortlisten aus. -L gibt die Benutzerliste an und -P die Passwortliste. Hydra wird jede Kombination gegen den auf localhost laufenden FTP-Dienst ausprobieren:
Um eine detailliertere Ausgabe des Angriffsfortschritts zu sehen, fügen Sie das Flag -vV hinzu. Dieser ausführliche Modus hilft zu verstehen, was Hydra während des Angriffs tut:
Führen Sie einen umfassenderen Angriff mit der vollständigen Passwortliste aus (dies dauert länger). Die Option -t 4 begrenzt die Anzahl der parallelen Verbindungen auf 4, um eine Überlastung des Servers zu vermeiden und gleichzeitig eine gute Geschwindigkeit beizubehalten:
Wenn Hydra gültige Anmeldeinformationen findet, werden diese in der Ausgabe angezeigt. Dies zeigt, welche Benutzername/Passwort-Kombination sich erfolgreich am FTP-Server authentifiziert hat. Beispiel für eine erfolgreiche Ausgabe:
Speichern Sie die Ergebnisse zur späteren Analyse in einer Datei. Die Option -o schreibt die Ausgabe in eine Datei, anstatt sie nur auf dem Bildschirm anzuzeigen:
Überprüfen Sie die Ergebnisdatei, um festzustellen, ob Anmeldeinformationen gefunden wurden. Auf diese Weise können Sie die Ergebnisse überprüfen, nachdem der Angriff abgeschlossen ist:
cat ~/project/hydra_results.txt
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie einen lokalen FTP-Server mit vsftpd konfigurieren, einschließlich der Paketinstallation, Konfigurationsanpassungen für den lokalen Benutzerzugriff und der Erstellung von Testkonten mit schwachen Passwörtern. Der Prozess umfasste die Änderung der vsftpd.conf-Einstellungen, die Einrichtung geeigneter Verzeichnisberechtigungen und die Überprüfung der Dienstfunktionalität.
Darüber hinaus haben Sie eine Testumgebung für Hydra-Angriffe vorbereitet, indem Sie mehrere Konten mit vorhersehbaren Anmeldeinformationen erstellt haben. Dieses Setup bietet ein kontrolliertes Szenario, um Brute-Force-Techniken zu üben und gleichzeitig realistische Sicherheitsprüfungsbedingungen aufrechtzuerhalten.