Веб-шелл (веб-оболочка или web shell) — командная оболочка (программа или скрипт для управления устройством с помощью команд) для удаленного управления веб-сервером. Веб-шелл может использоваться для выполнения легитимных задач, однако чаще всего применяется в кибератаках. Одна из наиболее известных и широко используемых веб-оболочек называется China Chopper.
Веб-шелл может быть написан на любом из языков программирования, которые поддерживает целевой сервер. Чаще всего встречаются оболочки на распространенных языках, например PHP.
Как и для чего киберпреступники используют веб-оболочки
Как правило, злоумышленники доставляют веб-шелл на целевой сервер, эксплуатируя уязвимости самого сервера, связанных с ним сайтов или веб-приложений. После запуска оболочка работает как бэкдор: она дает преступнику доступ к файловой системе и базам данных сервера, позволяет прослушивать трафик и удаленно выполнять команды.
Злоумышленники могут применять веб-шеллы с различными целями, среди которых:
- кража данных;
- дефейс сайтов;
- объединение зараженных серверов в сеть (ботнет) и проведение DDoS-атак;
- дальнейшее проникновение в сеть жертвы, в частности на устройства, которые недоступны из интернета, но доступны с зараженного веб-шеллом сервера;
- заражение устройств посетителей скомпрометированного веб-ресурса (стратегия watering hole).
Виды веб-шеллов
В зависимости от способа связи между устройством злоумышленника и скомпрометированным сервером различают несколько видов веб-шеллов.
- Bind shell («прямая оболочка»). Злоумышленник инициирует соединение с атакуемым сервером со своего устройства. Для подключения и запуска bind shell атакующий должен знать IP-адрес сервера.
- Reverse shell («обратная оболочка»). Целевой сервер сам подключается к устройству злоумышленника. Для успешного соединения атакующему необязательно знать IP-адрес цели.
- Double reverse shell. Как и в предыдущем случае, подключение инициирует зараженный сервер. Однако, в отличие от обычной «обратной оболочки», входящий и исходящий трафик в этом случае разделены на два канала; соответственно, создаются два параллельных подключения к устройству злоумышленника, а не одно.
Обнаружение веб-шеллов
Индикаторами присутствия в системе веб-шелла под управлением злоумышленников могут быть:
- неизвестные файлы на сервере, особенно в каталогах, доступных из интернета;
- файлы с необычным временем создания или загрузки (например, более новые, чем последние обновления установленных приложений);
- подозрительные записи в журналах логов (например, о том, что картинка отправляет запросы на сервер);
- длительные периоды большой нагрузки на сервер;
- подозрительные команды от процесса веб-сервера.
Однако стоит отметить, что легитимная активность на сервере тоже может приводить к появлению некоторых из этих индикаторов.