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