Хакеры использовали профили Steam для скрытого управления почти 2 тыс. сайтов на WordPress

2 июня, 2026, 16:00

Почти 2 тыс. сайтов на WordPress заражены вредоносным ПО, которое получает команды из комментариев в профилях Steam с помощью невидимых символов Unicode. Вредоносная программа внедряет JavaScript на страницы сайтов и устанавливает бэкдор для удалённого изменения файлов тем и плагинов. Около половины российского рынка CMS приходится на WordPress.

Сайт компании WordPress // wordpress.com
Сайт компании WordPress // wordpress.com

Почти 2 тыс. сайтов на WordPress пострадали от вредоносной кампании, выявленной специалистами GoDaddy Security. Как сообщает издание Bleeping Computer со ссылкой на исследователей, первое обнаружение активности датируется июлем 2025 года. Злоумышленник применяет невидимые символы Юникода для кодирования полезной нагрузки, формирующей URL к вредоносному скрипту. Использование платформы Steam от Valve позволяет избежать необходимости поддерживать собственную C2-инфраструктуру и обходить традиционные методы обнаружения.

По данным на 2025 год, WordPress остается самой востребованной CMS в России. Её доля, по разным оценкам, составляет 46% до 56%.

С момента первого обнаружения кампании в июле 2025 года вредоносное ПО было найдено примерно на 1,9 тыс. сайтах WordPress. Способ взлома сайтов остается неясным, однако исследователи полагают, что векторами заражения могут быть кража учетных данных администратора, скомпрометированные FTP/SFTP-логины, эксплуатация уязвимостей тем или плагинов WordPress, а также атака на цепочку поставок.

Продолжение ниже

Внедренное на сайт вредоносное ПО первого уровня использует загрузки страниц WordPress для обращения к определённым профилям Steam и извлечения текста из комментариев. Текст включает скрытые символы Юникода, которые содержат вредоносную нагрузку, иногда замаскированную под ASCII-арт.

Как сообщили в GoDaddy, злоумышленник использует шесть невидимых символов Юникода для закодированной нагрузки: U+200C, U+200D, U+2061, U+2062, U+2063, U+2064. Декодер игнорирует все видимые символы, сопоставляет невидимые с числами, преобразует их в двоичное представление и восстанавливает байты из двоичного потока. Это кодирование позволяет встраивать двоичные данные в обычный текст: видимые символы служат маскировкой, невидимые несут полезную нагрузку.

Декодированная нагрузка используется для формирования URL hello-mywordl[.]info, который обслуживает JavaScript-код, внедряемый на каждую фронтенд-страницу WordPress. Судя по именам файлов (например, asahi-jquery-min-bundle и lodash.core.min.js), вредоносное ПО маскируется под легитимные JavaScript-библиотеки.

Финальная стадия атаки — внедрение бэкдора, реагирующего на специально сформированные POST-запросы с определенным cookie аутентификации. Как отмечается в сообщении, при наличии cookie «tEcaKKXEsb» бэкдор принимает PHP-код в кодировке base64 через POST-параметр.

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

В качестве мер защиты владельцам сайтов рекомендуется проверить наличие ссылок на URL-адреса сообщества Steam, подозрительных вставок внешнего JavaScript, исходящих соединений к Steam, а также неожиданных скриптов, загружаемых с доменов типа hello-mywordl[.]info. Другие индикаторы включают невидимые символы Юникода, подозрительные записи кэша transient_caption, отключённую проверку SSL в cURL-запросах и POST-запросы с cookie вредоносного ПО или параметром new_code.

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