Stager (стейджер) — компактный загрузчик, который используется в многоступенчатых кибератаках для установки соединения с командным сервером, доставки и последующего запуска более крупных вредоносных модулей. Стейджеры применяются на этапе постэксплуатации, то есть после того, как злоумышленники воспользовались уязвимостями в ПО и проникли в систему жертвы.
Стейджеры входят в состав легитимных инструментов для тестирования на проникновение, например фреймворков Metasploit, Cobalt Strike и Covenant.
Одноступенчатые атаки и атаки с использованием стейджера
Злоумышленники могут доставлять на скомпрометированное устройство сразу основную полезную нагрузку или же использовать промежуточные компоненты вроде стейджера. В первом случае полезная нагрузка называется stageless (одиночная, не поэтапная). Такая полезная нагрузка содержит всю вредоносную функциональность в одном файле, поэтому она, с одной стороны, исключает потерю части кода в ходе атаки, с другой — довольно много весит.
При использовании стейджера вредоносный код разделен на модули, которые доставляются на атакуемое устройство последовательно. Стейджер предназначен для загрузки и запуска следующего, более крупного, модуля и сам по себе весит мало. При этом последовательное скачивание модулей замедляет атаку и повышает риск потери части данных.
Стейджеры часто используются в тех случаях, когда злоумышленники эксплуатируют уязвимость, не позволяющую сразу выполнить большой объем кода. Кроме того, компактный стейджер в случае обнаружения проще переписать, чем основную полезную нагрузку.
Как работает стейджер
После доставки и запуска стейджер выполняет следующие действия:
- Отправляет командному серверу сигнал об успешной эксплуатации, во многих случаях вместе с информацией об атакуемой системе.
- По команде скачивает с удаленного сервера следующий модуль (например, дроппер).
- Расшифровывает содержимое этого модуля, устанавливает (или, в случае бесфайловой атаки, загружает его в оперативную память), запускает и передает ему управление.
Код стейджера может содержать конфигурационные данные, необходимые для выполнения его задач, например адрес C&C-сервера и ключи для расшифровки следующего вредоносного модуля.
Виды стейджеров
Стейджеры существуют в различных форматах, таких как:
- шелл-код;
- пакетный файл (.bat);
- VBS;
- DLL;
- HTML-приложение (HTA) и др.
Код стейджера может содержаться в коде эксплойта, который эксплуатирует уязвимость, а затем загружает стейджер в скомпрометированную систему. Во многих случаях стейджер представляет собой бесфайловое ПО.