FTP-Dienste mit Hydra angreifen

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

  1. Zuerst müssen wir das vsftpd-Paket installieren. Dieser Befehl aktualisiert Ihre Paketliste und installiert die FTP-Serversoftware:
sudo apt-get update && sudo apt-get install -y vsftpd
  1. 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
  1. 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
  1. Innerhalb der Konfigurationsdatei müssen wir diese wichtigen Einstellungen ändern. Diese Änderungen werden:
    • Anonymen Zugriff deaktivieren (aus Sicherheitsgründen)
    • Lokalen Benutzern die Anmeldung ermöglichen
    • Datei-Uploads zulassen
    • Benutzer auf ihre Home-Verzeichnisse beschränken (zur Sicherheit)
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
modify configuration

Sie können die Änderungen überprüfen, indem Sie den folgenden Befehl ausführen:

grep -E "^(anonymous_enable|local_enable|write_enable|chroot_local_user|allow_writeable_chroot)=" /etc/vsftpd.conf | cat
verify configuration
  1. 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.

  2. 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
  1. 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:
sudo useradd -m ftpuser -s /bin/bash
sudo passwd ftpuser

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.

  1. 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:
sudo mkdir -p /home/ftpuser/ftp_test
sudo chown ftpuser:ftpuser /home/ftpuser/ftp_test
  1. 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
service 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.

  1. 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:
sudo useradd -m ftpuser1 -s /bin/bash
echo "ftpuser1:password1" | sudo chpasswd

sudo useradd -m ftpuser2 -s /bin/bash
echo "ftpuser2:password2" | sudo chpasswd

sudo useradd -m ftpuser3 -s /bin/bash
echo "ftpuser3:password3" | sudo chpasswd
  1. 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:
sudo mkdir -p /home/ftpuser1/ftp_files
sudo mkdir -p /home/ftpuser2/ftp_files
sudo mkdir -p /home/ftpuser3/ftp_files

sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp_files
sudo chown ftpuser2:ftpuser2 /home/ftpuser2/ftp_files
sudo chown ftpuser3:ftpuser3 /home/ftpuser3/ftp_files
  1. 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
  1. 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:
curl -u ftpuser1:password1 ftp://localhost/ftp_files/test1.txt

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

  1. 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:
echo -e "ftpuser1\nftpuser2\nftpuser3\nadmin\nroot\nftp\ntest\nuser\nanonymous" > ~/project/ftp_users.txt
  1. 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:
echo -e "password1\npassword2\npassword3\npassword123\n123456\npassword\nadmin\nroot\nftp\ntest\nqwerty\nletmein" > ~/project/ftp_passwords.txt
  1. Ü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:
cat ~/project/ftp_users.txt
cat ~/project/ftp_passwords.txt
  1. 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
  1. 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:
crunch 6 6 1234567890 -o ~/project/numeric_passwords.txt
  1. Kombinieren Sie alle Passwortlisten in einer umfassenden Datei. Diese zusammengeführte Liste gibt Hydra mehr Passwortoptionen, die es während des Angriffs ausprobieren kann:
cat ~/project/ftp_passwords.txt ~/project/numeric_passwords.txt > ~/project/combined_passwords.txt
  1. Ü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
  1. 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.

  1. Ü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
  1. 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:
hydra -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost
hydra attack
  1. 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:
hydra -vV -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost
  1. 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:
hydra -L ~/project/ftp_users.txt -P ~/project/combined_passwords.txt ftp://localhost -t 4
  1. 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:
[21][ftp] host: 127.0.0.1   login: ftpuser1   password: password1
  1. 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:
hydra -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost -o ~/project/hydra_results.txt
  1. Ü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.