Изменены системные файлы WordPress: как проверить и восстановить ядро

Печать
  • 0

Коротко: системные файлы WordPress не должны меняться между обновлениями. Если проверка показывает расхождения, исходите из того, что сайт мог быть взломан: просканируйте аккаунт в Imunify360, переустановите ядро через WP Toolkit (или из админки WordPress), затем найдите остальные следы атаки и обновите всё.

О каких файлах речь

Ядро (по-английски core) состоит из папок wp-admin и wp-includes и файлов в корне установки, например index.php, wp-login.php или wp-settings.php. Для одной и той же версии WordPress они одинаковы на любом сайте, поэтому их можно сравнить с оригиналами с wordpress.org. К ядру не относятся wp-config.php, .htaccess и всё содержимое wp-content (темы, плагины, изображения).

Как узнать об изменениях

  • В cPanel, в WP Toolkit («WordPress Management»): на странице сайта нажмите Security, затем Check WordPress Integrity и Verify Checksums.
  • По результатам Imunify360 (cPanel, раздел Security) или с помощью плагина безопасности, который сверяет файлы.
  • Если Вы работаете по SSH: команда wp core verify-checksums в папке сайта.

Откуда берутся расхождения

ПричинаКак частоЧто это значит
Вредоносный код, спрятанный злоумышленникомЧаще всегоСайт взломан, нужно очистить его и найти, как туда попали
Ручная правка разработчикомРедкоПлохая практика: правки пропадут при первом же обновлении
Прерванное обновлениеИногдаЧасть файлов осталась от старой версии; переустановка это исправит

План действий

Шаг 1. Сохраните следы и просканируйте аккаунт

Пока не восстанавливайте резервную копию и ничего не удаляйте: следы атаки помогают найти причину. JetBackup хранит копии в ротации 30 дней, так что время есть. Откройте Imunify360 в cPanel и изучите результаты. Если найдены заражённые файлы, начните с них: Уведомление Imunify о заражённых файлах.

Шаг 2. Верните оригинальное ядро

Переустановка заменяет системные файлы чистой копией для Вашей версии WordPress. Записи, темы, плагины и база данных при этом не меняются.

  • Через cPanel (рекомендуем): WP Toolkit, страница сайта, Security, затем Reinstall WordPress Core после проверки контрольных сумм. Работает, даже если вход в wp-admin недоступен.
  • Через WordPress: Dashboard, затем Updates, кнопка Re-install version. Она есть, даже если у Вас уже последняя версия.

После переустановки запустите проверку ещё раз: расхождений быть не должно.

Шаг 3. Найдите, что ещё оставил злоумышленник

Переустановка ядра не очищает wp-content. Поэтому проверьте:

  • Раздел Users с фильтром Administrator: удалите незнакомые учётные записи и смените пароли настоящих.
  • PHP-файлы в wp-content/uploads. Там хранятся только изображения и документы, поэтому любой PHP-файл в этой папке подозрителен.
  • Плагины и темы, которые Вы не устанавливали.
  • wp-config.php и .htaccess: сравните с тем, что было раньше. Правильный образец есть в статье Настройка файла .htaccess для популярных CMS.
  • Пароли: администратора WordPress, cPanel, FTP и базы данных.

Шаг 4. Закройте лазейку

Обновите WordPress, все плагины и темы. Если у какого-то расширения была опубликованная уязвимость, скорее всего, взлом произошёл именно через него: Уязвимость в плагине или теме WordPress. Дополнительно отключите редактор файлов в админке строкой define( 'DISALLOW_FILE_EDIT', true ); в wp-config.php.

Когда обращаться в поддержку

Если Вы не уверены, что именно изменилось, или проблема возвращается, откройте тикет, прежде чем переустанавливать сайт целиком. Мы поможем выбрать копию JetBackup, сделанную до изменений. Восстановить её можно и самостоятельно: Как восстановить сайт или отдельные файлы через JetBackup 5.

Полезные статьи

Помог ли вам данный ответ?

Нужна помощь? Позвоните нам +373 795-800-80