Перейти к содержимому
🔐 WordPress взломали? Пошаговый план восстановления сайта

🔐 WordPress взломали? Пошаговый план восстановления сайта

Сайт перестал открываться, браузер кричит о вирусе, а Google выкинул страницы из выдачи. Первая мысль, паника. Вторая, «что делать прямо сейчас?»

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

Ниже, пошаговый план восстановления: от первой реакции до полной очистки и защиты от повторного взлома. Все инструменты бесплатны, инструкции проверены на практике.

💡 Быстрый обзор:

  • Сделайте бэкап и отключите сайт
  • Проверьте компьютер антивирусом и загрузочным сканером
  • Смените все пароли: WordPress, FTP, база данных, панель хостера
  • Настройте SFTP вместо FTP для шифрования передачи данных
  • Восстановите WordPress из чистого бэкапа или перезалейте ядро вручную
  • Просканируйте сайт плагином Wordfence
  • Проверьте файлы вручную через SFTP на base64 и eval
  • Перезалейте wp-admin, wp-includes и корневые файлы
  • Проверьте тему на чужой код и настройте firewall и 2FA

Почему WordPress-сайты взламывают

person in black long sleeve shirt using macbook pro

Хакеры и скрипт-кидди не выбирают жертву вручную. Автоматизированные сканеры круглосуточно ищут сайты с незакрытыми уязвимостями: устаревший плагин, тему без обновлений, версию WordPress с известной дырой.

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

Проверить, взломан ли сайт, можно через Sucuri SiteCheck, бесплатный онлайн-сканер, который показывает malware, блэклисты и подозрительные редиректы. Работает мгновенно и не требует доступа к админке.

Первые действия: бэкап, проверка ПК и смена паролей

1. Бэкап и отключение сайта

Первым делом скачайте текущее состояние сайта через файловый менеджер хостера или FTP. Да, сайт заражён, но бэкап пригодится для анализа и как страховка на случай, если что-то пойдёт не так при очистке. Заодно поставьте сайт в режим обслуживания или временно закройте через.htaccess, чтобы посетители не цепляли malware, пока вы работаете.

2. Проверка компьютера

Источником утечки паролей может быть ваш собственный ПК. Троян, перехватывающий FTP-пароли, классика.

  • Просканируйте компьютер антивирусом (Avast, AVG или встроенный Windows Defender).
  • Скачайте c't Notfall Windows и проверьте систему с загрузочной флешки, загрузочный сканер видит то, что прячет запущенная ОС.
  • Если технически подкованы, установите Sandboxie и запускайте браузер в песочнице до полной очистки.

3. Смена всех паролей

red padlock on black computer keyboard

Не знаете, какие пароли скомпрометированы, меняйте всё:

  • Пароли всех пользователей WordPress.
  • FTP-доступы.
  • Пароли баз данных MySQL.
  • Мастер-пароль от панели хостера.

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

Очистка сайта: сканирование и восстановление файлов

4. Настройка SFTP

Обычный FTP передаёт пароли открытым текстом. Подключите SFTP или SSH-доступ, настройки есть в панели хостера. Не сохраняйте пароли в FTP-клиенте: если ПК всё же заражён, троян вытащит сохранённые учётки.

5. Восстановление WordPress из бэкапа

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

6. Сканирование через Wordfence

Wordfence, бесплатный плагин с firewall и сканером malware. Установите и запустите полное сканирование: он сравнивает файлы ядра, плагинов и тем с оригиналом из репозитория и показывает изменённые строки.

Wordfence находит: внедрённый base64-код, eval-конструкции, скрытые iframe и подозрительные PHP-файлы. Отмечайте ложные срабатывания, чтобы при следующем скане они не всплывали повторно.

7. Ручная проверка по SFTP

Сканер не видит всего. Подключитесь по SFTP и пройдите по папкам глазами:

  • index.php в корне, header.php и functions.php в теме, излюбленные места атак.
  • Ищите строки с base64 и eval, конструкции gzinflate и str_rot13 — это обфускация вредоносного кода.
  • Обращайте внимание на файлы с необычными именами и датами изменения посреди ночи.

8. Перезаливка ядра и плагинов

Скачайте свежий WordPress с wordpress.org и перезалейте папки wp-admin и wp-includes, а также все корневые файлы, кроме wp-config.php и.htaccess (их проверьте отдельно). Все плагины и темы переустановите заново из официальных источников. Не восстанавливайте плагины из бэкапа, берите чистые версии.

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

9. Проверка темы на вредоносный код

После перезаливки ядра очередь темы. Проверьте functions.php и header.php на чужой код. Сверьте даты изменения файлов, активность в нерабочее время подозрительна. Wordfence найдёт большую часть проблем, но ручной осмотр не помешает.

При малейших сомнениях, переустановите тему с нуля из официального источника.

Финальные шаги и связь с хостером

10. Меры безопасности после очистки

Сбросьте WordPress Security Keys (Salt) в wp-config.php, сгенерируйте новые через официальный генератор. Это принудительно завершит все активные сессии, включая сессии злоумышленника.

Настройте двухфакторную аутентификацию для всех пользователей-администраторов. Wordfence умеет 2FA из коробки, включите в настройках плагина.

11. Свяжитесь с хостером

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

12. Проверьте другие сайты на хостинге

Держите несколько сайтов в одном веб-пространстве? Проверьте каждый. Инфекция перепрыгивает между сайтами, если хостинг не изолирует их друг от друга. Отработайте ту же процедуру на соседних сайтах. Правильно настроенный хостинг использует open_basedir для изоляции, уточните у хостера.

Инструменты защиты: Wordfence и Sucuri

Для самостоятельной защиты достаточно связки: Wordfence (бесплатный firewall + сканер) и регулярные бэкапы. Wordfence ловит брутфорс, сканирует файлы и блокирует подозрительный трафик на уровне сайта.

Если сайт критичен для бизнеса, рассмотрите Sucuri. Это облачный firewall, который фильтрует атаки до того, как они достигают сервера. Sucuri также включает мониторинг, удаление malware и защиту от DDoS. Тарифы стартуют от $199 в год. На практике для коммерческих проектов это оправдано: час простоя магазина стоит дороже годовой подписки.

Англоязычный туториал по полному циклу восстановления, с демонстрацией каждого шага в реальном времени:

Как не допустить повторного взлома

Взломанный однажды сайт, цель для повторной атаки. Хакеры оставляют бэкдоры, и если не закрыть все дыры, инфекция вернётся через неделю.

  • Автообновления: WordPress 6.7+ умеет автоматически обновлять плагины и темы. Включите в настройках.
  • Минимум плагинов: Каждый лишний плагин, потенциальная точка входа. Удалите всё, чем не пользуетесь.
  • 2FA: Двухфакторная аутентификация для всех учётных записей администратора. Wordfence, Solid Security или Google Authenticator.
  • Бэкапы: Автоматические ежедневные бэкапы с хранением минимум за 30 дней. UpdraftPlus (бесплатно) или Jetpack Backup.
  • Мониторинг: Wordfence присылает email при обнаружении изменённых файлов. Не игнорируйте.
  • Хостинг: Выбирайте хостера с изоляцией аккаунтов, WAF на уровне сервера и поддержкой актуальных версий PHP.

⁉️🤔 Частые вопросы

Можно ли восстановить сайт без бэкапа?

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

Wordfence бесплатной версии достаточно для очистки?

Для сканирования и обнаружения, да. Бесплатная версия сравнивает файлы с оригиналом, находит malware и блокирует брутфорс. Платные тарифы добавляют real-time обновление сигнатур, для разовой очистки это избыточно.

Что делать, если хостер заблокировал сайт?

Свяжитесь с поддержкой, объясните ситуацию и запросите временный доступ для очистки. Хостеры обычно идут навстречу. После очистки попросите повторную проверку, сайт разблокируют.

Как долго длится очистка взломанного сайта?

Типичный случай: 2-4 часа на полный цикл (бэкап, проверка ПК, смена паролей, сканирование, перезаливка, настройка защиты). Тяжёлые случаи с множественными бэкдорами, до рабочего дня. Если сайт на хостинге с автоустановщиком WordPress, перезаливка ядра занимает 10 минут.

Нужно ли платить Sucuri или хватит Wordfence?

Для личного блога или небольшого сайта Wordfence закрывает большинство типовых угроз бесплатно. Sucuri имеет смысл для интернет-магазинов, сайтов с приёмом платежей и проектов, где час простоя стоит денег. Облачный firewall снижает нагрузку на сервер и ловит атаки ещё на подлёте.

Что делать прямо сейчас: итоговый чек-лист

Восстановление взломанного WordPress-сайта сводится к трём этапам: остановить заражение, вычистить код, закрыть дыры. Бэкап, страховка. Wordfence, основной инструмент очистки. Смена паролей и 2FA, защита от повторного проникновения.

  • Если сайт ещё работает и есть доступ в админку, начните с Wordfence. Запустите сканирование и действуйте по результатам.
  • Если админка упала, подключайтесь по SFTP, делайте бэкап файлов и базы, перезаливайте чистое ядро WordPress.
  • Если сайт под блокировкой хостера, сначала свяжитесь с поддержкой. Без их участия блокировку не снять.

Не откладывайте. Каждый час заражённый сайт теряет позиции в поиске, а посетители получают вредоносный код. Начните с бесплатной проверки на Sucuri, 30 секунд, и масштаб проблемы ясен.

А какой инструмент помог вам после взлома, Wordfence, Sucuri или ручная очистка? Расскажите в комментариях.