===================================================================================
War FTP Daemon 1.70/80 series Security Advisory
===================================================================================
War FTP Daemon 1.70/80 series - бесплатный FTP-сервер, созданный для Windows систем.
Распространяется бесплатно, поэтому, как мне кажется, безопасности данного сервера
не было уделено особого внимания. После проведения тестирования данного сервиса, я
обнаружил в нем несколько багов, которые могут использоваться как для локальных ,
так и для удаленных атак на данный сервис.
Вот список уязвимостей:
-----------------------------------------------------------------------------------
1. Что меня особенно поразило, так это то, как "продвинуто" был защещен файл паролей.
Короче, все пароли для входа на сервер, включая и учетную запись инистратора, сохраняются
в файле WarUser.dat. Файл открывается как файл, данные в котором содержутся в формате
ANSI, но если просмотреть данный файл как файл в формате DOS(ASCII), то сразу можно
получить пароль учетной записи администратора(Sysadmin). ОН СОХРАНЯЕТСЯ В НЕЗАШИФРОВАНОМ
ВИДЕ, хотя пароли пользователей и щифруются. Получается, что любой человек, который
может получить доступ на чтение файла WarUser.dat, спокойно получит администраторские
привилегии на данном серваке.
2. Команда cd и get подвржены переполнению буфера, что позволяет совершить DoS или
выполнит произвольный код в системе с правами, которыми запущен FTP-сервер. Хотя
в логах при использовании переполнения буффера в команде cd и пишется, сто была попытка
переполнения, но команда все равно выполняется и данные обрабатываются. Переполнение буффера
в команде get вообще никак не обрабатывается.
3. Теоретически возможно забивание винчестера мцусором при использовании переполнения
буффера в команде cd, так как в лог пишутся все символы, которые были введены в качестве
параметра команды cd. В итоге в лог файл может получиться весьма внушительных размеров.
4. В случае взлома логи мало что могут сказать, так как система логирования действий
ползователей конкретно подглючивает. Например, на моей системе в логах указывалась информация
только о первом посещении сервера(там было больше отладочной инфы), причем информация о
действиях пользователя довольно скудная. После переполнения буффера в команде cd(see 2),
логирование вообще прерывалось, и далее действия пользователей не логировались.
Кстати, не указывается время дисконнекта пользователя, если он резко нестандартно
разрывает соединение(например закрывает окно консоли при работе с программой ftp.exe).