Борьба с шеллом на сервере (сайты на DLE)


Никогда раньше не сталкивался с такой проблемой. Хостер предупредил, что мой сервер VDS активно рассылает спам и надо это срочно устранить. Полез на FTP и обнаружил кучу левых php файлов во многих файлах. Видно, что имена файлов были сгенерированы рандомно, а часть из них имели имя с закосом под «нужные» файлы движка. Файлов для спама довольно много, порядка 50 шт. и они расплодились по папкам почти всех сайтов на сервере.

Также кроме спам-активности, шелл менял права на важные файлы движков и встраивал в них вредоносный код для рассылки спама. Вобщем часть сайтов стала недоступной, хостер орет мол «заканчивай спамить», попробуем почистить сервер от заразы.

Немного теории с хабра:

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

1.   Дефейс сайта. Это можно назвать, скорее, озорством, дальше дефейса дело часто не идет.
2.   Заражение страниц сайта вирусом. Вирусы могут как просто добавляться в конец каждой страницы сайта, так и быть довольно изощренными. Например, нам встречался вирус, заражавший конкретный класс Joomla, отвечающий за вывод данных в браузер.
3.   Поиск других сайтов в соседних папках и их заражение.
4.   Рассылка спама.
5.   Загрузка PHP Shell и выполнение произвольных действий — например, попытка взлома сервера с помощью существующих эксплойтов к операционным системам.
6.   Установка ботов, которые подключаются к серверу IRC и могут выполнять произвольные команды «хозяина» — например, производить DDoS других сайтов.

То есть, действия взломщиков направлены на дальнейшее распространение ботов, создание сети (ботнета) и дальнейшее ее использование в своих целях.

Я расскажу как я действовал в данной ситуации, боролся с заразой PHP Shell а Вы, если хотите, поправьте меня в комментариях. Поехали.

1.   В Админцентре движка DLE есть очень полезная штука «Антивирус». Кликаем, жмем поиск и смотрим какие файлы движок не признает своими. Анализируем таблицу и удаляем на FTP левые скрипты. Здесь важно не удалить лишнего т.к. часть файлов относится к установленным модулям DLE. Т.ч. Вы должны точно понимать, что удаляете файлы для спама, а не необходимые двигу скрипты.


В папке backup [1] явно не должны быть php файлы, тем более с такими названиями. А вот файл catface.php явно относится к модулю на сайте и удалять его не следует. Так проходимся по всем файлам и удаляем файлы для спама. В первую очередь при удалении обращайте на мелкие файлы размеров в байтах, это как правило, спам-скрипты.

При удалении обращайте внимание на имя и дату создания файла, как правило, спамерские лазейки датированы последним числом и у них подобрано очень хорошее имя (например index.php), чтобы они максимально были похоже на нужный для работы скрипт. Но стоит заглянуть внутрь и сразу видно, что в коде сидит наш шпион, поэтому перед удалением обязательно смотрите код php файла! А то поудаляете чего лишнего…

Надо анализировать каждый подозрительный файл и стирать его при необходимости с сервера.


Также шеллы создают лазейки, создавая в папках не нужные файлы .htaccess. Если Антивирус DLE считает, что в папке не должно быть по-умолчанию этого файла, смело удаляйте его с сервака!

Внимание! Перед удалением проверьте, не используется ли .htaccess в папке с модулем для получения прав на запись файлов. В некоторых случаях .htaccess необходим для работы модулей на сайте. Также внимательно смотрите код в начале php файлов, вредоносный код вставляет большие зашифрованные куски в начало файлов до стандартных комментариев разработчиков. Аккуратно удаляем эти куски.

2.   Теперь пофиксим уязвимости. Особенно это актуально если Вы давно не обновляли двиг DLE. Думаю, если бы у меня была последняя версия скрипта, то вероятность словить шелл была ниже.

Переходим на сайт разработчика https://dle-news.ru/bags/  и внимательно ищем страницу, где начинаются фиксы для вашей версии DLE. Скачиваем и устанавливаем заплатки всех выявленных уязвимостей текущей версии и более поздние с пометкой «и ниже».

3.   Кроме файлов, внимательно просмотрите, нет ли папок, не относящихся к сайту/CMS. Я обнаружил у себя две левые папки с скриптами для спама в самом корне сайта. Названия папок как всегда звучные, похожи на реальные (нужные) сайту папки. Т.ч. анализируйте скрипты в них и принимайте решение об удалении. ВНИМАНИЕ! Делайте в обязательном порядке бекапы всех удаляемых файлов!! Ошибиться просто, а цена ошибки не рабочий сайт..

Вот пример зараженного файла с куском вредоносного кода:


Удаляем кусок после <?php   и до /*

4.   Теперь проверим скриптом-сканером AI-Bolit все файлы в папке с сайтом на предмет заражения вредоносным кодом. Что умеет скрипт: https://revisium.com/ru/blog/AI-BOLIT-features_list.html  И где его скачать: https://revisium.com/ai/

Переходим на сайт, скачиваем Айболит и давайте проверим все сайты на предмет оставшегося заражения. Загружаем универсальный модуль для хостинга и распаковываем папку /ai-bolit/ на свой хостинг в корневую директорию.

Далее в файле ai-bolit.php вместо знаков вопроса вписываем любой свой пароль в define('PASS', '????????????????');    и сохраняем файл на сервере. Также можно в том же файле в строчке define('AI_EXPERT_MODE', 1);   установить режим проверки. «Установите 1 для режима "Эксперта", 0 для быстрой проверки и 2 для параноидальной проверки (для лечения сайта)». Обычно хватает «1», двойка часто подвешивает сервер. Если и с параметром «1» проверка зависла на продолжительное время, поставьте в настройках параметр 0.

Набираем в строке URL - http://адрес_вашего_сайта/ai-bolit.php?p=ваш_пароль

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


У меня запуск сканера вредоносного кода на сайте из браузера обычно подвисает в процессе проверки, поэтому я проверяю сайты через SSH, командную строку. Последнюю проверку сайтов проведем в режиме параноидальной проверки:

root@mx1:~# cd /var/www/admin/твой_сайт
root@mx1:/var/www/admin/data/твой_сайт # php ai-bolit.php

В результате исполнения скрипта будет создан файл AI-BOLIT-REPORT-<дата>_<время>.html, который будет содержать результат работы скрипта. Этот файл можно открыть в любом браузере.

После сканирования у меня появились подобные файлы: AI-BOLIT-REPORT-_admin_data_www_site-499815-07-08-2017_15-56.html  и AI-BOLIT-QUEUE-hh4jh9ukg4f3f22eca504a9b1192d8c9.
Смотрим отчет в html и вручную проверяем каждый подозрительный файл на предмет заражения вредоносным кодом. Обращаем внимание на выборочные строки на которые ссылается AI-BOLIT. Не забудем после сканирования удалить файлы AI-BOLIT и сформированные им отчеты.

5.   Теперь поменяю пароли к сайту и БД. Тут вроде все просто. А в админке выводим Администраторов и Журналистов и их пароли меняем на новые. Не забываем сохранить. Также меняем пароль к БД mySQL для сайта и соответственно в файле (DLE).
6.   Меняем все пароли на сервере. У меня установлен ISPManager, меняю в нем пароли: на базу phpMyAdmin; на доступ к серверу (root); на все созданные FTP подключения; 
7.   В админке завелось полно спам-пользователей, освободимся от них раз и навсегда установив эффективный антиспам для DLE и сайтов на других движках. Данный модуль эффективно защищает от спама сайты на CMS: 1C Bitrix, DataLife Engine, Drupal, Drupal 8,   IP.Board, IPS Community Suite 4, Joomla 1.5, Joomla 2.X, 3.X, Magento,  Magento 2.x, MediaWiki, MyBB 1.x, phpBB 3, phpBB 3.1, 3.2, Simple Machines Forum, Typo3, vBulletin,   vBulletin 5, WooCommerce, WordPress, XenForo.

Регистрация и установка модуля: Антиспам

В сервисе введете свой сайт и вам выдадут ключ доступа для работы анти-спама. Далее распаковываем папку скрипта dle-antispam-x.xx в папку сайта и запускаем установку по URL: http://DLE-SITE.RU/admin.php?mod=cleantalk&install

Прописываем Ваш ключ в настройках модуля. С этого момента ваш сайт защищен от регистраций спам-пользователей и спам-комментариев на сайте. В DLE уже существующих спам пользователей следует вычистить ручным удалением в админ панели. Я считаю, что можно в ручную удалить всех пользователей у которых нет публикаций и комментариев. После такой чистки неплохо пройтись инструментом «Мастер оптимизации» в админке ДЛЕ. А весь новый спам будет блокироваться установленным модулем.

В заключение хочу отметить, что скорее всего шелл распространился от моего сайта на CMS Joomla! Я его не обновлял не один год и первая зараза в файлах появилась именно в нем. Далее заражение пошло на DLE сайты, хорошо что не добралось до форума. Для себя я принял решение уйти от фришной жумлы на DLE т.к. он более мне знаком и, на мой взгляд, более устойчив к взломам. Это чисто субъективное мнение.

А Вы как боретесь с подобной заразой на своих сайтах???

Автор статьи: Маслов Артём
Внимание! При копировании материалов, ссылка на наш форум обязательна
« Последнее редактирование: 20 Август 2017, 21:05 от admin »