Очистка сайта на WordPress после хакерской атаки

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

Файл настроек wp-settings.php

Как определить, что сайт действительно был взломан?

Я уже упомянут про то, что вы могли заметить появление нежелательной рекламы или всплывающих окон на вашем сайте. Так же взлом мог заключаться в размещении на вашем сайте нежелательного контента в скрытом виде. Это может быть текст на темном фоне или очень мелким шрифтом, невидимым для глаз пользователя. При этом, поисковые системы будут его находить и индексировать. Проверьте командой site:example.com (замените example.com на ваш домен) в поисковой системе Google страницы вашего сайта на предмет наличия неопознанных страниц.

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

В ряде случаев хакеры могут использовать ваш сайт как прокладку для рассылки спама, внедрив в него транзитную страницу. Именно на эту страницу будут идти ссылки в рассылаемых спам-сообщениях. Этот приём хакеры используют для того, чтобы уменьшить вероятность попадания конечного сайта под спам-фильтры.

Сделайте бэкап сайта как можно скорее!

Как только вы определили, что ваш сайт действительно взломали, незамедлительно делайте бэкап сайта и базы данных. Сделать это необходимо для того, чтобы уберечь ваш сайт от удаления хостинг-провайдером. Особенно актуально для сайтов, расположенных на shared хостинге. Во многих случаях удаление вредоносного сайта является стандартной процедурой у хостинг-провайдеров с целью избежать заражения других объектов в сети провайдера.

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

Перед тем, как перейти к очистке взломанного сайта на WordPress

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

  • Из папки wp-content/plugins/ можно удалять любые файлы без риска потери данных. Эта папка плагинов и WordPress автоматически отключит плагин, если папка с его файлами будет удалена. Позже вы сможете переустановить плагин из каталога Wordrpess. Удалять плагин необходимо полностью с папкой, не по файлам. В редких случаях, удаление папки плагина может привести к сбоям работы сайта. Чтобы этого избежать, рекомендую делать бэкап сайта перед каждым этапом очистки. Это позволит с легкостью вернуться на шаг назад, а не к начальному варианту.
  • Так есть папка wp-content/themes, где хранятся темы оформления сайта. Вы можете без риска удалить все, кроме вашей текущей темы.
  • В каталоги wp-admin и wp-include новые файлы добавляются очень редко. Происходит это при как правило при обновлениях самого WordPress. В случае, если вы обнаружите новые или измененные файлы в этих каталогах, то высока вероятность того, что они будут включать вредоносный код.
  • Следите за старыми бэкапами и установочными файлами WordPress. Убедитесь, что они не доступны из сети Интернет.

Несколько полезных инструментов для поиска несанкционированных изменений сайта

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

Так, команда:

find . -mtime -2 –ls

найдет измененные файлы за последние 2 дня. Обратите внимание, что точка обозначает текущую директорию в SSH-консоли. Будут включены все поддиректории.

Вместо точки можно указать точный путь к файлам сайта, например:

find /home/yourdirectoryname/yoursitefolder/ -mtime 2 -ls

Если срок два дня кажется недостаточен и заражение произошло раньше, то можно изменить 2 на большее значение, например, десять:

find /home/yourdirectoryname/yoursitefolder/ -mtime 10 -ls

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

Еще одной полезной командой является «grep». Например, она может быть использована для поиска файлов, содержащих base64 (и другие функции PHP, обычно используемые хакерами для внедрения вредоносного кода):

grep –ril base64 *

Результатом будет список файлов, в которых использовалась base64 функция. Обратите внимание, что наличие в коде функции base64 еще не значит, что он внедрен хакером. Она может быть использована в обычном коде, например, разработчиками плагинов или тем, установленных на сайте. Поэтому найдя такой код, необходимо произвести сверку его с оригинальным кодом плагина, темы или самого WordPress.

Если на вашем сайте очень много разных файлов, то можно ускорить выполнение предыдущей команды, задав ей ограничение в виде поиска только в php-файлах. Это файлы, где содержится код и куда потенциально мог внедрить свой код хакер.

grep --include=*.php -rn . -e "base64_decode"

Не всегда вывод на экран удобен. Особенно, если перечень файлов большой. В таком случае куда удобнее будет выполнить комплексную команду find и grep с выводом в log-файл для последующего анализа.

find public_html/wp-content/uploads/ -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.gif" -not -name "*.jpeg" >uploads-non-binary.log

С помощью двух простых инструментов командной строки «grep» и «find» вы сможете очистить зараженный веб-сайт. Как видим, это не так сложно, как могло показаться изначально! В большинстве случаев, этого будет достаточно для восстановления корректной работы сайта. Следующим этапом будет устранение уязвимостей для предотвращения взломов в будущем.

1 Response

  1. Сталкер:

    Взял на заметку, но надеюсь что не пригодится.

Добавить комментарий

Ваш адрес email не будет опубликован.

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