lamapixel
0%
Безопасность · 11 мин чтения

Как вычистить взломанный WordPress

Взломанный WordPress, вычищенный по-нормальному: найти бэкдоры, удалить внедрённый код, закрыть точку входа и починить то, что осталось в Google.

Как вычистить взломанный WordPress

Первый час: что сделать до того, как что-то удалять

Первая реакция на найденный малварь - начать удалять файлы. Не надо. Заражённые файлы - это улика, через что именно зашёл злоумышленник, и если вы уничтожите след, то вычистите сайт сегодня, а через неделю будете чистить снова.

Сначала четыре вещи:

  • Всё равно сделайте бэкап - файлы и базу, вместе с заражением. Если чистка пойдёт не так, это единственный путь назад.
  • Запишите даты изменения. Отсортируйте файлы по времени правки. Самый старый изменённый файл обычно ближе всего к точке входа.
  • Пока не меняйте пароли. Меняйте их после удаления бэкдоров, иначе вы просто отдадите злоумышленнику новые.
  • Включите режим обслуживания, если сайт отдаёт спам или редиректит живых посетителей.

Убедитесь, что сайт действительно взломан

Не всякий странный симптом - малварь. Конфликт плагинов, сломанный кэш или просроченный сертификат выглядят не менее тревожно. Три проверки быстро скажут, есть ли проникновение:

1. Найдите в Google site:вашдомен.ru. Это покажет, что проиндексировано, а не то, что рисует ваш браузер. Страницы, которых вы не создавали - японские иероглифы, названия аптек, казино, случайные строки в адресах - означают внедрённый контент.

2. Запросите свою же страницу как Googlebot. Большая часть SEO-спама работает через клоакинг: он отдаётся только тогда, когда user agent похож на поискового робота. Страница, чистая в Chrome и спамная для Googlebot, - характерная подпись SEO-спам-заражения.

3. Откройте Search Console. Отчёт «Проблемы безопасности» называет проблему прямо. В отчёте об индексировании будет видно резкий скачок числа страниц, если их внедрили.

Где искать заражение

Почти на каждом скомпрометированном WordPress малварь прячется в четырёх местах:

  • Файлы ядра. Сравните wp-admin и wp-includes с чистой копией той же версии WordPress. Всё, что отличается, положил туда не WordPress.
  • Плагины и темы. Тот же метод - переустановить из официального источника, а не чинить отдельные файлы. Особое внимание плагинам, которые вы отключили, но не удалили: PHP-файлы отключённого плагина по-прежнему доступны по HTTP.
  • Папка uploads. В wp-content/uploads должны быть медиафайлы и ничего больше. Файл .php там - это бэкдор, без исключений.
  • mu-plugins. Папка wp-content/mu-plugins подгружается автоматически и в списке плагинов не появляется. Злоумышленники её любят именно потому, что большинство владельцев сайтов туда ни разу не заглядывали.

Кроме файлов проверьте базу. Внедрённые скрипты обычно живут в таблице wp_options, а чужие администраторы - в wp_users.

Как удалить по-нормальному

Надёжная последовательность, именно в таком порядке:

  • Замените ядро WordPress свежескачанной идентичной версией.
  • Удалите все плагины и темы, затем поставьте только те, которыми реально пользуетесь, из официального репозитория. Плагин, заброшенный автором, переустанавливать не нужно.
  • Удалите каждый .php из папки uploads.
  • Очистите mu-plugins, если вы туда ничего не клали намеренно.
  • Проверьте .htaccess и wp-config.php на внедрённые правила и include.
  • Удалите незнакомые администраторские аккаунты, остальным сбросьте пароли.
  • Смените соли в wp-config.php - это обнулит все существующие сессии.
  • Смените пароль базы данных и доступы к хостингу и FTP.

Закройте за собой дверь

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

  • Обновляйте WordPress, плагины и темы - абсолютное большинство проникновений эксплуатируют уязвимость, закрытую патчем много месяцев назад.
  • Запретите выполнение PHP в wp-content/uploads.
  • Включите двухфакторную аутентификацию на всех администраторских аккаунтах.
  • Уберите страницу входа с /wp-admin.
  • Плагины, которыми не пользуетесь, удаляйте, а не отключайте.
  • Держите бэкапы не на том сервере, который они бэкапят.

Наш гид по защите WordPress разбирает каждый пункт подробно.

Почините то, что осталось в Google

Этот шаг пропускает большинство инструкций, а именно он решает, вернётся ли трафик.

Удаление малвари с сервера не удаляет спам-страницы из индекса Google. Эти адреса остаются в индексе, пока Google не переобойдёт их и не обнаружит, что их больше нет. Нужно:

  • Перегенерировать sitemap, чтобы в нём были только настоящие страницы.
  • Убрать из Search Console любого пользователя или владельца, которого вы не добавляли - злоумышленники регулярно подтверждают себя, чтобы ускорить индексацию своего спама.
  • Отправить запросы на удаление внедрённых адресов.
  • Подать запрос на повторную проверку, если наложены меры вручную, с описанием того, что было скомпрометировано и что вы изменили.

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

Если сайт заражается снова

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

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

Когда стоит передать

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

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

Если спам-страницы на вашем сайте на японском, начните с нашего разбора Japanese keyword hack - там эта конкретная атака рассмотрена подробнее.

Нужна помощь?

Напишите нам - вместе найдём решение.

Назначить консультацию →