Чистка WordPress от вируса: пошагово — IT-Aegis

Чистка WordPress от вируса: пошагово

Чистка WordPress от вируса: пошагово

WordPress — самая распространённая CMS, и на неё же приходится основная масса автоматических атак. Ломают не конкретный сайт, а всё подряд: робот перебирает адреса и проверяет, нет ли устаревшего модуля из известного списка.

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

Где искать вредоносный код

  • Каталог плагинов — особенно старые формы, слайдеры и SEO-модули.
  • Каталог тем — подмена служебных файлов темы, чаще всего подвала и файла функций.
  • Каталог загрузок — исполняемые файлы среди картинок, которых там быть не должно.
  • База данных — вставки в опубликованных материалах и в виджетах.
  • Служебные файлы в корне — правила перенаправления, изменённые не вами.

Признак и место заражения

Что происходитГде обычно искать
Редирект только с телефонов или из поискаФайлы темы и правила перенаправления в корне
Чужие страницы в выдачеКаталог загрузок, залитые файлы-дорвеи
Реклама на страницах, невидимая под админомБаза: содержимое материалов и виджеты
Заражение возвращается после чисткиБэкдор в плагине или задание планировщика

Базовый порядок действий

  1. Снять копию файлов и базы «как есть» — до любых изменений.
  2. Сменить пароли и служебные ключи безопасности в конфигурации сайта.
  3. Сравнить ядро с чистой версией с официального сайта, лишние файлы удалить.
  4. Отключить все плагины и включать по одному, проверяя поведение сайта.
  5. Поставить стандартную тему для проверки — так видно, в теме ли дело.
  6. Просканировать базу на вставки скриптов и посторонние ссылки.

Чего делать нельзя

  • Удалять файлы без копии. Вместе с заражением исчезнут следы, и причина останется неизвестной.
  • Восстанавливаться из свежего бэкапа вслепую. Если копия сделана после заражения, вы вернёте вредонос обратно.
  • Чистить только видимое. Бэкдор почти всегда не один, и второй сработает через неделю.
  • Оставлять старую версию плагина. Через ту же дыру зайдут повторно, обычно за несколько дней.

Как понять, что чистка удалась

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

Чтобы не повторилось

Регулярные обновления WordPress и модулей, ограничение попыток входа, двухфакторная аутентификация, копии по правилу 3-2-1 и мониторинг изменений файлов. Это скучная часть, но именно она отделяет разовую чистку от ежеквартальной.

Когда нужна профессиональная чистка

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

Сколько занимает чистка

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

Отдельная статья расходов — последствия: снятие меток в браузерах, переиндексация чужих страниц, восстановление репутации почты, если с домена шла рассылка. Эта часть занимает недели и от скорости работы уже не зависит.

Когда проще перенести сайт, чем чистить

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

Признаки, что дело идёт к этому: ядро CMS не обновлялось больше двух лет, тема куплена не у автора, у сайта нет ни одной рабочей копии, а хостинг блокировал его уже не первый раз.

Выводы

  • Заражение WordPress почти всегда массовое, а не адресное: цель — устаревший модуль.
  • Копия «как есть» снимается до чистки, иначе причину найти нечем.
  • Чистка без закрытия дыры даёт повтор в течение недель.
  • Проверять результат нужно из инкогнито и с телефона, а не из админки.

Почистим сайт и найдём точку входа: аудит безопасности и чистка. Чтобы обновления и копии делались без вашего участия, есть поддержка сайтов, а по самой CMS — работы по WordPress.

Услуги по теме

Обсудить проект — аудит, разработка, поддержка.

Оставить заявку Услуги