URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 112678
[ Назад ]

Исходное сообщение
"Уязвимость в панели управления хостингом Vesta, позволяющая ..."

Отправлено opennews , 04-Ноя-17 11:44 
В Vesta Control Panel (http://vestacp.com), web-панели управления сервером хостинга, распространяемой (https://github.com/serghey-rodin/vesta) под лицензией GPLv3, выявлена (https://blog.tarq.io/vestacp-root-privilege-escalation/) критическая уязвимость, позволяющая поднять свои привилегии в системе. Суть уязвимости в том, что связанные с аутентификацией настройки передаются http-серверу nginx через включение файла директивой "include" в nginx.conf.


Файл с дополнительными настройками сохраняется в каталогах пользователей (/home/{user}/web/{domain}/stats/auth.conf) с правами непривилегированного пользователя хостинга, но при перезапуске nginx   обрабатывает настройки с правами root. Пользователь хостинга может подменить содержимое auth.conf и получить доступ к содержимому любых системных файлов, в том числе узнать содержимое /etc/shadow.


Например, пользователь может записать в файл


   client_body_temp_path /etc/shadow;
   location /vstats/steal {
      alias / ;
   }

Первая стока позволит при  перезапуске nginx сменить владельца для /etc/shadow на пользователя nginx. А вторая строка позволит  получить содержимое /etc/shadow при открытии в браузере страницы "http://test.com/vstats/steal/etc/shadow".

Также возможно перезаписать содержимое любых системных файлов и получить привилегии root без необходимости подбора пароля по хэшу. Например, указав

   client_body_temp_path /etc/profile.d/vim.sh;  
   location /evil {  
      error_log /etc/profile.d/vim.sh;
   }

можно записать данные в файл /etc/profile.d/vim.sh отправить ошибочный запрос к сайту.

URL: https://blog.tarq.io/vestacp-root-privilege-escalation/
Новость: https://www.opennet.ru/opennews/art.shtml?num=47503


Содержание

Сообщения в этом обсуждении
"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Zenitur , 04-Ноя-17 11:44 
Ух ты, как раз искал подобный интерфейс

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено МОИ ГЛАЗА РАЗВИДЕТь , 05-Ноя-17 01:10 
Веб-макака и эникейщик?

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Zenitur , 05-Ноя-17 09:44 
Эникейщик и админ локалхоста. Хотя, если успешно пройду собеседование, то стану инженером технической поддержки!

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 05-Ноя-17 11:05 
А в чем проблемы? Запусти nginx под рутом, укажи / ФС как / сервера и включи DirIndex. Интересно же что у тебя в /etc/shadow.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено pavlinux , 06-Ноя-17 00:17 
> А в чем проблемы? Запусти nginx под рутом, укажи / ФС как
> / сервера и включи DirIndex. Интересно же что у тебя в
> /etc/shadow.

Жги, кульхацкep!


root:$6$OdsJxgN8$2hcptDn0GYgpAHDQzhp0i7qMwNTE5YRX.UHauP2OUHvXs3FAOR1A6WluRx6ukE3a.0AazDsynZUJqQZ9lwMkr0:16480:0:99999:7:::
daemon:*:16480:0:99999:7:::
bin:*:16480:0:99999:7:::
sys:*:16480:0:99999:7:::
sync:*:16480:0:99999:7:::
games:*:16480:0:99999:7:::
man:*:16480:0:99999:7:::
lp:*:16480:0:99999:7:::
mail:*:16480:0:99999:7:::
uucp:*:16480:0:99999:7:::
proxy:*:16480:0:99999:7:::
www-data:*:16480:0:99999:7:::
backup:*:16480:0:99999:7:::
messagebus:*:16480:0:99999:7:::
mysql:!:16491:0:99999:7:::
colord:*:16480:0:99999:7:::
lightdm:*:16480:0:99999:7:::
geoclue:*:16491:0:99999:7:::
dnsmasq:*:16494:0:99999:7:::
pavel:$6$Y9qsycbT$cvDuXake4D9SIp1P7wJ8Qa5fqypxGSqAseHjp2d.ijIYksaPAMprlq1G0Iorv8vo8KiBsqFTtOIKP6hOLr9Ig.:17475:0:99999:7:::
nobody:*:16480:0:99999:7:::
debian-tor:*:16712:0:99999:7:::
ntp:*:16736:0:99999:7:::
sshd:*:16851:0:99999:7:::
uuidd:*:16865:0:99999:7:::
mongodb:*:17101:0:99999:7:::
libvirt-qemu:!:17224::::::
statd:*:17298:0:99999:7:::
uml-net:*:17369:0:99999:7:::


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 11:54 
Там какой-то взрыв мозга от их подхода к безопасности, давно я такой беспечности не видел.

Бегло глянул на код и сразу ещё одну дыру нашёл.

https://github.com/serghey-rodin/vesta/blob/master/web/login...

exec(VESTA_CMD ."v-check-user-password ".$v_user." ".$v_password." ".escapeshellarg($_SERVER['REMOTE_ADDR']),  $output, $return_var);

где
$v_user = escapeshellarg($_POST['user']), но $v_password выставляется без экранирования из $_POST['password'].

и так везде через exec-и с прямой подстановкой из $_POST всё делается.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 11:56 
кто не понял, вводите в форме аутентификации вместо пароля ";код" и запускайте на сервере что душе угодно.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 14:38 
Хреновый с тебя безопасник. $v_password - это путь до временного файла, в который уже записан сам пароль, и на этот путь повлиять нельзя, всё нормально тут (ну, кроме названия переменной)

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 20:00 
> Хреновый с тебя безопасник. $v_password - это путь до временного файла, в

Это они уже поправили :-)

Было

if (isset($_POST['user']) && isset($_POST['password'])) {
     $v_user = escapeshellarg($_POST['user']);
     $v_password = escapeshellarg($_POST['password']);
...


https://github.com/serghey-rodin/vesta/commit/1a7612cc66f0e0...


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 19:53 
$v_password = exec('mktemp -p /tmp');

Мощную ты там уязвимость нашел, мой юный хакир


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено imperio , 05-Ноя-17 15:16 
Нормальный подход к безопасности. За все время существования проекта уязвимостей самой панели было очень мало. Обращения были по взломам через кривые сайты и различные плагины.
Не помню обращений чтобы взломали саму панель или через неё.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Led , 05-Ноя-17 18:14 
> Нормальный подход к безопасности.

Так их!
"imperio наносит ответный удар"!


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено th3m3 , 04-Ноя-17 12:36 
Я всегда говорил, что все эти панели до добра не доведут. Консолька наше всё!

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 12:41 
Почитай про уязвимости в ssh, консольщик.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 13:14 
И кто же это минус за ssh поставил? Он наверное им тоже не пользуется для подключения и затем управления сервером.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 17:15 
Веб-макаки, сэр!

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 05-Ноя-17 19:13 
Макаки те, кто бездумно повторяет за другими. Ты, например. Занятно, что в мире макак системы управления могут иметь только консольный интерфейс. Видимо проблема сводится всё же не к макакам, а к малолетним идиотам.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено A.Stahl , 04-Ноя-17 12:48 
>Консолька наше всё!

Ну да, такой широкий простор для идотских опечаток, приводящих в серьёзным последствиям, не обеспечит никакая панель. А уж сколько можно запомнить различных ключей к специфическим утилитам... Ах-х-х... Пойду зазубрю парочку манов. Это так возбуждает.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено der_fenix , 04-Ноя-17 12:54 
cmdname --help набрать очень сложно, ага

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено A.Stahl , 04-Ноя-17 13:01 
Совсем не сложно. Но зачем?

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 14:52 
Не помнишь к чему это консольничество привело в случае с GitLab? К удалению БД в 300 гиг!

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено . , 04-Ноя-17 21:16 
ню-ню ... а тач чтобы в конец заё**ый админ в "оснастке управления" да хоть тем же мыссымсыквылем не на ту кнопку ляпнул - такого конечно не бывает? Ясно-понято ...
:)

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 05-Ноя-17 19:16 
> ню-ню ... а тач чтобы в конец заё**ый админ в "оснастке управления"
> да хоть тем же мыссымсыквылем не на ту кнопку ляпнул -
> такого конечно не бывает? Ясно-понято ...
> :)

Бывает всякое. Но в гую интерфейсе начудить значительно сложнее, лет через 10 поймешь.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено YetAnotherOnanym , 04-Ноя-17 13:55 
Ну так похмелиться надо перед тем, как садиться за консольку, чтобы руки не тряслись.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 05-Ноя-17 19:38 
> Ну так похмелиться надо перед тем, как садиться за консольку, чтобы руки
> не тряслись.

Начальник твой одобряет это твое поведение?


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено рабовладелец , 04-Ноя-17 14:35 
> Я всегда говорил, что все эти панели до добра не доведут. Консолька наше всё!

и прикованный к ней раб, 24/7 исполняющий команды примерно полутысчонки юзеров shared-hosting (для которых эти панели и предназначены) на предмет чего-нибудь вроде "нарисуй мне alias отсюда туда" или "поменяй дефолтную кодировку". Заодно расплачиваясь своей шкурой, если что сделал не так - по своей ошибке, или вредный юзер развел.

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


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено th3m3 , 04-Ноя-17 20:47 
Ты загибаешь палку. Если на то пошло, можно написать утилиты автоматизации для типовых задач.

Я и не про детскую песочницу(хостинги) говорю.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено пох , 04-Ноя-17 22:27 
> Я и не про детскую песочницу(хостинги) говорю.

лично я в недетской песочнице спокойно дам разработчику возможность править конфиги - самая серьезная диверсия, которую он может совершить, это стереть/изгадить собственную разработку, доступ к которой у него по определению есть. (правда, ему придется придумать, зачем оно ему надо, уж не ради конфигурирования авторизации точно) Да и конфиг будет, скорее всего, от веб-сервера, в котором кроме него никто не живет, поскольку это либо виртуалка, либо контейнер, какой дятел в недетской будет мешать разные проекты в один сервер?

"панели" нужны именно для old-style хостингов, когда эти "разработчики" во-первых, из разных недружественных контор, во-вторых, работают не из защищенного периметра офиса, а хз откуда, соответственно, пароли и логины еще и без конца утекают вообще левым кульхацкерам.

Ну и когда настройками вместо разработчика вообще рулит владелец сайта, далекий от всего этого - ему сказали куда нажать, он примерно туда и нажал.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 05-Ноя-17 02:25 
Бесплатный != свободный.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 14:58 
Гугли Shellshock (Bashdoor)

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 14:51 
> распространяемой под лицензией GPLv3

Куча дыр, кривизна - но лицензия .. лицензия. Всем быстро ставить!


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 04-Ноя-17 15:19 
как будто коммерческие панели прямые и без дырок...

зато лицензии у них - как надо лицензии.
"да, у вас пожизенная неограниченная лицензия на cpanel. Но нам что-то надоело держать целый один ржавый ящик в дальнем углу датацентра, на котором крутился сервер лицензирования, который она проверяет онлайн - так мы его завтра выключим, кто не спрятался - мы не виноваты. Надо было вовремя апгрейдиться на новую херовую версию нашего чудесного багнутого продукта - и нам плевать, что он у вас в миллионе мест вручную подпилен и подперт кривыми подпорочками, чтобы хоть как-то держать нагрузку, и интегрирован в биллинг и кучу внутренних систем, да и пользователи при апгрейде на совершенно другой look&feel разбегутся пачками, а старый в новую версию просто так не воткнешь"

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

и ты с этим ничего сделать не можешь - только жалобно упрашивать "ну может хоть не завтра, а послезавтра?"


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено th3m3 , 04-Ноя-17 17:26 
Оно ещё и на php.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено angra , 04-Ноя-17 19:16 
Блин, это наверное самая смешная уязвимость за этот год.
Мне казалось, что понимание того, что нельзя делать include клиентского конфига в основной, должно приходить в голову любого, кто хочет сделать аналог .htacces в nginx. Может не сразу, а через целых две минуты, ну максимум пять. И даже если найдется альтернативно одаренный админ, то после озвучивания этой "гениальной" мысли коллегам, они наставят его на путь истинный. Кто же знал, что альтернативно одаренные просто кучкуются и пишут панели управления хостингом.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено KonstantinB , 05-Ноя-17 05:15 
Так-то можно, только клиентский конфиг должен генерироваться из возможных тщательно продуманных вариантов по белому списку, а не из пользовательского ввода.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено KonstantinB , 05-Ноя-17 05:15 
И, конечно, не лежать в пользовательском каталоге с uid пользователя :-)

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено angra , 05-Ноя-17 20:22 
Скажу по секрету, даже если он будет принадлежать root, пользователь может его легко изменить. Если конечно не использовался sticky bit, но о нем почему-то мало кто из админов знает/помнит.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Вася , 05-Ноя-17 11:58 
Разработчики решили замолчать это событие.

Примечательно что в оригинальной новости написано, что автор связывался с ними в марте по этому вопросу и в итоге тишина.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено imperio , 05-Ноя-17 12:40 
Никто с нами не связывался по этому поводу. Про уязвимость сообщили совсем недавно. Передано разработчикам.

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено imperio , 05-Ноя-17 18:40 
Проблема касается только связки nginx + php-fpm
Смотрите чтобы chown для auth.conf был root:root

"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено Аноним , 06-Ноя-17 00:05 
> Проблема касается только связки nginx + php-fpm
> Смотрите чтобы chown для auth.conf был root:root

chown root:root нужен не только на файл auth.conf и даже не только на директорию stats, но и для всех директорий в цепочке, иначе, если одна из директорий принадлежит пользователю, он может её переименовать/удалить и создать новую со своим содержимым.


"Уязвимость в панели управления хостингом Vesta, позволяющая ..."
Отправлено imperio , 05-Ноя-17 18:49 
Лучше пока изменить chown для папки stats