Атакующие ставят бэкдоры на сайты WordPress через ключи UpdraftCentral

Атакующие ставят бэкдоры на сайты WordPress через ключи UpdraftCentral

Первые установки плагинов со скрытой точкой входа зафиксированы 18 октября в 15:32, последняя - 19 октября в 09:23. Кампания шла непрерывно: злоумышленник с действующими ключами панели удалённого управления UpdraftCentral ставил на сайты WordPress плагины с бэкдором. Исправления от производителя нет, установка свежего обновления проблему не снимает.

Описание

Атаку обнаружила компания Nethemba на собственных серверах: её сайты начали отвечать ошибкой сервера на каждый запрос, о чём аналитики сообщили в разборе. Причиной стал сбой в коде самого бэкдора - он срабатывал раньше проверки секретного параметра. Все объяснения на стороне сайта отпали: файлы плагинов совпадали с официальным выпуском побайтово, отпечатки ключей не менялись днями, чужих администраторов и загрузок плагинов в журналах не было. Источником запросов оказалась не инфраструктура производителя, а сервер атакующего: настоящий трафик панели представляется библиотекой и адресом сервиса. Картина указывает на утечку ключей из облачной среды UpdraftCentral. Компания TeamUpdraft причину на момент публикации не объяснила.

Речь не об уязвимости в UpdraftPlus. Команды корректно зашифрованы и подписаны настоящими ключами панели, поэтому все проверки плагина проходят: для сайта указание выглядит законным. Свежие выпуски 1.26.11 и 2.26.11.26 затронуты ровно так же, как старые. UpdraftPlus - самый распространённый плагин резервного копирования для WordPress, свыше четырёх миллионов активных установок. UpdraftCentral - отдельный сервис удалённого управления того же производителя, его клиент входит в каждую копию UpdraftPlus, бесплатную и платную. Клиент молчит, пока у сайта нет ключа.

Как устроен канал управления

Подключение создаёт на сайте пару ключей и сохраняет открытый ключ панели. Дальше сайт исполняет любую команду, подписанную закрытым ключом панели, с правами пользователя, который создал подключение. Каждую отдельную команду никто не подтверждает. Закрытые ключи панели на подключённых сайтах не хранятся, они живут в облачном сервисе UpdraftCentral. Защита всех сайтов держится на одном допущении: ключи остаются там.

Ключ появляется двумя путями. Первый - подключение к панели UpdraftCentral. Второй - привязка аккаунта TeamUpdraft.com, и она срабатывает по умолчанию. На экране привязки есть флажок о добавлении сайта в UpdraftCentral, причём отмечен он заранее. Достаточно не снять его и успешно войти в аккаунт, чтобы сайт получил ключ. Флажок показывается только площадкам без ключа, поэтому одного входа хватает, чтобы подключить сайт, который удалённым управлением никогда не пользовался. Ключи не истекают: выданные в ноябре 2025 года работали в октябре 2026-го.

Что делает злоумышленник

Он отправляет подписанную команду на загрузку плагина по каналу удалённых вызовов плагина, который принимает обычные POST-запросы. WordPress ставит и активирует присланный плагин штатным установщиком. Каждый такой плагин - бэкдор. Он цепляется к WordPress на каждом запросе и ждёт в адресе страницы секретный параметр с 32-символьным токеном. Получив токен, плагин создаёт учётную запись с зашитым паролем, выдаёт ей роль редактора, а затем отдельно добавляет права на управление настройками и установку плагинов. Посетителя он сразу авторизует постоянным куки-файлом и перенаправляет в панель управления сайтом.

Две детали делают схему рабочей. Учётная запись видна как редактор, поэтому проверка списка администраторов её пропускает; при этом право установки плагинов даёт исполнение любого кода, а право на управление настройками позволяет поднять себя до полного администратора. Вход происходит установкой куки-файла, а не через форму, поэтому двухфакторная аутентификация, ограничение попыток входа и плагины защиты входа не срабатывают. Аккаунт переживает удаление плагина, и пароль от него остаётся у злоумышленника.

В проанализированных образцах есть ошибка в коде, которая вызывает фатальный сбой до проверки токена. Заражённые сайты отвечали ошибкой сервера на каждый запрос без кеша, и первые жертвы замечали проблему за минуты. Чинить такой плагин нельзя: исправление ошибки включает бэкдор.

Телеметрия Patchstack записала установки на широком наборе сайтов в промежутке с 15:32 18 октября до 09:23 19 октября. Часть установок не активировалась - у владельца ключа не было прав на активацию плагинов. Такие сайты всё равно получили бэкдор и считаются затронутыми. Работали два источника одновременно, адрес IPv6 появился примерно на три часа раньше IPv4. Инфраструктуру меняли в течение одного дня, поэтому блокировка адресов защитой здесь не служит. Всего отмечено 99 разных названий плагинов. Одно, "Site Health Cache", повторяется чаще других; остальные - случайные сочетания из двух или трёх слов, почти каждое встречается один раз. Надёжнее искать по описанию: у всех образцов совпадает строка о небольшом наборе инструментов обслуживания, который поддерживает порядок в хранилище настроек. Имена учётных записей строятся из двух слов и двух цифр.

Что делать владельцам сайтов

Сначала проверяют, есть ли у сайта ключ UpdraftCentral. Любой результат означает, что площадка открыта для атаки. Проверять нужно и тем, кто сервисом не пользовался: из-за заранее отмеченного флажка ключ есть у многих, кто держал UpdraftPlus только для резервных копий. Затем ключи удаляют - в настройках плагина или одной командой в консоли WordPress. Удаление сайта из панели UpdraftCentral не помогает: важный ключ хранится на самом сайте. Резервное копирование после удаления продолжает работать, отключается только удалённое управление. Повторно подключаться не стоит, пока производитель не объяснит причину. Если удалённое управление нужно, ключ создают под учётной записью без права установки плагинов: на одном из публично разобранных сайтов именно это остановило атаку.

Найденный бэкдор требует другого порядка действий. Сначала удаляют ключ, иначе злоумышленник пришлёт исправленную замену. Плагин деактивируют и выносят за пределы веб-корня, а не удаляют через панель: его процедура удаления стирает собственные следы. Дальше убирают лишнюю запись в базе и созданную учётную запись. Если аккаунт существует или параметр активации виден в журнале обращений, сайт считают полностью скомпрометированным. Тогда нужны восстановление из копии до атаки, сверка файлов с чистой установкой, проверка всех пользователей с расширенными правами, смена паролей администратора и облачного аккаунта, завершение всех сессий и двухфакторная аутентификация.

Нынешняя кампания - второй случай в этом канале за пять месяцев. В июне 2026 года производитель закрыл уязвимость CVE-2026-10795 с оценкой 8.1 по CVSS: устаревший формат сообщений без подписи позволял подделывать команды UpdraftCentral вообще без ключей. Исправление вышло в версиях 1.26.5 и 2.26.5, но попытки эксплуатации продолжаются. Сайты ниже этих версий сталкиваются с обеими проблемами сразу. Patchstack закрывает три пути: подделку команд, сам канал удалённого управления и срабатывание бэкдора. У затронутых панелей сайты показываются как недоступные, а резервные копии по расписанию идут дальше.

Индикаторы компрометации

Комментарии: 0