June 16, 2020

Что такое Web-Shell?

Всем привет! Сегодня, я расскажу что такое веб-шелл, для чего он нужен и как от него защититься.
Начнем с того, что такое Shell.

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

Web-Shell — это удаленная командная оболочка через web, он нужен для управления чужими сайтами и серверами: выполнения команд терминала, перебора паролей, доступа к файловой системе и т.п. Для размещения скрипта чаще всего используются уязвимости в коде сайта или подбор паролей.

Web-Shell представляет собой серьёзную угрозу прежде всего для безопасности площадки вашего сайта, ведь разместив shell злоумышленник получает доступ к файловой системе и базам данных площадки.

Web-Shell построен на PHP командой exec():

<?php exec ('команда'); ?> это уже считается шеллом. Но нам же хочется больше комфорта. Мне лично не хочется постоянно писать код. Первое что приходит в голову, это сменить название на то, которое не вызовет подозрений (option.php).

Далее стоит поменять время создания/изменения файла. В этом нам поможет команда touch с параметром -t. -t время использовать вместо текущего указанное время.

Время задается десятичным числов вида: [[CC]YY]MMDDhhmm[.SS], где каждая пара цифр представляет следующее:

MM - Месяц года [01-12].

DD - День месяца [01-31].

hh - Час дня [00-23].

mm - Минута часа [00-59].

CC - Первые две цифры года.

YY- Последние две цифры года.

SS - Секунда минуты [00-61].

Пример:

touch -t 2015121216 — 2015|12|12:16 время измениться.

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

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

Существуют различные готовые программы, которые доступны в интернете.

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

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