21 - FTP

Übersicht

FTP ist ein Protokoll, das zur Übertragung von Dateien zwischen einem Client und einem Server verwendet wird. Es nutzt zwei Kanäle:

  • Kontrollkanal (TCP Port 21): Zum Senden von Befehlen und Antworten.

  • Datenkanal (TCP Port 20): Zur Übertragung von Dateien.

Es gibt zwei Modi:

  • Aktiver Modus: Der Client informiert den Server, über welchen Port er antworten soll.

  • Passiver Modus: Der Server teilt dem Client mit, welchen Port er nutzen soll (besser für Firewalls).

Sicherheitsrisiken:

  • Klartextübertragung (inkl. Passwörter).

  • Anonymer Zugriff, wenn schlecht konfiguriert.


Schritt 1: Scannen mit Nmap

Führe einen grundlegenden FTP-Scan mit Nmap durch, um Informationen über den Server zu sammeln.

sudo nmap -sV -p21 -sC -A <Ziel-IP>

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-rw-r--    1 ftp      ftp       8138592 Sep 16 17:24 Calendar.pptx
| drwxrwxr-x    4 ftp      ftp          4096 Sep 16 17:57 Clients

Erklärung:

  • Anonymer Zugriff (ftp-anon): Zeigt an, dass der Server anonymen FTP-Zugang erlaubt (Code 230).


Schritt 2: Anonymer FTP-Zugang testen

Wenn Nmap zeigt, dass anonymer Zugriff erlaubt ist, verbinde dich direkt mit dem Server.

ftp <Ziel-IP>
Name: anonymous
Password: <leeres Passwort>

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r--    1 ftp      ftp       8138592 Sep 16 17:24 Calendar.pptx
drwxrwxr-x    4 ftp      ftp          4096 Sep 16 17:57 Clients

Erklärung:

  • ls: Zeigt, dass du Dateien und Verzeichnisse auf dem Server einsehen kannst. In diesem Beispiel ist die Datei Calendar.pptx sichtbar.


Schritt 3: Alle Dateien herunterladen

Wenn du mehrere Dateien gleichzeitig sichern möchtest, nutze wget, um den gesamten Serverinhalt zu spiegeln.

wget -m --no-passive ftp://anonymous:anonymous@<Ziel-IP>

--2024-09-19 14:45:58--  ftp://anonymous:*password*@<Ziel-IP>           
Connecting to <Ziel-IP>:21... connected.                                
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> LIST ... done.                                                                 
Calendar.pptx            [ <=>                                  ]     8138592  --.-KB/s    

Erklärung:

  • wget -m: Lädt alle Dateien auf dem Server herunter. In diesem Fall wird die Datei Calendar.pptx heruntergeladen.


Schritt 4: Dateien hochladen (potenziell für Exploits nutzen)

Prüfe, ob der Server das Hochladen von Dateien zulässt. Das kann für das Platzieren von schädlichem Code genutzt werden, z. B. eine Web-Shell.

ftp> put testupload.txt
local: testupload.txt remote: testupload.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r--    1 ftp      ftp         0 Sep 19 15:10 testupload.txt

Erklärung:

  • put: Erfolgreich hochgeladene Datei testupload.txt ist jetzt auf dem Server sichtbar.


Schwachstellen und Exploits

vsFTPd-Backdoor-Exploit (ältere Versionen)

Wenn der FTP-Server eine anfällige Version (z.B. vsFTPd 2.3.4) verwendet, kannst du die bekannte Backdoor überprüfen.

sudo nmap --script ftp-vsftpd-backdoor -p 21 <Ziel-IP>

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4
| ftp-vsftpd-backdoor:
|   VULNERABLE: vsFTPd version 2.3.4 backdoor command execution

Fortgeschrittene Angriffe: SSL/TLS-Verbindungen testen

Falls der FTP-Server SSL/TLS verwendet, kann openssl zur Analyse der Zertifikate verwendet werden.

openssl s_client -connect <Ziel-IP>:21 -starttls ftp

CONNECTED(00000003)
depth=0 C = US, ST = California, L = Sacramento, O = Inlanefreight
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/O=Inlanefreight/CN=master.inlanefreight.htb
---

Erklärung:

  • SSL-Zertifikate: Das Zertifikat gibt Informationen über das Unternehmen und den Standort.


Zusammenfassung:

  • Nmap zeigt Schwachstellen wie anonymen Zugriff.

  • wget lädt alle Dateien herunter.

  • Datei-Uploads können zu Exploits wie Remote Code Execution (RCE) führen.

  • Backdoor-Scans prüfen Schwachstellen in älteren vsFTPd-Versionen.

Last updated