Исправление взломанного сайта WordPress

Существует множество причин, по которым WordPress является сегодня одной из наиболее часто используемых систем управления контентом (CMS). Он прост в установке и обслуживании, очень удобен для пользователя и содержит множество бесплатных тем и плагинов, которые можно установить несколькими щелчками мыши. Тем не менее, он также может быть взломан, если на вашем сайте установлена ​​устаревшая версия WordPress или плагина. Около года назад была обнаружена уязвимость в популярном PHP-скрипте TimThumb, который широко используется для автоматического изменения размера изображений. Хакеры получили доступ ко многим веб-сайтам, работающим на WordPress с TimThumb и заразив все PHP-файлы кодом eval (base64_decode) для перенаправления всех посетителей, которые посещают поисковые системы, на веб-сайты по своему выбору.

WordPress Base64_decode взломать

Вы можете легко очистить вредоносные коды gzinflate / eval (base64_decode) из всех файлов PHP, используя этот скрипт-уборщик для возврата трафика из поисковой системы, но, к сожалению, одного только скрипта недостаточно. Вы можете заметить, что ваш сайт снова взломан и опять же, даже если вы обновились до последней версии TimThumb, потому что хакер уже установил несколько бэкдоров. Единственный способ предотвратить постоянный взлом вашего сайта – это найти бэкдор и удалить его с вашего сервера.
Бэкдор может быть самостоятельным файлом или просто фрагментом кода, встроенным в допустимый файл PHP. Я попробовал пару плагинов безопасности для WordPress и обнаружил, что Wordfence Плагин для WordPress – один из лучших, потому что он может проверять целостность ядра WordPress, плагинов и файлов тем. Если файлы отличаются от исходных версий, они будут показаны в результатах сканирования, и вы увидите, как файлы изменились. Помимо этого, Wordfence также может определить наличие неизвестных подозрительных файлов в каталоге установки WordPress.

Wordfence

Обратите внимание, что бесплатная версия Wordfence сканирует только основные файлы WordPress. Если вы хотите сканировать файлы тем и плагинов, вам нужно будет подписаться как минимум на членство Pro, которое стоит 17,95 долларов в год. Несмотря на то, что членство в Pro дает вам только 1 премиальный ключ API, вы можете использовать его для сканирования нескольких веб-сайтов по одному после завершения сканирования, удалив ключ премиум-ключа и заново создав новый в области «Управление ключами Wordfence API», чтобы использовать его. на другом сайте.

После удаления 2 бэкдор-файлов, найденных Wordfence, все веб-сайты WordPress, размещенные под моей учетной записью общего хостинга, через несколько дней все еще были заражены вредоносным кодом PHP. Я очень расстроился и решил вручную проверить необработанные журналы доступа, найденные в cPanel, хотя я не уверен, что я ищу. Необработанные журналы доступа содержат тысячи строк, и прохождение каждой отдельной строки для 6 веб-сайтов просто невозможно. Поэтому я сделал некоторую фильтрацию, и файлы журнала стали намного меньше. Обратитесь к видеоинструкции ниже о том, как отфильтровать строки с помощью Notepad ++.

Фильтрация необработанных журналов доступа

1. Отфильтруйте GET-запросы. По сути, запросы GET предназначены только для извлечения данных, и они не могут нанести никакого ущерба. Этот фильтр должен уменьшить ваши файлы журнала на 80%.

2. Отфильтруйте POST-запросы для wp-cron.php, которые запрашивает ваш сайт. Это выглядит примерно так, как показано ниже:

111.222.333.444 – – (25 июля 2012: 01: 42: 14 +0800) «POST /wp-cron.php?doing_wp_cron=1343151734.5347619056701660156250 HTTP / 1.0» 200 – «-» WordPress / 3.4.1; http://www.yourwebsite.com»

3. Продолжайте фильтровать безопасные POST-запросы, чтобы еще больше уменьшить размер файла журнала для упрощения анализа.

При анализе файлов журнала я обнаружил подозрительный запрос, в котором российский IP-адрес без информации о реферере и пользовательском агенте выполнял запрос POST каждые 10 секунд для файла 404.php 3 раза.

WordPress вредоносный POST-запрос

Я сравнил файл темы 404.php с оригинальной версией и заметил дополнительную строку кода в верхней части файла.

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

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

Важная заметка: Убедитесь, что вы изменили все свои пароли, включая учетные записи пользователей WordPress, FTP, cPanel и базу данных после очистки бэкдора. Также не забывайте обновлять плагины, темы и версию WordPress.