Сайты на WordPress под угрозой: вирус wp-zexit
Многие сайты, работающие на CMS WordPress, подверглись атаке, которая началась в 2023 году. Разбираемся, что это за атака, у кого она может возникнуть и что с ней делать.
Кто под угрозой
В основном, атаке подверглись сайты, работающие на CMS WordPress с установленной темой Newspaper. Уязвимость может быть и у других тем оформления, особенно, на которых давно не было обновлений.
В чем проявляется атака
На атакованных сайтах могут возникать одна или несколько из перечисленных проблем:
- Не получается войти в админку: белый экран вместо страницы логина.
- Антивирусы начинают видеть на сайте угрозу, сайт попадает в вирусные базы.
- Перестает работать RSS. Вместо ленты (feed) может быть всё тот же “белый экран смерти wordpress”.
- Начинает показываться посторонняя реклама и кликандеры, возможно, перенаправление с сайта на сторонние ресурсы (скорее всего с вирусами).
Как обнаружить
Чаще всего на сайте появляется плагин wp-zexit или wp-swamp. Но могут быть и одноименные файлы или zip-архивы. Проще всего воспользоваться поиском по файлам на хостинге: если есть файлы или папки с именем zexit – значит ваш ресурс был атакован.
Как исправить
Есть несколько способов исправления проблемы. Самый кардинальный описан на Реддите.
Способ с Reddit
Удалите тему и связанные с ней плагины, больше никогда не используйте эту тему.
Но ваша установка wordpress тоже теперь скомпрометирована. Файл wp-blog-header.php скомпрометирован.
Что я сделал:
- отключил тему newspaper и удалил папку. Отключите td composer и все плагины, связанные с темой newspaper. Удалите все.
- Зайдите в wp-content/plugins и найдите wp-zexit или wp-swamp… удалите папки.
- Установим свежий wordpress… создадим резервную копию папки wp-content, чтобы не потерять загруженные файлы и т.д… создадим резервную копию wp-config.php и любого другого файла, который вы считаете важным в папке сайта. Мы удалим папку. Создайте резервную копию базы данных.
- Удалите все файлы из папки сайта.
- Скачайте WordPress с сайта wordpress.org/latest.zip, распакуйте его в папку сайта. Обратите внимание, что при этом будет создана папка wordpress/, и вам необходимо скопировать все файлы в корневую папку
- восстановите резервные копии папок wp-config.php и wp-content.
- Теперь необходимо проверить, не скомпрометирована ли ваша база данных, скорее всего, да
- в базе данных wordpress проверьте в wp_users, есть ли там пользователь, созданный не вами, возможно, с именем “greeceman”. Используйте код командной строки select * from wp_users;
- Удалить пользователя. Если Id пользователя-хакера равен, например, 19, то используйте команду delete from wp_users where ID=19; если вы используете командную строку. Пожалуйста, никогда не используйте SQL-команды без предложения where.
- Проверьте, есть ли что-то в td_live_css_local_storage, используя select option_value from wp_options where option_name = ‘td_live_css_local_storage’; , вероятно, там полно обфусцированного дерьма.
- Очистите его с помощью UPDATE wp_options SET option_value = ” WHERE option_name = ‘td_live_css_local_storage’;
- Вот и все. Теперь вам придется использовать другую тему. Удачи
Исправить средствами хостинга
Некоторые хостеры предоставляют услугу антивируса, либо можно обратиться в техподдержку. Если повезет – вашу проблему могут решить даже без вашего вмешательства.
Также, при наличии бэкапа, можно откатиться до последней рабочей версии.
Если тема лицензионная
Для обладателей лицензии с обновлениями для темы оформления Newspaper всё еще проще: многим пользователям помогает просто обновить версию темы . После обновления тема сама загрузит и установит (или обновит) необходимые плагины.
Если не работает страница входа
Такое может произойти при использовании плагина для изменения адреса страницы входа (например, плагин WPS Hide Login). Для входа в админу понадобится воспользоваться стандартным адресом (wp-admin или wp-login.php), но предварительно нужно переименовать или удалить папку с плагином на хостинге.
Что сделать обязательно
В любом случае, необходимо будет заменить пароль администратора, желательно пароль базы данных и обязательно обновить версию темы оформления.
Обязательно удалить плагин, файлы или архивы с именами wp-zexit или wp-swamp.
Ветка на Reddit: https://www.reddit.com/r/Wordpress/comments/16nlg60/wpzexit/
Также проблема известна как Balada Injector. Подробнее: https://blog.sucuri.net/2023/10/balada-injector-targets-unpatched-tagdiv-plugin-newspaper-theme-wordpress-admins.html