Критическое обновление ISPManager4 4.4.10.25
Несколько дней назад вышло критическое обновление для ISPManager4, вариантов Lite и Pro. Новая ревизия имеет версию 4.4.10.25, ее выпуск обусловлен наличием серьезной ошибки в алгоритме работы ISPManager с локальными пользователями.
Официальное объявление данной версии не дает представление о проблеме:
4.4.10.25 — 18.08.2015
forum.ispsystem.com, http://forum.ispsystem.com/ru/showthread.php?t=28944
bugfix Исправлена проблема безопасности. Подробнее в документации: параметр DenyAuthUIDRanges. Рекомендуем вам обновиться до этой версии
Вместе с тем, ряд наших партнеров и коллег поделились информацией, полученной в ходе расследования успешных эксплуатаций данной уязвимости. Это позволяет предположить примерный алгоритм действия взломщика.
С помощью механизма pingback в CMS (например, в WordPress) создается ложный вызов в адрес локальной панели ISPManager со специально сформированным URL. Данный URL использует функции API панели ISPManager4 для смены пароля пользователя.
Пример из лог-файла ISPManager4:
1 2 3 4 |
Aug 20 17:01:11 [ 5308:1469] INFO Request [IP.ADD.RE.SS][apache] 'sok=ok&elid=www%2Ddata&func=usrparam&confirm=*&passwd=*&name=www%2Ddata&out=json' Aug 20 17:01:14 [ 5308:1471] INFO Request [IP.ADD.RE.SS][apache] 'sok=ok&elid=nginx&func=usrparam&confirm=*&passwd=*&name=nginx&out=json' Aug 20 17:01:16 [ 5308:1473] INFO Request [IP.ADD.RE.SS][apache] 'sok=ok&elid=www&func=usrparam&confirm=*&passwd=*&name=www&out=json' Aug 20 17:01:19 [ 5308:1475] INFO Request [IP.ADD.RE.SS][apache] 'sok=ok&elid=apache&func=usrparam&confirm=*&passwd=*&name=apache&out=json' |
IP.ADD.RE.SS — это адрес узла, на который идет атака. Видно, что производится перебор «стандартных» имен пользователей, от которых может производится работа компонентов вэбсервера — для этих пользователей производится попытка смены пароля.
С точки зрения вэбсервера запрос выглядит так:
1 |
domain.tld "GET /manager/ispmgr?out=json&name=user&passwd=XXXXXXXXXX&confirm=XXXXXXXXXX&func=usrparam&elid=user&sok=ok HTTP/1.0" 200 35 "-" "WordPress/3.8.9; http://www.domain.tld; verifying pingback from IP" |
Наше предположение об ошибке — ниже. Как известно, ISPManager4 обычно запускается как модуль Apache — это видно в include-файле:
1 2 |
# head -1 /usr/local/ispmgr/etc/ispmgr.inc LoadModule ispmgr_module /usr/local/ispmgr/lib/apache/mod_ispmgr.so |
Данный модуль является обработчиком URL вида IP.ADD.RE.SS/manager/, причем пользователем с точки зрения панели будет тот uid, от которого запущен apache (apache, www, www-data — в зависимости от операционной системы). Видимо, при запросе на смену пароля ISPManager4 не производит дополнительных проверок и позволяет установить этому системному пользователю пароль.
Далее все зависит от фантазии злоумышленника — получен доступ к системе, можно использовать ssh, использовать другие уязвимости для получения root-доступа и так далее.
Если вы используете ISPManager4 Lite или Pro, мы рекомендуем незамедлительно обновить панель управления и проверить систему на возможные следы взлома. Обратите внимание на «лишних» пользователей в панели управления, аномальное поведение ОС и, конечно, проверьте актуальность версий WordPress и других CMS.