Как восстановить сайт Joomla после взлома
Признаки взлома сайта по логам искать, скорее всего, окажется бесполезно. Злоумышленник не сразу накинется на сайт – жертву, а выждет несколько недель для того, чтобы замести следы. Файлы логов на серверах хранятся, как правило, в течение десяти дней.
В первую очередь замените пароль
- к панели управления хостингом;
- FTP доступу к файлам CMS;
- и к базе данных, стоит заменить имя пользователя к ней и префикс таблиц (если использовался стандартный jos_).
Пароль должен быть сложным, лучше всего состоять из двух-трех слов. Оставьте английскую раскладку клавиатуры, а смотрите на русские буквы и пишите «менямилыйнецелует». Получится пароль «vtyzvbksqytwtketn». Каждый может придумать сложный и легко запоминающийся пароль, а пишут - «12345». Еще есть любители галочки «Сохранить в списке паролей». Забудьте про нее.
Восстановление из резервной копии (бакапа)
Предпочтительный способ восстановить работоспособность сайта – восстановить его из резервной копии, сделанной до взлома.
Свяжитесь со службой поддержки хостинга и выясните дату последнего бакапа, или найдите свою сохраненную копию. Если таковая будет найдена, сохраните на всякий случай взломанную версию в отдельную директорию.
Распакуйте копию из бакапа. Базу данных не заменяйте. С большой долей вероятности она осталась нетронутой.
В конфигурационном файле configuration.php замените имя пользователя и пароль к базе данных новыми: public $user = 'Новое_имя'; public $password = 'Новый_пароль'. Зайдите в административную панель сайта, замените имя пользователя администратора и пароль доступа к CMS.
Если признаки взлома не исчезли, придется восстановить базу данных из резервной копии. Если со времени последнего бакапа до взлома вы наполняли сайт контентом, то из таблички dbprefix_content базы данных взломанной копии, вы сможете восстановить отсутствующий контент.
По окончанию восстановительных работ установите плагин BotsGo404.
Восстановление без резервной копии
Сделайте копию взломанной версии в отдельной директории. Базу данных сохранять не надо. С большой долей вероятности она осталась нетронутой.
Скачайте последнюю версию CMS Joomla, распакуйте ее и удалите путем сравнения из взломанной версии сайта все файлы, имеющиеся в скаченной версии.
Далее посмотрите на оставшиеся папки. У вас останутся все установленные дополнительные расширения и шаблон. Найдите и скачайте их инсталляционные пакеты. Аналогичным образом удалите дубли файлов.
Не забудьте, в шаблоне у вас могут быть измененные вами файлы стилей CSS, иконка favicon.ico, configuration.php, не удаляйте их.
Все оставшиеся файлы подлежат тщательному изучению. Обратите внимание на
- наличие перенаправления в файлах .htaccess (они могут быть во внутренних директориях)
- файлы с датой модификации, близкой к дате обнаружения взлома
- посторонние файлы, залитые злоумышленником
- код, записанный нескончаемой строкой, либо без форматирования
- код, закодированный с использованием функций шифрования, компрессии и замены: base64_decode, gzuncompress, gzinflate, str_rot13, preg_replace
- код с динамическим исполнением: eval, assert, create_function
- код, подгружаемый со сторонних ресурсов: file_get_contents, curl_exec
Далее просмотрите коды картинок, в них так же могут содержаться фрагменты кода с динамическим исполнением и шифрованием.
Все ненужные файлы необходимо удалить, в оставшихся файлах удалить инжектированный вредоносный код.
Настала пора восстановления. Скопируйте оставшиеся директории с файлами в дистрибутив CMS Joomla, удалив из него папку installation. В конфигурационном файле configuration.php замените имя пользователя и пароль к базе данных на новые: public $user = 'Новое_имя'; public $password = 'Новый_пароль'. Восстановите прежнюю структуру папок плагинов, модулей и компонентов из скаченных дистрибутивов. Не забудьте скопировать в папки /language и /administrator/language файлы с текстовыми константами локализации.
Зайдите в административную панель сайта, замените имя пользователя и пароль доступа к CMS и посмотрите, не заменен ли e-mail SuperUsers (злоумышленник может воспользоваться функцией восстановления забытого пароля). Внимательно посмотрите права всех пользователей. Не исключена возможность заведения злоумышленником еще одного администратора.
По окончанию восстановительных работ установите плагин BotsGo404.
Пример удаления вредоносного кода с сайтаЕсли эта статья показалась вам полезной, пожалуйста, проголосуйте за нее. Это поможет другим быстрее найти эту статью из множества других менее полезных.
( 4 Голосов )
Комментарии
Ничего не понимаю, может подскажите?
спасибо за хорошие статьи. я не могу найти (или чего-то не понимаю) рекомендуемый плагин BotsGo404. что это и где это?
Этот поставьте и в комментариях написано как отправить злоумышленника на 404 страницу.
Проблема вот в чем:
как перенсти всех пользователей из базы данных взломанного сайта в базу данных нового сайта.
Пытался просто скопировать все данные в таблице _user и вставить с оригинальным префиксом в новую бд, но выдает сообщение, что существует синтаксическая ошибка.
В самой бд нашел огромное количество вредоносных ссылок на другие ресурсы, как их удалить, чтобы структура бд была сохранена?
Всего доброго,
Сергей
Таблиц чуточку больше, для Joomla 2.5
_usergroups
_users
_user_notes
_user_profiles
_user_usergroup_map
По поводу ссылок, проще пройтись по страницам и удалить.
RSS лента комментариев этой записи