Рейтинг:  4 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна
 

Приветствую вас, уважаемые читатели JoomlaTown!

Хочу с вами поделиться своей историей, может кому то пригодиться, не дай бог конечно.

А история вот какая...
На днях у меня произошёл взлом всех сайтов на аккаунте в Джино. И узнал я об этом только спустя несколько часов, от технической поддержки ДжиноУдивляюсь.
Очень неприятный момент, когда взламывают один сайт, а это, блин, все 8 штук, которые были на одном аккаунте.
Такое ощущение как будто тебя ударили тазиком по голове, и ты первые минуты тупо сидишь и думаешь: "Блин, а что же делать то..?".

Реалити-шоу начинается.

Ну а теперь по-порядку.

Открыв один из сайтов для простого мониторинга и обзора, меня встретила страница с ошибкой 503 Service Temporarily Unavailable.
Что говорит о невозможности работы сервера.

Открыл второй, та же засада. Третий - то же самое. Дальше смотреть не стал...
Сразу написал в техподдержку, мол ни один сайт не работает, что за проблемс?
Сам хостинг работал нормально, значит проблема в рамках какого-то одного сервера.

Через час технический специалист попросил проверить работоспособность, но как была 503 ошибка, так она и осталась.
Поначалу я даже начал грешить на хостинг, думал, может какой-то сбой или ещё что-то.

Ещё через пару часов мне сообщили, что мои сайты были взломаны и с них отправлялся спам в очень больших количествах. Это привело к тому, что сервер просто не справился с нагрузкой и завис. Перезагрузка сервера заканчивалась его зависанием, и так постоянно.

Вот скриншот использования сервера для отправки спам-писем вредоносными скриптами (кликабельно).

График использования почты скриптами

7000 - это неотправленных писем, как видно из скриншота какое-то количество спама всё же отправилось Хмурюсь.

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

В своей практике я встречался с разными видами взлома и заражения сайтов, и это был уже 6-ой вид взлома.

1 вид. Это когда сайт уничтожают полностью и оставляют только индексный файл, с чёрным фоном и надписью типа: "Hacked by ZeroCool".
В этом случае поможет только резервная копия.

2 вид. Заражают файлы javascript, и они распространяют вирус по компьютерам без антивирусной защиты. Нормальный платный антивирус сразу блокирует такое и показывает красное уведомление.
Лечится заменой заражённых javascript-файлов на новые, например, из архива стандартной Joomla, или другой CMS.

3 вид. Вирусный файл каким-то образом попадает на сайт, и его имя ни о чём плохом не говорит, так как оно имеет вид: picture01.png
Естественно программа для просмотра изображений, его не откроет, но если попытаться открыть с помощью тектового редактора, то там будет виден вредоносный код.
Как вылечить расскажу далее.

4 вид. Вирусный php-файл спокойно живёт в одной из папок сайта и потихоньку заражает компьютеры посетителей, у которых нет антивируса, либо он бесплатный и ненадёжный.
Как лечить тоже расскажу чуть ниже.

5 вид. Мобильный редирект. Заметить его не так то просто. Потому что он активизируется только на мобильных устройствах: планшетах, смартфонах и т.д.
Но тут есть одна хитростьПодмигиваю. Все браузеры отдают некую информацию серверу, это так называемый User-Agent. Т.е. грубо говоря сервер спрашивает у браузера, кто ты? Браузер иму может ответить, например MSIE 8.0 - что соответствует браузеру Internet Explorer 8
Для браузера Mozilla FireFox есть специальный плагин (User Agent Switcher), который может подменять user-agent на любой другой, в том числе и мобильного устройства.
Благодаря этому владелец сайта может увидеть и даже ощутить этот мобильный редирект и предпринять необходимые действия.
Чаще всего мобильный редирект скрывается в файлах .htaccess или php-файлах, которые отвечают за шаблон и вывод контента.

Ну и 6 вид, с которым я столкнулся в этот раз - это просто огромная куча вирусных (вредоносных) файлов, которые разбросаны по сайту и которые делают свою грязную работу по отправке спама.
Их не определяет антивирус, с виду они обычные php-файлы, но создают неимоверную нагрузку на процессор сервера, чем его и "убивают".

Как удалить вирус с сайта?

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

1) Делаете резервное копирование вашего сайта с вирусами, например при помощи Akeeba Backup
2) Переносите резервную копию на ваш компьютер, только обязательно с хорошим антивирусом (NOD32 - мой выбор)
3) Распаковываете архив резервной копии в отдельную папку. При этом ваш антивирус уже должен вас предупредить о наличии вируса и сказать где он находиться. Если этого не произошло, то вручную просканируйте эту папку антивирусом.
Дело в том, что на сервере, заражённый файл может никак себя не проявлять и загружая страницу сайта, ваш антивирус многозначительно промолчит...
И только когда вы напрямую дадите антивирусу проанализировать заражённый файл, тогда он сможет его обнаружить.
4) Вам останется только удалить заражённые объекты и "залить" файлы обратно на хостинг.
5) Возможно при удалении вирусов, вы удалите некоторые рабочие файлы вашей CMS, и для перестраховки я рекомендую дополнительно "залить" на хостинг, поверх старых фалов, пакет обновления для вашей CMS. Пусть даже ваша CMS самой последней версии, всё равно залейте пакет обновления. В этом случае недостающие файлы будут восстановлены.

Как избавиться от вредоносных скриптов, которые по сути не являются вирусами?

Возможно, антивирус их тоже обнаружит, хотя мне кажется что нет, и я делал всё руками, поскольку мне ещё дали список подозрительных объектов.

НО! 
Пройдя по списку и удалив все эти подозрительные файлы, сайты всё равно не работали, а рассылка спама продолжалась.
Поэтому пришлось искать вручную. На самом деле это не настолько трудно, как кажется, и можно попытаться сделать за 1-2 часа.

Шаг номер раз.

Ищем папки, которые были изменены недавно. Например, у меня сайты давно не обновлялись и последнее изменение датируется 2013 годом, поэтому папки изменённые недавно, найти было очень легко.

поиск вирусов на сайте

Как видно папки administrator и components были изменены совсем недавно. includes - это уже я менял.
Но не всегда в корневой директории можно точно узнать когда менялись файлы в той или иной папке, я заметил что не всегда эти изменения записываются.

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

Если вы не знаете точно когда сайт подвергся атаке, то можно посмотреть логи ошибок Joomla, в них есть много интересного. Они находятся в файле error.php в папке log.
Пример:

Логи ошибок Joomla

Как видно из скрина, с одного IP идёт очень много обращений, которые заканчиваются ошибкой. Скорее всего тут пытались подобрать пароль к админке.
Также логи хранятся и на сервере, и нормальный хостинг всегда их предоставляет для анализа.
Глядя на них можно выяснить когда начался и произошёл взлом.

Шаг номер два.

В корне сайта, а также в недавно изменённых папках ищём папки, названия которых не свойственны для вашей CMS, например:

инородные папки

 

Здесь видно, что название папки - hos, такой никогда не было в Joomla, да ещё внутри неё файл index.php, со странным содержанием.
В Joomla, php-файлы обычно начинаются с комментария разработчика или авторитетного источника, типа php.net.
Либо с определения констант define(....)

Шаг номер три.

Ищем php-файлы, недавно изменённые и со странными названиями. Пример:

Странные файлы изменённые недавно

Бывают такие:

вредоносные php файлы

 И такие:

вредоносные php файлы

Вот что в них находилось:

Листинг вредоносного файла

Из этого скрина сразу видно, что есть какой-то вредоносный код.

Во-первых, code_inject - "инъекция кода"
Во-вторых, функция eval
В-третих, base64_decode
И в-четвёртых, упоминания разных CMS: Joomla и WordPress

И ещё примерчик:

листинг вредоносного файла

Все файлы, которые вызывают подозрение удаляем, а если сомневаетесь, то посмотрите наличие такого файла в обычном дистрибутиве Joomla.

Также смотрим все файлы с обычными именами, но которые были изменены недавно, в моём случае это был даже файл index.php шаблона BEEZ, вот что там было:

листинг заражённого index.php

Поиск вредоносных файлов у меня занял пару часов, учитывая что было 8 сайтов, то на мой взгляд - это не долго.

Ещё раз, но вкратце:
- Ищём папки и файлы в корне сайта, которые изменены недавно и которые имеют несвойственные названия.
- Перемещаемся в папки 2-го уровня и ищем тоже самое.
- Удаляем все подозрительные папки и файлы, предварительно проверив их наличие в родном дистрибутиве Joomla (или в незаражённой резервной копии)

Как же вредоносный код попал на сайт?

Вопрос конечно, интересныйВ нерешительности
Как сказали специалисты хостинга Джино, это был т.н. шелл, который скорее всего попал на хостинг, через сайты на старой версии Joomla 1.5, поскольку она больше не поддерживается и в ней есть уязвимости.

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

Вывод.

Спасибо что прочли!
Желаю, чтобы вы никогда не сталкивались с этим. Удачи!

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

С уважением, Олег Касьянов
:)

X

Инструкция по планированию сайта
С чего начать создание сайта?

Инструкция по созданию сайта

  • Инструкция по созданию сайта
  • Шаблон для составления плана сайта
  • Чек-лист по этапам создания сайта

* Никакого спама. Гарантирую!