WordPress-бэкдор SC: восемь точек восстановления и канал через блокчейн

Sucuri описала заражение WordPress, в котором злоумышленники разложили полезную нагрузку сразу по восьми местам — в файлах, базе данных и разделяемой памяти. Каждая копия умеет восстанавливать остальные, поэтому удаление одного файла или плагина ничего не решает: бэкдор возвращается при следующем же обращении к сайту.

Бэкдор получил имя SC — по маркерам «SC_» во внедрённом коде. Исследователь Sucuri Габриэль Барбоза называет его «самовосстанавливающейся сеткой» с управлением через блокчейн.

Восемь компонентов и круговое восстановление

Полезная нагрузка распределена так:

  • .user.ini — задаёт auto_prepend_file, чтобы запускать загрузчик перед каждым PHP-запросом в дереве каталогов;
  • wp-content/c1b12371.php — загрузчик, подключающий скрытый файл с точкой в имени, если тот есть рядом;
  • wp-content/.c1b12371.php — скрытый файл первой стадии: находит поддельный плагин и пересобирает его в mu-plugins из трёх источников — существующей копии в каталоге плагинов, закодированной заглушки в каталоге кэша и ZIP-архива восстановления со случайным hex-именем;
  • wp-content/db.php — загружается при бутстрапе и несёт всю полезную нагрузку в сжатом виде в Base64; декодирует и разворачивает плагин, когда тот отсутствует или слишком мал;
  • wp-content/advanced-cache.php — подключается WordPress до обычных плагинов при включённом кэшировании и собирает плагин из пяти независимых источников: существующего mu-plugin, копии плагина, сегмента разделяемой памяти System V с PHP, ZIP-архива и базы данных; затем цепляется за plugins_loaded и подключает его;
  • wp-content/themes/khorshidi/functions.php — «близнец» db.php в теме с тем же бэкдором, перезаписывающий плагин всякий раз, когда его нет;
  • wp-content/mu-plugins/hyper-engine-kit.php — собственно вредонос, установленный и как must-use плагин, и как обычный;
  • wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php — дубликат той же нагрузки для надёжности.

«Удалите плагин — drop-in перезапишет его. Удалите drop-in — перезапишет тема. Очистите все файлы на диске — при следующей загрузке страницы весь набор восстановится из базы данных или из сегмента разделяемой памяти. Получается круглая система, из которой нельзя вынуть одну деталь, чтобы её остановить», — объясняет Барбоза.

Читаемых имён функций в коде нет: декодер разбирает его подстановочным шифром.

Что умеет бэкдор и как живёт в памяти

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

Оператор получает контроль над сайтом, может подгружать произвольный JavaScript и подменять его посетителям (скиммеры и другое вредоносное содержимое), исполнять PHP-код и отключать или удалять отдельные плагины.

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

Заражение регистрирует хуки cron, в том числе со случайными именами наряду с известным хуком загрузки. Системный cron запускает файл WordPress-cron, а не трафик посетителей, и по расписанию запускает повторное развёртывание.

Как именно вредонос попал на сайт, пока неизвестно. Среди типичных путей первичного доступа Sucuri перечисляет известные уязвимости самого WordPress, плагинов и тем, слабые учётные данные, атаки на цепочку поставок популярных плагинов и эксплуатацию небезопасной загрузки медиа или форм для записи PHP-веб-шеллов в каталоги сервера.

«SC — напоминание, что современное заражение WordPress может быть системой, а не файлом. Этот набор распространяет одинаковые копии одного бэкдора по drop-in, теме, поддельному плагину в двух местах, базе данных и разделяемой памяти, прячет командный канал внутри легитимной блокчейн-инфраструктуры и перезаписывает себя из любой уцелевшей копии при следующем же запросе», — резюмирует Sucuri.

wpForo: SQL-инъекция без аутентификации под эксплуатацией

Отдельно сообщается об активной эксплуатации SQL-инъекции высокой опасности в плагине форума wpForo для WordPress — CVE-2026-1581, оценка CVSS 7.5. Уязвимость затрагивает все версии плагина вплоть до 2.4.14 включительно.

По телеметрии Previdian, с 3 июля 2026 года зафиксировано менее 20 попыток эксплуатации. Активность шла с пяти уникальных IP-адресов атакующих из Болгарии, Швейцарии, Франции, США и Йемена.

Что делать администратору

Самовосстанавливающийся бэкдор означает, что обычная чистка файлов не работает: пока цела хотя бы одна копия — в drop-in, теме, базе или сегменте разделяемой памяти, — набор соберётся заново. Проверять нужно все восемь перечисленных мест, включая advanced-cache.php и db.php, которые не видны в списке плагинов, и содержимое общего сегмента памяти System V. Отдельно стоит просмотреть список администраторов на скрытые учётные записи и задания cron с незнакомыми именами.

Для wpForo критично обновление: все версии до 2.4.14 включительно уязвимы, и попытки эксплуатации уже идут. Уязвимость не требует аутентификации, поэтому закрывать её фильтрацией запросов на входе менее надёжно, чем поставить исправленную версию.

Частые вопросы

Кого касается бэкдор SC?

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

Почему удаление плагина не помогает?

Потому что полезная нагрузка лежит минимум в восьми местах и каждая копия умеет восстанавливать остальные. Удалили плагин — его перезапишет drop-in; удалили drop-in — перезапишет тема; почистили файлы — набор вернётся из базы или из разделяемой памяти.

Где именно искать следы заражения?

В .user.ini, в wp-content/c1b12371.php и скрытом wp-content/.c1b12371.php, в wp-content/db.php, в wp-content/advanced-cache.php, в wp-content/themes/khorshidi/functions.php, а также в wp-content/mu-plugins/hyper-engine-kit.php и wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php.

Что такое разделяемая память System V и почему она важна?

Это сегмент в оперативной памяти с фиксированным числовым ключом, куда SC записывает нагрузку на поддерживающих её серверах. Сегмент переживает удаление файлов и чистку базы, а на общем хостинге может принадлежать другой учётной записи.

Как бэкдор управляется?

Через командный сервер, спрятанный в блокчейне Ethereum. Это затрудняет блокировку по домену или IP: команды приходят через легитимную блокчейн-инфраструктуру.

Зачем бэкдору скрытая учётная запись администратора?

Чтобы у оператора оставался доступ к сайту даже после смены паролей и удаления вредоносных файлов. Поэтому список администраторов нужно проверять отдельно от чистки файлов.

Что известно про wpForo?

Это SQL-инъекция без аутентификации, CVE-2026-1581, CVSS 7.5. Уязвимы все версии плагина до 2.4.14 включительно, эксплуатация идёт с 3 июля 2026 года — зафиксировано менее 20 попыток с пяти IP-адресов.

Как понять, что сайт заражён?

Прямых признаков в разборе не приводится. Косвенно на это указывают посторонний JavaScript у посетителей, незнакомые задания cron и учётные записи администраторов, а также файлы из перечисленного списка. Похожие случаи разбирались в материалах про критические уязвимости в плагинах и темах WordPress и про RCE через PNG с PostScript внутри.

Источник: thehackernews.com