К сожалению, это довольно частое явление. Условно мы делим эти случаи на две категории:
1). Воровство паролей доступа к FTP
Данные воруются троянскими программами и вирусами, заразившими компьютер клиента. После кражи паролей троян пересылает их боту, который заходит по ftp и ищет и заменяет все индексные файлы во всех доступных фтп пользователю папках или дописывает свой зловредный код в конце этих файлов. Как правило это файлы index.htm, index.php, default.asp и т.д. В самых сложных случаях такой бот изменяет все php файлы на сайте или все js файлы
Если с Вами такое приключилось, то первое что нужно сделать это сменить пароль к cpanel(при этом будет сменен пароль к главному ftp акаунту) и сменить пароли ко всем активным ftp акаунтам. Потом запустите проверку на вирусы/трояны всех компьютеров с которых Вы работаете с сайтом и провериться желательно несколькими антивирусами. До завершения проверки не заходите с новым паролем по ftp, т.к. это может привести к краже нового пароля и повторению заражения.
2). Взлом через известные уязвимости: Joomla, Wordpress, Drupal, Datalife, и других CMS
Причины взлома
Мотивы взламывавших самые разные. Пользу для злоумышленников это несёт к примеру в виде:
-возможности рассылать спам,
-получить доступ к базе, где могут находится ценные приватные данные или данные клиентов.
-получения паролей для других сервисов и аккаунтов,
-внедрение кода для последующего взлома других сайтов или внедрения вирусов на компьютеры посетителей.
Т.к. подобные данные могут оказаться где угодно, не стоит удивляться если Ваш сайт не привлекает внимание, но взломан.
Основные симптомы:
-изменена главная страница,
-идет переадресация на сторонний ресурс, иногда бывает что переправляется только трафик посетителей заводящих с мобильных устройств,
-при заходе на сайт браузер ругается что сайт взломан т.к. уже попал в базу зараженных сайтов.
Первая реакция владельцев, удалить замеченные чужеродные файлы, оказывается чаще всего не эффективной, хотя иногда мы сами помогаем очистить сайт таким образом. Но нужно понимать что любой оставленный код приведет к повторному взлому, в результате приведет к напрасной потере времени.
Если оставлять сайты очищенные таким образом, это с высокой вероятностью приведёт к повторному заражению, к жалобам на сайт, блокировкам сайта браузерами и сервисами. Бан поисковиками, снижение посещаемости, блокировка за спам и т.д.
Для лечения можем рекомендовать, или восстановить сайт/аккаунт из бэкапа. Имеет смысл если сайт был заражен совсем недавно.
Или залить файлы дистрибутива по новой. Это может быть трудоёмко и муторно. Но это единственный относительно надежный путь. При этом если разница с последней версией скрипта существенна, чаще всего необходимо перезаливать аналогичную версию CMS, и лишь потом обновлять CMS (Joomla или пр.)
Перед заливкой файлов рекомендуем сделать полный бэкап файлов и баз. Можно вручную по FTP плюс базу из phpMyAdmin, или можно сделать полный бэкап CPanel (если на аккаунте имеется свободное место чтобы вместить еще один объём).
Также мы можем помочь выполнить бэкап и скачать с нашего сайта.
В большинстве случаев сама база не заражена и проблема в файлах. Поэтому после проведения бэкапа, можно еще продублировать основные файлы, которых не будет в новом дистрибутиве.
Как правило это:
-конфиг сайта,
-images,
-различные изменения в коде темы,
-uploads
Только проверьте чтобы в этих папках не было файлов со странными названиями и расширениями php. Тоже не редкость у заражённых сайтов.
С особой тщательностью надо перепроверять файлы темы, если она тоже очень важна и её прийдется сохранить. Нужно проверить нет ли новой версии темы у разработчика.
Оставшиеся файлы стоит перепроверить вплоть до визуального просмотра содержимого каждого из файлов. Сверки размера и дат с файлами оригинальной темы.
Чем меньше сохранится старых файлов, тем надежнее.
Закончили с сохранением данных и бэкапом, идём далее
Вы можете написать нам, и мы пересоздадим аккаунт, или откроем параллельный аккаунт, с тем чтобы можно было аккуратно сайт за сайтом пересоздать аккаунт.
Закачиваем файлы
Закачиваем аналогичную версию CMS (надежнее с тем чтобы было меньше глюков), или сразу последнюю, в качестве обновления. Обновление сэкономит Вам время, но может вызвать не совместимость с текущей версией темы или плагинов, если Вы давно не обновляли CMS
Если выбирается апдейт, рекомендуем сверить возможность поднятия Вашей версии CMS до текущей последней. Возможно что прямого апдейта не предусмотрено и переносить статьи прийдется вручную. Или же необходим предварительный апдейт на промежуточную версию CMS*. Также прочитать рекомендации по обновлению, которые обычно идут в файле Readme в комплекте с новой версией CMS).
Заливаем шаблон и базу.
Проверяем работу сайта.
Если всё в порядке, обновляем скрипт до последней официальной версии с сайта разработчика CMS
Общие рекомендации по последующей защите сайта:
-регулярные обновление CMS сайта. Вы можете воспользоваться нашей опцией «В отпуск спокойно» с тем чтобы мы сами обновили Ваш сайт (берется для одного сайта),
-обновления плагинов и темы,
-установка плагинов для защиты админки.
Если у Вас нет своих предпочтений или не знаете на чем остановится, напишите нам, мы напишем свои рекомендации. Хотя плагины это вопрос индивидуальный, их много и выбор каждого как правило может быть по разному обоснован, и таких плагинов не мало,
-регулярные смены паролей админки и CPanel, желательно также проверить нет ли лишних, не используемых логинов FTP, бывает что для теста создаётся FTP аккаунт с простым паролем, и его забывают удалить.
Если аккаунт или сайт взламывался, к нему может быть повышенное внимание со стороны злоумышленников, поэтому лучше не оставляйте его без регулярной проверки.
Сообщите в поддержку о произошедшем заражении. В большинстве случаев удается найти и вычистить зараженные файлы. Если масштаб заражения очень большой, то мы рекомендуем восстановить акаунт из ближайшей не зараженной резервной копии.
Дополнительно смотрите руководство Google, для случая если у Вас VPS. В случае поделенного хостинга всё немного проще и не требует столь глубоких знаний консоли, хотя общие принципы теже:
*-Так, к примеру, нет простого способа обновить Joomla 1.5 до версии 3.5, но рано или поздно это необходимо сделать. Т.к. 1.5 уже очень не безопасна.