Массовый взлом сайтов на MODx Evo

В последние три недели мы наблюдаем массовый взлом сайтов, работающих на CMS MODx Evolution. Взламывают различные версии, в том числе и самые актуальные.

Мы провели анализ логов проактивной защиты, которая устанавливается на сайты наших клиентов, и обнаружили, что причиной является уязвимость в компоненте assets/snippets/ajaxSearch/classes/ajaxSearchConfig.class.inc.php.

Из-за отсутствия надлежащей фильтрации значения параметра ucfg (передача пользовательской конфигурации), становится возможна инъекция бэкдора с помощью POST запроса. Бэкдор сохраняется в базе данных и позволяет далее проводить успешные атаки на сайт: загрузку веб-шеллов, манипуляцию с файлами и базой данных, дефейс и пр. Из-за того что код сохраняется в базе данных, он не обнаруживается сканерами файлов на хостинге и, даже в случае успешного удаления всех загруженных шеллов, у хакера все равно остается “лазейка”, через которую он повторно загружает вредоносные скрипты. 

Пример одной из атак, после которой происходит внедрение бэкдора и вредоносного загрузчика в базу данных сайта. В логах веб-сервера это будет выглядеть как обычный POST запрос к файлу index-ajax.php. Но наша система мониторинга позволяет заглянуть внутрь запроса:

modx

Атаки идут с арендованных VPS серверов. Бот выполняет POST запрос, загружает на сайт скрипт-uploader (раскодированный фрагмент ниже), а через некоторое время использует его для размещения вредоносных скриптов на сайте.

modx

Две с половиной недели назад был выпущен патч для закрытия этой уязвимости, который можно посмотреть на https://github.com/extras-evolution/security-fix/commit/46ba72adca41d24cfda84e62d6b8104e6bf6ed68#diff-34653dc55960eacc1d868072757b9b4a

modx

Также наши системы мониторинга фиксируют постоянные атаки на MODx сайты через другой популярный скрипт, который уже доставил много хлопот и владельцам других CMS, так как он часто используется в различных плагинах галерей. Он является частью evogallery и содержит уязвимость, позволяющую загрузить произвольный файл (в том числе и хакерский шелл).

modx

Если вы используете на сайте модуль галереи с uploadify и функцию ajax поиска, то рекомендуем оперативно установить патчи. Если не используете – удалите uploadify.php и переименуйте скрипт index-ajax.php.

Кроме того, обязательно проверьте свой сайт свежей версией сканера AI-BOLIT, чтобы убедиться, что на сайте отсутствуют вредоносные скрипты. Также им можно проверить дамп базы данных.

Если для вашего проекта важна безопасность в долгосрочной перспективе, мы рекомендуем обратиться к специалистам, чтобы установить на сайт проактивную защиту и выполнить “цементирование” сайта, которое закроет не какую-то одну конкретную уязвимость, а полностью исключит возможность успешного проведения веб-атак на ваш сайт.