Заражение начинается с ZIP-архива. Внутри него лежит скрипт на языке Visual Basic с намеренно запутанным кодом: длинные цепочки повторяющихся операций собирают строку по частям уже во время работы. Человек распаковывает архив и запускает файл, а через несколько секунд на компьютере стартует многоэтапная атака. Конечная цель - кража учётных данных и удалённое управление системой.
Описание
Первым делом скрипт обращается к PowerShell - штатному средству Windows для автоматизации задач. С его помощью скрипт записывает закодированную полезную нагрузку в переменную среды, то есть в служебную ячейку хранения настроек, доступную программам пользователя. Имя переменной выглядит безобидно: оно имитирует внутренний кэш базы данных. Сразу после запуска скрипт очищает содержимое ячейки, поэтому следов на диске почти не остаётся. Правда, тот же след успевает попасть в системный реестр - именно там его и находят при разборе.
Исследование SentinelOne показало, что цепочка выделяется сочетанием двух приёмов: подготовки кода в переменной среды и доставки нагрузки внутри изображений. Оба механизма применяются последовательно, и каждый следующий этап запускается только после успешного завершения предыдущего.
Картинки скачиваются с облачного хранилища Firebase. Внешне это обычные изображения в формате PNG, не вызывающие подозрений при беглом осмотре. Однако после основного содержимого файла злоумышленники дописали закодированные данные и обрамили их двумя короткими маркерами. Скрипт не открывает файл как картинку. Он читает его как текст, находит маркеры и вырезает фрагмент между ними. Затем полученную строку переворачивают, заменяют служебные символы и восстанавливают исходный вид. На выходе получается исполняемый код, который ни разу не сохраняется на диск: он собирается и работает прямо в оперативной памяти. Классическая стеганография (способ скрытой передачи данных внутри других файлов) прячет сведения в пикселях. Здесь авторы выбрали более простой путь - дописать нагрузку в конец файла.
Первый файл несёт загрузчик, второй - готовую программу. Загрузчик собирает её из фрагментов и внедряет в легитимный процесс утилиты MSBuild, входящей в состав Windows. Работа под именем доверенной программы усложняет обнаружение: защитные решения охотнее доверяют процессам с хорошей репутацией.
Загрузчик оказался настраиваемым. Набор параметров задаёт папку для копии программы, имя задачи в планировщике, интервал повторного запуска, а также переключатели для проверки на виртуальную среду и обхода запроса на повышение прав. Такая гибкость указывает на коммерческий характер инструмента. Заказчик подставляет свои значения и получает сборку под конкретную кампанию.
Дальше вступает набор проверок. Программа запрашивает у системы сведения об устройствах кэш-памяти, и пустой ответ становится для неё сигналом, что она работает в изолированной среде. Тогда выполнение немедленно прекращается. Параллельно она перебирает запущенные процессы и сравнивает названия со списком средств мониторинга. Совпадение означает попытку остановить нежелательную программу на месте. Кроме того, она отключает встроенную в Windows проверку сценариев, после чего содержимое скриптов больше не анализируется.
Для закрепления используются два сценария. При наличии прав администратора программа создаёт задачу планировщика, запускающую нагрузку при входе пользователя с повышенными правами. Без таких прав она добавляет себя в раздел автозапуска системного реестра. Затем она копирует себя в заранее выбранную папку и запускает временный пакетный файл, который удаляет сам себя после старта основной копии.
Связь с управляющим сервером идёт по протоколу TCP. Программа выбирает адрес случайным образом из заданного списка, поэтому переключение между узлами не требует участия человека. Если один сервер молчит, она перебирает остальные адреса, пока подключение не пройдёт. Порт для соединения тоже берут из списка, так что блокировка единственного адреса работу не остановит. Домен в разобранном образце злоумышленники получили через бесплатный сервис динамической адресации - типичная деталь недорогих кампаний.
Атрибуция указывает на семейство DCRat (Dark Crystal RAT) - программу удалённого доступа (инструмент для скрытого управления чужим компьютером), которую продают на подпольных площадках. Сама схема доставки при этом не привязана к одному семейству. Похожие цепочки применяли для распространения AgentTesla, Formbook, RemcosRAT, XWorm и других программ для кражи данных. Замена финального файла не требует перестройки инфраструктуры: достаточно подставить другое изображение и обновить настройки загрузчика. Основная цель подобных схем - рабочие станции сотрудников и домашние компьютеры, где сохранены пароли к корпоративным сервисам.
Защита строится на нескольких правилах. Обновляйте систему и прикладное ПО: большинство подобных атак опирается на уже известные слабости. Не запускайте скрипты из архивов, полученных от незнакомых отправителей. Ограничьте права обычных сотрудников - без администраторских полномочий программа теряет часть возможностей для закрепления. Полезно следить за появлением незнакомых задач в планировщике и новых записей в автозапуске. Двухфакторная аутентификация снижает ущерб, если украденные данные всё же попадут к злоумышленникам. Резервные копии важных сведений позволяют восстановиться без переговоров с вымогателями и лишних расходов.
Платформа Singularity, по заявлению разработчика, распознаёт такие цепочки сразу на нескольких этапах: она объединяет статические признаки файлов с наблюдением за поведением во время работы. Тенденция последних лет - рост числа именно составных схем. Отдельные приёмы давно известны, но их комбинация позволяет обходить защиту за счёт нестандартной последовательности действий.