PDA

Просмотр полной версии : В Webmin найден бэкдор, позволяющий удалённо получить доступ с правами root


Suicide
20.08.2019, 19:44
В пакете Webmin (https://github.com/webmin/webmin/), предоставляющем средства для удалённого управления сервером, выявлен (https://groups.google.com/forum/#!msg/virtualmin-announce/hCCtMJfvhTI/_JOodz2BDQAJ) бэкдор (CVE-2019-15107 (https://security-tracker.debian.org/tracker/CVE-2019-15107)), обнаруженный в официальных сборках проекта, распространяемых (https://sourceforge.net/projects/webadmin/files/webmin/) через Sourceforge и рекомендованных (http://webmin.com/download.html) на основном сайте. Бэкдор присутствовал в сборках с 1.882 по 1.921 включительно (в git-репозитории код с бэкдором отсутствовал) и позволял удалённо без прохождения аутентификации выполнить произвольные shell-команды в системе с правами root.

Для атаки достаточно наличия открытого сетевого порта с Webmin и активности в web-интерфейсе функции смены устаревшего пароля (по умолчанию включена в сборках 1.890, но в остальных версиях выключена). Проблема устранена (http://webmin.com/security.html) в обновлении (https://groups.google.com/forum/#!msg/virtualmin-announce/hCCtMJfvhTI/_JOodz2BDQAJ) 1.930. В качестве временной меры для блокирования бэкдора достаточно убрать настройку "passwd_mode=" из файла конфигурации /etc/webmin/miniserv.conf. Для тестирования подготовлен прототип эксплоита (https://pentest.com.tr/exploits/DEFCON-Webmin-1920-Unauthenticated-Remote-Command-Execution.html).

Проблема была обнаружена (https://blog.firosolutions.com/exploits/webmin/) в скрипте password_change.cgi, в котором для проверки введённого в web-форме старого пароля используется (https://github.com/webmin/webmin/blob/e89ffcfa6961274e00e7565217fb98fa28596cd7/password_change.cgi#L163) функция unix_crypt, которой передаётся полученный от пользователя пароль без выполнения экранирования спецсимволов. В git-репозитории данная функция является (https://github.com/webmin/webmin/blob/1e2545b06e3ab875bb5e1edfbe01d8ae6f58af23/web-lib-funcs.pl#L10118) обвязкой над модулем Crypt::UnixCrypt и не представляет опасности, но в поставляемом на сайте Sourceforge архиве с кодом вызывается код, который напрямую обращается к /etc/shadow, но делает это при помощи shell-конструкции. Для атаки достаточно указать в поле со старым паролем символ "|" и следующий после него код будет выполнен с правами root на сервере.

По заявлению (https://www.reddit.com/r/netsec/comments/crk77z/0day_remote_code_execution_for_webmin/excgwnt/) разработчиков Webmin, вредоносный код был подставлен в результате компрометации инфраструктуры проекта. Подробности пока не сообщаются, поэтому не ясно, ограничился ли взлом захватом управления над учётной записью в Sourceforge или затронул и другие элементы инфраструктуры разработки и сборки Webmin. Вредоносный код присутствовал в архивах с марта 2018 года. Проблема также затронула сборки Usermin (https://sourceforge.net/projects/webadmin/files/usermin/). В настоящее время все загрузочные архивы пересобраны из Git.

19.08.2019

http://www.opennet.ru/opennews/art.shtml?num=51315​