Почему сайт «упал»
Вирус дописал свой код в файлы ядра WordPress. После очередного обновления PHP или самого WordPress этот код стал несовместим, и сайт перестал загружаться. Это частый случай: многие узнают о заражении именно по поломке, а не по спаму. Вредоносный код пишут небрежно, и он ломается при любом изменении окружения.
Что нашли
- изменённые файлы ядра — восстановили оригинальные файлы той же версии WordPress, сайт снова открылся;
- три чужих администратора с адресами, не имеющими отношения к гостинице;
- признаки вируса семейства WP-VCD. Он распространяется именно через «нулленные» — взломанные и выложенные бесплатно — платные темы и плагины;
- после восстановления ядра в теме обнаружилась отправка заголовков из
functions.php— нетипичное для темы поведение, которое потребовало отдельной проверки файлов темы.
Что сделали и что рекомендовали
- Восстановили ядро WordPress и проверили контрольные суммы.
- Удалили чужих администраторов после подтверждения владельца.
- Скрыли вывод ошибок PHP для посетителей: сообщения с путями на сервере помогают злоумышленникам.
- Проверили все PHP-файлы темы на вызовы выполнения кода, внешние запросы и редиректы.
- Рекомендовали заменить тему на лицензионную копию из официального магазина — с обновлениями и без сюрпризов.
- Сменить все пароли: администраторов, FTP, панели хостинга и базы данных.
// wp-config.php — не показывать ошибки посетителям
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
Как понять, что тема или плагин пиратские
- вы скачали платный продукт бесплатно не с сайта разработчика;
- тема не обновляется через админку, хотя у разработчика давно новая версия;
- в файлах есть зашифрованные куски кода,
eval,base64_decode, обращения к посторонним доменам — подробнее в статье «eval(base64_decode) в коде сайта»; - в
wp-includesпоявились файлы вродеwp-vcd.phpилиwp-tmp.php; - в меню лицензии стоит ключ из одинаковых символов или «активировано» без ввода ключа.
Частые вопросы
Можно вычистить пиратскую тему и оставить её?
Технически да, но вы останетесь без обновлений безопасности, а следующая «чистая» версия с того же сайта снова будет с бэкдором. Лицензия почти всегда дешевле повторной чистки.
Почему сайт сломался, а не просто показывал спам?
Вредоносный код пишут без расчёта на обновления. При смене версии PHP или WordPress он вызывает фатальную ошибку. Если сайт внезапно «упал» без ваших изменений — проверьте его на заражение.
Заражены ли соседние сайты на хостинге?
Если сайты на одном аккаунте хостинга, то вероятно да: WP-VCD как раз ищет соседние установки WordPress и заражает их. Проверять нужно все сайты аккаунта.