Статья A.S Groups

Восстановление взломанного WordPress: очистка сайта и устранение причины

Диагностика и восстановление взломанного WordPress после заражения вредоносным кодом

Навигация по статье

Услуги A.S Groups

Нужен сайт, магазин или автоматизация?

Помогаю бизнесу запускать и дорабатывать WordPress-проекты: от посадочной страницы до WooCommerce, CRM и Telegram-уведомлений.

Обсудить проект Telegram
WordPress под ключ Лендинги, корпоративные сайты и структура под заявки. WooCommerce Интернет-магазины, каталог, оплата, доставка и интеграции. Доработка сайта Правки, скорость, формы, баги и развитие текущего проекта. CRM / Telegram / AI Автоматизация заявок, уведомлений и ручных процессов.

Если WordPress взломали, задача состоит не только в том, чтобы убрать видимый вредоносный файл. Нужно понять, как злоумышленник получил доступ, найти все точки закрепления и вернуть сайт в работу так, чтобы заражение не появилось снова через несколько часов или дней.

Этот материал для владельцев сайтов и интернет-магазинов, которые заметили редиректы, неизвестных администраторов, спам-страницы, изменённые файлы, предупреждения хостинга или поисковых систем. Ниже — безопасная последовательность диагностики и восстановления без советов «удалите всё и начните заново».

Сначала сохранить состояние, потом чистить

Перед удалением подозрительных файлов полезно сделать отдельную копию файлов и базы. Она нужна не для восстановления заражённой версии, а чтобы не потерять следы: время изменения файлов, неизвестные плагины, пользователей, cron-задачи и фрагменты кода, по которым можно понять путь проникновения.

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

Почему простая переустановка WordPress не решает проблему

WordPress core можно заменить чистой копией, но вредоносный код часто находится не только там. Точки закрепления могут быть в uploads, mu-plugins, обычных плагинах, теме, базе данных, cron, дополнительных администраторах или серверных файлах вне web root.

Поэтому восстановление строится от доверенных источников: core сравнивается с официальными checksum, плагины и темы — с оригинальными пакетами, а пользовательские файлы проверяются отдельно.

Проверка WordPress core через WP-CLI

WP-CLI поддерживает проверку файлов ядра по официальным checksum. Команда помогает быстро увидеть изменённые или лишние файлы в core:

wp core verify-checksums

Для плагинов из WordPress.org можно использовать отдельную проверку checksum. Но отсутствие совпадения не всегда означает вирус: кастомные или коммерческие плагины могут не иметь публичных checksum, поэтому их нужно сравнивать с доверенным дистрибутивом.

Где искать закрепление злоумышленника

  • неизвестные файлы PHP в uploads и временных каталогах;
  • изменения в wp-config.php, index.php и серверных конфигурациях;
  • неизвестные mu-plugins и обычные плагины;
  • новые пользователи с ролью administrator;
  • подозрительные cron-задачи;
  • инъекции JavaScript и iframe в базе или шаблонах;
  • файлы с недавним временем изменения, не связанным с обновлением.

Искать только по словам вроде eval или base64 недостаточно: они встречаются и в легитимном коде. Нужна проверка контекста, происхождения файла и поведения кода.

Архитектура безопасного восстановления

  1. ИзоляцияОстановить активное заражение и сохранить копию
  2. ПроверкаСравнить core, плагины, тему и пользователей
  3. ОчисткаУдалить вредоносный код и точки закрепления
  4. ОбновлениеЗакрыть уязвимые компоненты и доступы
  5. КонтрольПроверить сайт, логи и повторные изменения

Главный принцип: сначала устранить источник компрометации, а уже затем считать сайт восстановленным.

Пароли и ключи нужно менять после очистки

Если есть вероятность утечки доступа, после восстановления меняют пароли WordPress, хостинга, SFTP/SSH, базы данных и связанные API-ключи. WordPress security salts также стоит обновить, чтобы завершить старые авторизованные сессии.

Новые секреты нельзя хранить в публичном репозитории или пересылать в открытом виде. Для административных аккаунтов полезно включить двухфакторную аутентификацию и убрать пользователей, которым доступ больше не нужен.

Плагины и темы — частая точка входа

После очистки необходимо обновить WordPress, плагины и темы до поддерживаемых версий. Неиспользуемые компоненты лучше удалить, а не просто отключить. Если плагин заброшен или имеет известную проблему безопасности без исправления, его нужно заменить.

Кастомные изменения нельзя хранить внутри файлов стороннего плагина или родительской темы: обновление сотрёт их, а отказ от обновлений ради сохранения правок повышает риск. Для таких задач лучше использовать child theme или отдельный плагин. Если требуется аккуратно переработать существующий код, подходит услуга доработки WordPress.

Что проверить в базе данных

В базе стоит проверить пользователей, options, содержимое записей и виджетов, а также неизвестные autoload-настройки. Вредоносные скрипты могут храниться не в файлах, а в HTML контента или настройках темы.

Удалять записи по случайному совпадению строки опасно. Сначала нужно понять, какой плагин или функция создали значение, и только потом менять данные с резервной копией.

Когда нужен разработчик, а не автоматический сканер

Сканер полезен как один из источников сигналов, но он не знает архитектуру конкретного проекта. На сайте с кастомными интеграциями, WooCommerce, API и нестандартными плагинами автоматическое удаление может повредить рабочий код или пропустить вторую точку закрепления.

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

Чек-лист перед возвратом сайта в работу

  • Сохранена отдельная копия заражённого состояния для анализа
  • WordPress core проверен по официальным checksum
  • Плагины и темы заменены или сверены с доверенными пакетами
  • Проверены администраторы, cron и mu-plugins
  • Обновлены WordPress, плагины и темы
  • Сменены скомпрометированные пароли, ключи и salts
  • Проверены формы, checkout, cron, почта и внешние интеграции
  • После запуска контролируются логи и новые изменения файлов

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

Можно ли просто восстановить вчерашний backup?

Можно только если известно, что копия сделана до взлома и причина проникновения уже устранена. Иначе уязвимость или закладка вернётся вместе с сайтом.

Нужно ли удалять WordPress полностью?

Не обязательно. Core можно заменить чистыми файлами, но пользовательский контент, плагины, тему и базу всё равно нужно проверять отдельно.

Антивирус хостинга нашёл один файл. Этого достаточно?

Нет гарантии. Один найденный файл может быть лишь частью цепочки. Нужно проверить способ проникновения и другие точки закрепления.

Можно ли доверять дате изменения файла?

Это полезный сигнал, но не доказательство. Даты меняются при обновлениях и могут быть изменены злоумышленником.

Нужно ли менять все пароли?

Если нельзя исключить компрометацию, меняют доступы WordPress, хостинга, SFTP/SSH и связанные секреты после очистки.

Как понять, что сайт действительно очищен?

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

Официальные источники

Если сайт уже показывает признаки взлома, лучше не экспериментировать на production. Можно прислать адрес сайта и описание симптомов, чтобы определить безопасный порядок диагностики.

Следующий шаг

Нужно решить похожую задачу?

Предложить диагностику и восстановление WordPress с проверкой причины заражения, файлов, базы, пользователей и обновлений.

Обсудить задачу

Источники

Обсуждение

Вопросы и комментарии

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

Оставить комментарий

Email не публикуется. Ссылки и HTML в тексте удаляются.

Мы используем приватную аналитику SlimStat, чтобы понимать, какие страницы полезны посетителям, и улучшать сайт. IP-адреса анонимизируются и хэшируются. Вы можете согласиться или отказаться от аналитики.
Cookies и конфиденциальность

Используем необходимые cookies, аналитику и данные форм, чтобы сайт работал корректно и заявки доходили.