Введение
Google Threat Intelligence Group (GTIG) и Mandiant провели расследование кампании по компрометации цепочки поставок программного обеспечения, направленной на инфраструктуру обновлений AOMEI Technology в период с апреля по июль 2026 года. Злоумышленники проводили повторяющиеся кратковременные манипуляции с конфигурацией на исходных серверах AOMEI. Каждое окно вмешательства оставалось активным всего от пяти до десяти минут, после чего настройки возвращались к подлинным версиям. Это первый случай, когда мы столкнулись с компрометацией цепочки поставок ПО, реализованной с такими короткими временными интервалами, что позволяло эффективно избегать традиционной точечной проверки и автоматизированного сканирования файлов.
В рамках кампании доставлялась многоэтапная цепочка полезной нагрузки, включающая недавно обнаруженный загрузчик CROSSROAD и бэкдор SHINYROAD. Злоумышленники итеративно меняли свои методы, перенося инфраструктуру промежуточного размещения с облачных провайдеров на выделенные домены и легитимные облачные хранилища. Такая эволюционирующая настройка инфраструктуры значительно затрудняет для защитников создание эффективных механизмов блокировки или сетевого контроля. Мы относим эту активность к кластеру угроз, который отслеживаем под идентификатором UNC7017.
Основываясь на доступной телеметрии, пострадавшие организации охватывают различные секторы, включая ИТ-услуги, телекоммуникации, высшее образование и связанные с ними структуры в Австралии, Бразилии, Индии, Пакистане, Португалии, Сингапуре, Южной Африке, Испании, Швейцарии, Турции и США. Тем не менее, поскольку кампания была направлена на доставку вредоносного ПО любой системе, опрашивающей серверы распространения обновлений во время окон вмешательства злоумышленников, характер атак был оппортунистическим и, вероятно, затрагивает гораздо больше организаций, чем те, которые мы идентифицировали напрямую.
Эта кампания была первоначально выявлена в ходе совместного исследования с ManageEngine Threat Analysis Lab (METAL), подразделением Zoho Corporation, чья телеметрия EDR (обнаружение и реагирование на конечных точках) впервые зафиксировала активность в конце мая в нескольких клиентских средах. Мы благодарим команду METAL за проактивный обмен телеметрией и постоянное сотрудничество, помогающее защитить наши общие клиентские базы и более широкую экосистему программного обеспечения. После этих совместных усилий GTIG уведомила потенциально затронутые организации и поделилась техническими выводами с AOMEI Technology. Компания AOMEI сообщила, что приняла корректирующие меры для защиты своих серверов распространения. Анализ этой кампании, проведенный METAL, доступен в их отчете.
Как работают системы обновлений и уведомлений AOMEI
AOMEI Backupper обеспечивает резервное копирование данных, клонирование дисков и аварийное восстановление, а AnyViewer облегчает удаленный доступ к рабочему столу и поддержку. Пользователи этих продуктов полагаются на процесс обновления ABMarket и связанные с ним фоновые службы (Backupper.exe и ABNotify.exe), которые периодически опрашивают удаленные конечные точки по протоколу HTTPS для получения уведомлений об обновлениях и рекламных всплывающих окон:
Рисунок 1: Механизм обновления AOMEI
- Конфигурация обновления (down_html.ini): Программное обеспечение периодически отправляет HTTPS-запрос на адрес https://www2.aomeisoftware.com/download/abpopup/down_html.ini. Этот файл содержит номер версии, MD5-хеш ожидаемого пакета обновления и URL-адрес, по которому клиент должен загрузить upgrade-now.zip.
Конфигурация обновления (down_html.ini): Программное обеспечение периодически отправляет HTTPS-запрос на адрес https://www2.aomeisoftware.com/download/abpopup/down_html.ini. Этот файл содержит номер версии, MD5-хеш ожидаемого пакета обновления и URL-адрес, по которому клиент должен загрузить upgrade-now.zip.
- Конфигурация уведомлений (Notifycfg.ini): Программное обеспечение связывается с https://account.aomeitech.com/Notifycfg.ini. Этот файл дает указания локальному процессу уведомлений (ABNotify.exe) относительно того, какие сообщения отображать, и определяет команды или программы, расположенные в локальном каталоге программного обеспечения, для выполнения.
Конфигурация уведомлений (Notifycfg.ini): Программное обеспечение связывается с https://account.aomeitech.com/Notifycfg.ini. Этот файл дает указания локальному процессу уведомлений (ABNotify.exe) относительно того, какие сообщения отображать, и определяет команды или программы, расположенные в локальном каталоге программного обеспечения, для выполнения.
В нормальных условиях эти файлы направляют клиента на загрузку официальных файлов, размещенных на собственном домене AOMEI (www2.aomeisoftware.com).
Обзор кампании
Вместо поддержания постоянной, статической модификации на серверах распространения вендора, телеметрия GTIG и METAL указывает на то, что UNC7017 проводила повторяющиеся кратковременные манипуляции с конфигурацией. Мы подтвердили несколько окон вмешательства в 2026 году, а также связанные с ними образцы вредоносного ПО, замеченные в дикой природе начиная с конца апреля. Однако, учитывая короткую продолжительность этих окон, вполне вероятно, что на протяжении всей кампании происходили дополнительные вмешательства, которые остались вне нашего поля зрения. Системы, проверявшие наличие обновлений во время активного окна, получали вредоносные инструкции, в то время как системы, проверявшие до или после, получали чистые, подлинные файлы.
Во время коротких окон вмешательства злоумышленники изменяли файл настроек обновления на сервере, чтобы перенаправить программное обеспечение на загрузку вредоносного ZIP-пакета с серверов, контролируемых атакующими, вместо легитимных обновлений. Злоумышленники также изменяли файл настроек уведомлений на сервере, чтобы использовать службу автоматических уведомлений программного обеспечения, заставляя систему немедленно выполнять загруженное вредоносное ПО локально. Если приложение пользователя проверяло наличие обновлений в момент, когда модификации злоумышленников были активны, приложение загружало троянизированное обновление и выполняло вредоносный код.
В случаях, когда измененные файлы конфигурации были активны, злоумышленники направляли клиентов на загрузку «вооруженного» ZIP-архива, содержащего CROSSROAD — первичный загрузчик, отвечающий за проверку среды и развертывание вторичных компонентов. Впоследствии CROSSROAD устанавливал задачу в планировщике для обеспечения персистентности и развертывания SHINYROAD, модульного бэкдор-фреймворка, доставляемого через троянизированные административные утилиты для облегчения скрытого управления (C2).
Кратковременные манипуляции с цепочкой поставок
Определяющей характеристикой операционной безопасности UNC7017 является использование эфемерных, сжатых по времени модификаций серверов. Во всех непосредственно наблюдаемых волнах злоумышленники избегали оставлять вредоносные конфигурации на серверах обновлений AOMEI:
- 28 мая: 10-минутное окно воздействия (05:40 – 05:50 UTC)
28 мая: 10-минутное окно воздействия (05:40 – 05:50 UTC)
- 16 июля: 6-минутное окно воздействия (08:33 – 08:39 UTC)
16 июля: 6-минутное окно воздействия (08:33 – 08:39 UTC)
- 20 июля: 5-минутное окно воздействия (10:35 – 10:40 UTC)
20 июля: 5-минутное окно воздействия (10:35 – 10:40 UTC)
По завершении каждого окна UNC7017 возвращала файлы down_html.ini и Notifycfg.ini к их легитимному состоянию. Это затрудняет проведение аудита после инцидента, минимизирует время для сетевых защитников на перехват ответов вредоносного сервера в реальном времени и ограничивает компрометацию только теми клиентами, которые опрашивали серверы обновлений именно в эти минуты.
Использование встроенной логики обновлений: down_html.ini и раздувание конфигурации
Чтобы скомпрометировать конечные точки, не полагаясь на уязвимости программного обеспечения, группировка UNC7017 использовала легитимный рабочий процесс обновления и отображения всплывающих окон клиента AOMEI. По умолчанию клиент загружает архивы обновлений в свой каталог Tmphtml, распаковывает их в локальный каталог html/ и обрабатывает инструкции из двух удаленных файлов конфигурации: down_html.ini и Notifycfg.ini.
Чтобы гарантировать, что клиент AOMEI примет и распакует вредоносный архив upgrade-now.zip, UNC7017 систематически увеличивала номер минорной версии сборки («thrid») и обновляла ожидаемую контрольную сумму MD5 в файле down_html.ini во время каждого окна вмешательства:
Рисунок 2: Вмешательство 16 июля в файл down_html.ini, перенаправляющее загрузки на promotion.storage-data.com с увеличенной версией (thrid=6) и синхронизированным хешем MD5.
В течение 6-минутного окна 16 июля UNC7017 одновременно изменила файл Notifycfg.ini (SHA256: d2f9ef2429312667f0512504b6a19ba4a9cc5514f1b2933923dd42f75a1c5934), внедрив более 35 000 строк повторяющихся разделов конфигурации с именем [dummy_XXXXXX]. Это экстремальное раздувание конфигурации было структурировано таким образом, чтобы переопределить стандартные проверки версии клиента, заставляя его инициировать обновление независимо от установленной версии и немедленно выполнить распакованный дроппер CROSSROAD (upgrade-now.exe) из локального каталога html/.
Изменения инфраструктуры
В период с апреля по июль 2026 года UNC7017 перемещала свою инфраструктуру подготовки и доставки между общедоступными облачными хранилищами и контролируемыми злоумышленниками доменными именами, имитирующими легитимные, вероятно, для тестирования доставки полезной нагрузки и маскировки под трафик легитимных поставщиков.
Изменения инфраструктуры
- Ранняя подготовка в облаке (апрель–май 2026 г.): Ранние полезные нагрузки CROSSROAD (upgrade-now.exe, замеченный 20 мая) полагались на Alibaba Cloud Object Storage (serv.oss-cn-hongkong.aliyuncs.com).
Ранняя подготовка в облаке (апрель–май 2026 г.): Ранние полезные нагрузки CROSSROAD (upgrade-now.exe, замеченный 20 мая) полагались на Alibaba Cloud Object Storage (serv.oss-cn-hongkong.aliyuncs.com).
- Инфраструктура выделенных доменов (1–7 июля 2026 г.): Злоумышленник перешел на выделенные домены, стилизованные под поставщика (storage-data.com, promotion.storage-data.com, aomei.storage-data.com).
Инфраструктура выделенных доменов (1–7 июля 2026 г.): Злоумышленник перешел на выделенные домены, стилизованные под поставщика (storage-data.com, promotion.storage-data.com, aomei.storage-data.com).
- Гибридное разделение доставки через облако (20 июля 2026 г.): В течение 5-минутного окна 20 июля злоумышленник изменил файл down_html.ini, чтобы направлять первоначальные загрузки клиента в общедоступный бакет Google Cloud Storage (storage.googleapis.com/aomeiupdate/upgrade-now.zip), а не на storage-data.com. Этот тактический сдвиг позволил первоначальной загрузке обойти корпоративные прокси-фильтры, блокирующие недавно зарегистрированные домены (NRD), в то время как запущенный загрузчик CROSSROAD продолжал использовать storage-data.com для получения вторичной полезной нагрузки и связи с C2.
Гибридное разделение доставки через облако (20 июля 2026 г.): В течение 5-минутного окна 20 июля злоумышленник изменил файл down_html.ini, чтобы направлять первоначальные загрузки клиента в общедоступный бакет Google Cloud Storage (storage.googleapis.com/aomeiupdate/upgrade-now.zip), а не на storage-data.com. Этот тактический сдвиг позволил первоначальной загрузке обойти корпоративные прокси-фильтры, блокирующие недавно зарегистрированные домены (NRD), в то время как запущенный загрузчик CROSSROAD продолжал использовать storage-data.com для получения вторичной полезной нагрузки и связи с C2.
Рисунок 3: Модификация down_html.ini от 20 июля с использованием Google Cloud Storage (thrid=7) для обхода периметровых блокировок недавно зарегистрированных доменов (NRD).
Принуждение к аутентификации NTLM через WebDAV
20 июля UNC7017 внедрила вторичный вектор эксплуатации внутри Notifycfg.ini. До вмешательства Notifycfg.ini отображал легитимный рекламный баннер размером 400x380 с рекламой «World Cup Deals». Злоумышленник заменил этот баннер невидимым окном размером 1x1 пиксель (ширина=1, высота=1), которому был присвоен максимальный приоритет выполнения (Priority=9999), что давало клиенту команду отобразить удаленный HTML-файл по пути WebDAV в формате универсального соглашения об именовании (UNC):
Рисунок 4: Вредоносная конфигурация Notifycfg.ini от 20 июля, реализующая невидимое всплывающее окно 1x1 для принудительной аутентификации WebDAV/NTLM на 8.210.84.56.
Заставляя клиент AOMEI запрашивать удаленный ресурс file:// через WebDAV (DavWWWRoot), UNC7017 создала скрытый механизм сбора учетных данных, способный принуждать конечные точки передавать хеши аутентификации NetNTLMv2 на IP-адрес, контролируемый злоумышленником (8.210.84.56), без ведома пользователя.
Доставка вредоносного ПО и инструменты пост-эксплуатации
На протяжении всех волн кампании UNC7017 использовала последовательную цепочку кастомных загрузчиков и коммерческих/open-source фреймворков для пост-эксплуатации:
- Уклонение от защиты с помощью таймстомпинга: Анализ раннего дроппера CROSSROAD (upgrade-now.exe), отправленного на VirusTotal 20 мая, показал, что злоумышленник манипулировал временными метками компиляции PE, чтобы отображать сфабрикованные даты сборки 2024 года, пытаясь усложнить криминалистический анализ временной шкалы.
Уклонение от защиты с помощью таймстомпинга: Анализ раннего дроппера CROSSROAD (upgrade-now.exe), отправленного на VirusTotal 20 мая, показал, что злоумышленник манипулировал временными метками компиляции PE, чтобы отображать сфабрикованные даты сборки 2024 года, пытаясь усложнить криминалистический анализ временной шкалы.
- Модифицированный бэкдор Radmin Server: Во время волны 28 мая неподписанный загрузчик, помещенный в каталог html/, выполнил rsetup64.exe /intsetup, скрытно установив модифицированную версию коммерческого инструмента удаленного администрирования Radmin Server для обеспечения постоянного удаленного доступа.
Модифицированный бэкдор Radmin Server: Во время волны 28 мая неподписанный загрузчик, помещенный в каталог html/, выполнил rsetup64.exe /intsetup, скрытно установив модифицированную версию коммерческого инструмента удаленного администрирования Radmin Server для обеспечения постоянного удаленного доступа.
- Интеграция C2 Adaptix: По крайней мере с начала июля 2026 года наблюдалось, как злоумышленник развертывал фреймворк C2 Adaptix по всей своей инфраструктуре storage-data.com.
Интеграция C2 Adaptix: По крайней мере с начала июля 2026 года наблюдалось, как злоумышленник развертывал фреймворк C2 Adaptix по всей своей инфраструктуре storage-data.com.
Основной загрузчик: CROSSROAD
Основной загрузчик этапа 2 (upgrade-now.exe, SHA256: 9a58e8f49edf5644e5728f74cf36f560d3d486fa51db4db69d927963c7aca450) — это 64-битный исполняемый файл Windows, написанный на C, отслеживаемый GTIG как семейство вредоносного ПО CROSSROAD. Поставляемый внутри upgrade-now.zip, CROSSROAD отвечает за проверку среды, активную очистку конечной точки, подготовку пакета вторичной полезной нагрузки и создание запланированных задач для обеспечения постоянства набора бэкдоров этапа 3.
- Проверка пути: В рамках своей процедуры конфигурации CROSSROAD проверяет, содержит ли путь к его файлу подстроку AOMEI. Если подстрока отсутствует, он инициирует процедуру самоудаления; однако он не прерывает работу, продолжая как фоновую очистку конфигурации, так и процедуры загрузчика независимо от этого.
Проверка пути: в рамках своей процедуры конфигурации CROSSROAD проверяет, содержит ли путь к его файлу подстроку AOMEI. Если подстрока отсутствует, он инициирует процедуру самоудаления; однако он не прерывает работу, продолжая как очистку фоновой конфигурации, так и процедуры загрузчика.
- Защитные механизмы выполнения: перед переходом к вторичным загрузкам CROSSROAD выполняет две основные проверки:
Защитные механизмы выполнения: перед переходом к вторичным загрузкам CROSSROAD выполняет две основные проверки:
- Проверка геолокации: запрашивает внешнюю систему доменных имен (DNS) (myip.opendns.com, o-o.myaddr.l.google.com) и службы HTTP-отражения (checkip.amazonaws.com, api.ipify.org, ifconfig.me/ip, icanhazip.com) с использованием пользовательских агентов (Anyviewer-loader/1.0, Anyviewer-ipcheck/1.0). В определенных ветках выполнения, если возвращаемый код страны — «CN» (Китай), загрузчик прерывает выполнение основной полезной нагрузки.
Проверка геолокации: запрашивает внешнюю систему доменных имен (DNS) (myip.opendns.com, o-o.myaddr.l.google.com) и службы HTTP-отражения (checkip.amazonaws.com, api.ipify.org, ifconfig.me/ip, icanhazip.com) с использованием пользовательских агентов (Anyviewer-loader/1.0, Anyviewer-ipcheck/1.0). В определенных ветках выполнения, если возвращаемый код страны — «CN» (Китай), загрузчик прерывает выполнение основной полезной нагрузки.
- Блокировка мьютекса: захватывает именованный мьютекс Global\{F9E6E3C0-E11A-4F85-9944-AF4AD6E05883}, чтобы предотвратить запуск нескольких одновременных экземпляров на одном хосте.
Блокировка мьютекса: захватывает именованный мьютекс Global\{F9E6E3C0-E11A-4F85-9944-AF4AD6E05883}, чтобы предотвратить запуск нескольких одновременных экземпляров на одном хосте.
- Откат артефактов хоста и антикриминалистика: чтобы усложнить анализ после инцидента и криминалистическую реконструкцию, загрузчик систематически возвращает локальные конфигурации в исходное состояние во время цикла выполнения. Вредоносная программа анализирует down_html.ini (расположенный в <install_dir>\..\..\), восстанавливая параметр потока обновления (thrid) до значения по умолчанию 5 и перенаправляя URL-адрес загрузки обновления обратно на легитимную инфраструктуру распространения AOMEI (https://www2.aomeisoftware.com/download/abpopup/).
Откат артефактов хоста и антикриминалистика: чтобы усложнить анализ после инцидента и криминалистическую реконструкцию, загрузчик систематически возвращает локальные конфигурации в исходное состояние во время цикла выполнения. Вредоносная программа анализирует down_html.ini (расположенный в <install_dir>\..\..\), восстанавливая параметр потока обновления (thrid) до значения по умолчанию 5 и перенаправляя URL-адрес загрузки обновления обратно на легитимную инфраструктуру распространения AOMEI (https://www2.aomeisoftware.com/download/abpopup/).
- Подготовка и извлечение полезной нагрузки этапа 3: если проверки среды пройдены, CROSSROAD загружает https://promotion.storage-data.com/config/component.zip (также наблюдался как en.zip) в %TEMP%\svc<random_hex>.tmp и распаковывает его содержимое в локальную папку данных приложения пользователя с помощью встроенной библиотеки miniz.
Подготовка и извлечение полезной нагрузки этапа 3: если проверки среды пройдены, CROSSROAD загружает https://promotion.storage-data.com/config/component.zip (также наблюдался как en.zip) в %TEMP%\svc<random_hex>.tmp и распаковывает его содержимое в локальную папку данных приложения пользователя с помощью встроенной библиотеки miniz.
- Закрепление через запланированную задачу: чтобы обеспечить непрерывное выполнение подготовленного пакета полезной нагрузки, upgrade-now.exe регистрирует постоянную запланированную задачу с именем RadminComponentRuntime (настроенную с описанием «Radmin Component runtime checkable.»). Задача настроена на выполнение %LOCALAPPDATA%\Radmin\FamItrfc.exe --runtimechk каждые три часа.
Закрепление через запланированную задачу: чтобы обеспечить непрерывное выполнение подготовленного пакета полезной нагрузки, upgrade-now.exe регистрирует постоянную запланированную задачу с именем RadminComponentRuntime (настроенную с описанием «Radmin Component runtime checkable.»). Задача настроена на выполнение %LOCALAPPDATA%\Radmin\FamItrfc.exe --runtimechk каждые три часа.
- Самоудаление (--nitrod): после извлечения пакета полезной нагрузки и создания запланированной задачи CROSSROAD удаляет себя с диска. Чтобы обойти ограничения Windows на блокировку файлов, исполняемый файл создает свою копию во временной папке и выполняет ее с параметром --nitrod, передавая PID родительского процесса через NITRODP и путь к исходному исполняемому файлу через NITRODT. Дочерний процесс ожидает завершения родительского, переименовывает основной поток :$DATA исходного бинарного файла в альтернативный поток данных с именем :wtfbbq через SetFileInformationByHandle и устанавливает флаг FileDispositionInfo с DeleteFile = TRUE для удаления бинарного файла при закрытии дескриптора.
Самоудаление (--nitrod): после извлечения пакета полезной нагрузки и создания запланированной задачи CROSSROAD удаляет себя с диска. Чтобы обойти ограничения Windows на блокировку файлов, исполняемый файл создает свою копию во временной папке и выполняет ее с параметром --nitrod, передавая PID родительского процесса через NITRODP и путь к исходному исполняемому файлу через NITRODT. Дочерний процесс ожидает завершения родительского, переименовывает основной поток :$DATA исходного бинарного файла в альтернативный поток данных с именем :wtfbbq через SetFileInformationByHandle и устанавливает флаг FileDispositionInfo с DeleteFile = TRUE для удаления бинарного файла при закрытии дескриптора.
- Информация о версии: исполняемый файл содержал стандартные метаданные версии PE с примечательной опечаткой: «ProductName: AOMEI Update Compent».
Информация о версии: исполняемый файл содержал стандартные метаданные версии PE с примечательной опечаткой: «ProductName: AOMEI Update Compent».
Рисунок 5: Профилирование жертвы, логика доставки вредоносного ПО
Полезная нагрузка этапа 3: SHINYROAD и Radmin Suite
Архив полезной нагрузки, распакованный CROSSROAD в %LOCALAPPDATA%\Radmin\, содержит пакет администрирования Famatech Radmin 3.x, используемый для доставки модульного бэкдора SHINYROAD. Вредоносная программа не имеет собственного механизма закрепления и полностью полагается на внешнюю запланированную задачу, зарегистрированную CROSSROAD для выполнения.
- Выполнение через перехват порядка поиска DLL (BlkScrDl.dll): выполнение начинается, когда постоянная запланированная задача RadminComponentRuntime запускает легитимный подписанный бинарный файл Radmin %LOCALAPPDATA%\Radmin\FamItrfc.exe --runtimechk (или FamItrf2.exe). Во время запуска исполняемый файл Radmin перехватывается для загрузки неподписанной DLL злоумышленника, BlkScrDl.dll, через перехват порядка поиска. Злоумышленник назвал эту DLL так, чтобы она маскировалась под легитимную библиотеку драйвера «пустого экрана» Radmin.
Выполнение через перехват порядка поиска DLL (BlkScrDl.dll): выполнение начинается, когда постоянная запланированная задача RadminComponentRuntime запускает легитимный подписанный бинарный файл Radmin %LOCALAPPDATA%\Radmin\FamItrfc.exe --runtimechk (или FamItrf2.exe). Во время запуска исполняемый файл Radmin перехватывается для загрузки неподписанной DLL злоумышленника, BlkScrDl.dll, через перехват порядка поиска. Злоумышленник назвал эту DLL так, чтобы она маскировалась под легитимную библиотеку драйвера «пустого экрана» Radmin.
- Развертывание в разделяемой памяти и внутрипроцессном COM-сервере: при выполнении BlkScrDl.dll находит config.zip в своем рабочем каталоге, отображает его необработанное содержимое в раздел разделяемой памяти с именем Local\963d3c60-d406-4ad6-aa1e-dc8e45061ccf и динамически регистрирует csvc\RuntimeComponent.dll в качестве внутрипроцессного COM-сервера с CLSID {21191641-0D7F-4CD9-9572-01AAE6E7851B} и AppID {9AD3E98A-4C7E-4F37-982D-D73D41E4F91B}.
Развертывание в разделяемой памяти и внутрипроцессном COM-сервере: при выполнении BlkScrDl.dll находит config.zip в своем рабочем каталоге, отображает его необработанное содержимое в раздел разделяемой памяти с именем Local\963d3c60-d406-4ad6-aa1e-dc8e45061ccf и динамически регистрирует csvc\RuntimeComponent.dll в качестве внутрипроцессного COM-сервера с CLSID {21191641-0D7F-4CD9-9572-01AAE6E7851B} и AppID {9AD3E98A-4C7E-4F37-982D-D73D41E4F91B}.
- Инициализация этапа 2 через COM-триггер и встроенная виртуальная машина PocketPy: когда процесс Radmin создает экземпляр зарегистрированного CLSID, подсистема Windows COM загружает DLL. DLL считывает config.zip непосредственно из разделяемой памяти, извлекает зашифрованную полезную нагрузку metadata.dat и расшифровывает ее с помощью ChaCha20 с ключом и вектором инициализации (IV), полученными через HMAC-SHA256. Расшифрованная полезная нагрузка состоит из скомпилированного байт-кода Python, который RuntimeComponent.dll выполняет внутри встроенного интерпретатора PocketPy, устанавливая первоначальное C2-соединение с 8.218.65.184:443.
Инициализация этапа 2 через COM-триггер и встроенная виртуальная машина PocketPy: когда процесс Radmin создает экземпляр зарегистрированного CLSID, подсистема Windows COM загружает DLL. DLL считывает config.zip непосредственно из разделяемой памяти, извлекает зашифрованную полезную нагрузку metadata.dat и расшифровывает ее с помощью ChaCha20 с ключом и вектором инициализации (IV), полученными через HMAC-SHA256. Расшифрованная полезная нагрузка состоит из скомпилированного байт-кода Python, который RuntimeComponent.dll выполняет внутри встроенного интерпретатора PocketPy, устанавливая первоначальное C2-соединение с 8.218.65.184:443.
Эволюция архитектуры SHINYROAD
Анализ более ранних вариантов кампании показал, что SHINYROAD полагается на пользовательские расширения уровня C (_pyio_compat, _pyio_struct и pkpy), чтобы избежать загрузки стандартных библиотек Python с диска:
- Пользовательский бинарный протокол C2: ранние варианты обменивались данными по протоколу TCP (8.218.65.184:41397). Агент генерирует уникальный идентификатор путем снятия отпечатков имени хоста и имени пользователя, проходит аутентификацию с помощью жестко закодированного ключа рукопожатия и динамически переводит все последующие коммуникации на использование симметричного шифрования, производного от этого уникального идентификатора.
Пользовательский бинарный протокол C2: ранние варианты обменивались данными по протоколу TCP (8.218.65.184:41397). Агент генерирует уникальный идентификатор путем снятия отпечатков имени хоста и имени пользователя, проходит аутентификацию с помощью жестко закодированного ключа рукопожатия и динамически переводит все последующие коммуникации на использование симметричного шифрования, производного от этого уникального идентификатора.
- Возможности в оперативной памяти: движок поддерживает интерактивный удаленный доступ к оболочке (os.system), создание «шума» в трафике (генерация случайных мусорных пакетов для нарушения сетевых сигнатур) и динамическое расширение в оперативной памяти через менеджер потоков pkpy WorkPool без записи скриптовых модулей на диск.
Возможности в оперативной памяти: движок поддерживает интерактивный удаленный доступ к оболочке (os.system), создание «шума» в трафике (генерация случайных мусорных пакетов для нарушения сетевых сигнатур) и динамическое расширение в оперативной памяти через менеджер потоков pkpy WorkPool без записи скриптовых модулей на диск.
Постэксплуатация: тема Nitro PDF и C2 Adaptix
Рисунок 6: Закрепление в системе через запланированную задачу NitroRuntime









