Эксперты Seqrite Labs обнаружили целевую вредоносную кампанию, получившую название Operation FrostBeacon, которая нацелена на компании в Российской Федерации с целью доставки Cobalt Strike beacons. Cobalt Strike - это фреймворк для тестирования на проникновение, который злоумышленники часто используют для получения удаленного доступа к системам. По данным исследователей, фишинговые письма указывают на финансовую мотивацию угрозы, а в фокусе атак находятся организации, ответственные за платежи, контракты, сверки и юридические риски.
Описание
В ходе кампании было замечено более 20 начальных файлов заражения, причём вторжение полагается на многослойную цепочку инфекции с двумя различными кластерами. Первый кластер заражает через фишинговые архивные файлы, содержащие вредоносные файлы ярлыков. Второй кластер использует устаревшую уязвимость CVE-2017-0199, связанную с внедрением шаблонов, и даже объединяет её с другой старой уязвимостью редактора уравнений CVE-2017-11882. Оба кластера приводят к выполнению удалённого HTA-файла для запуска обфусцированного загрузчика PowerShell, способного расшифровывать и запускать шеллкод в памяти, что в конечном итоге приводит к развёртыванию Cobalt Strike.
Географический фокус кампании чётко нацелен на Российскую Федерацию, что подтверждается именами файлов, временными метками и данными телеметрии. Целевыми отраслями стали B2B-предприятия в логистике, промышленном производстве, строительстве и техническом снабжении, с акцентом на финансовые и юридические департаменты, а также корпоративные почтовые ящики для информации.
В первом кластере начальный доступ осуществляется через доставку архивов. Инфекционная цепочка начинается с распространения архива через вложение в фишинговом письме. Например, файл с именем "рекламация.zip" содержит два компонента: легитимную на вид книгу Excel для отвлечения внимания и вредоносный LNK-файл, маскирующийся под PDF-документ. Когда пользователь дважды щёлкает по LNK-файлу, он запускает скрытую команду PowerShell, которая, в свою очередь, активирует mshta.exe для загрузки удалённого HTA-файла с таких доменов, как ezstat[.]ru или valisi[.]ru.
HTA-файл действует как основное исполняемое звено на ранней стадии атаки, используя привилегии скриптов Windows через mshta.exe для тихого выполнения без ограничений. После запуска HTA восстанавливает несколько блоков, закодированных в Base64, в сжатый скрипт PowerShell, подготавливает среду для доставки полезной нагрузки следующего этапа и инициирует выполнение через встроенную логику. Эти многослойные кодирования вводят обфускацию, затрудняют статический анализ и обеспечивают прогресс атаки, избегая раннего обнаружения.
Окончательный этап PowerShell выполняет несколько ключевых функций. Он реализует трёхслойную последовательность обфускации, каждый шаг которой предназначен для задержки раскрытия вредоносной логики. Первый слой - это строка Base64, сжатая с помощью gzip, встроенная в MemoryStream. После декодирования и распаковки она выдает скрипт PowerShell второго этапа. Этот скрипт содержит две основные функции: func_get_proc_address для динамического разрешения адресов неуправляемых API Windows и func_get_delegate_type для создания типов делегатов во время выполнения с использованием System.Reflection.Emit. Их роль - построить полную среду выполнения в памяти, позволяя загрузчику вызывать API без объявлений и без записи каких-либо артефактов на диск.
Внутри этого скрипта второго этапа находится третий и последний слой: большой двоичный объект, закодированный в Base64, хранящийся в переменной $v_code. После декодирования скрипт выполняет побайтовую операцию XOR с ключом 35. Это производит буфер сырого шеллкода, который затем копируется в выделенную исполняемую память с помощью VirtualAlloc. Расшифрованный шеллкод копируется и выполняется через динамически сгенерированный указатель функции. Этот окончательный шеллкод является загрузчиком Cobalt Strike Beacon, завершая многоэтапную цепочку выполнения без файлов.
Во втором кластере злоумышленники используют фишинговые письма с вложениями DOCX, которые эксплуатируют уязвимость CVE-2017-0199 для запуска редактора уравнений, приводящего к выполнению удалённого HTA-файла. Фишинговые письма в этом случае претендуют на юридические требования о погашении долга, ссылаясь на контракты и судебные разбирательства. Более того, в некоторых цепочках наблюдалось объединение CVE-2017-0199 с CVE-2017-11882, где документ загружает RTF-файл, который, в свою очередь, использует уязвимость редактора уравнений для выполнения вредоносного кода.
Инфраструктура кампании включает множество доменов, контролируемых из России, которые настроены как командные и управляющие конечные точки, наряду с настроенным изменяемым профилем Cobalt Strike. Анализ показал, что зарегистрированные домены, такие как incident.zilab[.]ru, mcnn[.]ru, и другие, были созданы в разное время, некоторые ещё в 1999 году, и зарегистрированы через российских провайдеров, таких как RU-CENTER-RU. Это указывает на использование существующей или скомпрометированной инфраструктуры.
На основе анализа эксперты оценивают, что угроза исходит от русскоязычной финансово мотивированной киберпреступной группы. Наблюдается пересечение тактик, техник и процедур (TTP) с группой Cobalt Group, которая ранее атаковала финансовые учреждения по всему миру, но в Operation FrostBeacon не были замечены специфические семейства вредоносного ПО, характерные для них.
В заключение, Seqrite Labs проанализировала многокластерную кампанию, нацеленную на российские B2B-предприятия, фокусируясь на финансовых и юридических отделах. Отслеживаемая как Operation FrostBeacon, эта финансово мотивированная киберпреступная группа использует два параллельных вектора доставки: вредоносный документ DOCX и вооружённый ZIP-архив, оба из которых в конечном итоге преследуют одну цель - развёртывание Cobalt Strike Beacon в памяти. Комбинация старых уязвимостей, многослойной обфускации и использования легитимных инструментов Windows делает эту кампанию особенно скрытной и опасной для организаций, которые не обновили свои системы или не имеют надлежащих мер безопасности.