Как восстановить сайт Joomla после взлома

Как восстановить сайт Joomla после взлома, 4.3 из 5 основанный на 4 голосах.

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

В первую очередь замените пароль

  • к панели управления хостингом;
  • 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 Голосов ) 

Комментарии   

 
# Федор 10.12.2013 19:42
А если сайт сломан, хостер восстановил бекап, но только файлы в корне и бд, как из бд включить все расширения, материалы и т.д?
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 10.12.2013 19:51
Расширения в базе должны быть включены. Наверно вы саму базу данных не можете прикрутить?
Ответить | Ответить с цитатой | Цитировать
 
 
# Федор 10.12.2013 19:58
В базу то я зашел, нашел все таблицы с материалами, компонентами и т.д. но сайт стоит пустой _http://way-soul.ru/ , почему то не восстановился. Саппорт хостинга говорит, что вероятно нужно активировать все эти таблицы. Только не говорит как, а я чайник, не знаю. Пробовал выполнить такой запрос: update "jos_extensions" set "enabled" = "1"; но не вышло, вот такая ошибка: # 1064 - У вас ошибка в вашем синтаксисе SQL; проверить документацию по используемой версии MySQL на предмет корректного синтаксиса около '"jos_extensions" набор "включен" = "1"' в строке 1
Ничего не понимаю, может подскажите?
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 10.12.2013 20:13
Нет, проблема не в этом (активизировать или еще какие умные слова). Образ базы и сайта на вышлите, соберу у себя.
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 14.12.2013 13:07
У вас в базе нет категорий, материалов, модулей. Потому сайт и пустой. Вышлите мне бакап базы, посмотрю что там есть.
Ответить | Ответить с цитатой | Цитировать
 
 
# Сергей 12.01.2014 01:47
Добрый,
спасибо за хорошие статьи. я не могу найти (или чего-то не понимаю) рекомендуемый плагин BotsGo404. что это и где это?
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 24.02.2014 14:16
e-kzn.ru/joomla/dostup-i-bezopasnost/zashchita-adminki-joomla.html
Этот поставьте и в комментариях написано как отправить злоумышленника на 404 страницу.
Ответить | Ответить с цитатой | Цитировать
 
 
# Василий Клецкин 23.02.2014 11:35
Как восстановить сайт знакомств
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 24.02.2014 14:16
Договориться о стоимости.
Ответить | Ответить с цитатой | Цитировать
 
 
# Сергей 28.02.2014 01:41
Здравствуйте!
Проблема вот в чем:
как перенсти всех пользователей из базы данных взломанного сайта в базу данных нового сайта.
Пытался просто скопировать все данные в таблице _user и вставить с оригинальным префиксом в новую бд, но выдает сообщение, что существует синтаксическая ошибка.
В самой бд нашел огромное количество вредоносных ссылок на другие ресурсы, как их удалить, чтобы структура бд была сохранена?

Всего доброго,
Сергей
Ответить | Ответить с цитатой | Цитировать
 
 
# Ковенко В.Б. 21.03.2014 20:04
Здравствуйте!
Таблиц чуточку больше, для Joomla 2.5
_usergroups
_users
_user_notes
_user_profiles
_user_usergroup_map
По поводу ссылок, проще пройтись по страницам и удалить.
Ответить | Ответить с цитатой | Цитировать
 

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

Уважаемые посетители!
Комментарии модерируются, активные ссылки на сайты не публикуются. Пожалуйста, не тратьте понапрасну свое и мое время на попытку размещения спамерских ссылок.
Спасибо.


Защитный код
Обновить