ClickFix, DenoRAT и NightshadeC2: атака TAG-150 на финансовый сектор через многоступенчатую цепочку с Deno-средой

APT

В июне 2026 года подразделение реагирования на угрозы eSentire (TRU) прервало вредоносную команду в инфраструктуре клиента из финансового сектора. Повторное исследование показало, что злоумышленники применяли ClickFix - социально-инженерную технику, заставляющую пользователя выполнить команду из диалогового окна Run. В результате атаки на систему устанавливались три компонента: загрузчик DinDoor на языке Deno, DenoRAT и сложный стилер NightshadeC2, связанный с группой TAG-150, активной с марта 2025 года.

Описание

Начальная точка атаки - маскировка под исправление ошибки. Пользователь получал сообщение с поддельным уведомлением об ошибке, после чего вручную запускал PowerShell-команду из настроек Windows. Команда скачивала MSI-установщик с удаленного сервера, который затем записывал и исполнял скрипт Griffin20.ps1. Этот скрипт, как отмечают исследователи, был сгенерирован с помощью искусственного интеллекта. Его задача - установить среду выполнения Deno, если она отсутствует, и запустить загрузчик DinDoor. Для установки Deno Griffin20.ps1 использовал менеджеры пакетов Winget или Scoop, попутно добавляя в переменную PATH соответствующий каталог.

После запуска Deno загружал файл DinDoor, который представляет собой компактный цикл eval-инструкций. DinDoor связывался с командно-контрольным сервером (C2) webstizkgao[.]com и получал оттуда второй загрузчик, скрывающийся под названием "launcher-2". Этот фрагмент кода, обфусцированный с помощью сервиса Obfuscator.io, отвечал за три действия: закрепление в системе, регистрацию зараженного хоста на C2 и загрузку основного трояна DenoRAT.

Закрепление реализовывалось через запись DinDoor на диск и создание значения в ветке реестра HKCU Run. Команда PowerShell запускала conhost.exe, который в свою очередь выполнял файл Deno, загружая сохраненный скрипт. Таким образом, после перезагрузки системы цепь атаки восстанавливалась. Второй загрузчик передавал в C2 учетные данные в виде JWT-токена, содержащего идентификатор кампании, и получал в ответ уникальный идентификатор для последующей загрузки основного полезного кода.

Сам DenoRAT - это троян, написанный на Deno-JavaScript и насчитывающий более 10 000 строк кода. Он использует интерфейс внешних функций Deno для прямых вызовов API Windows из библиотек kernel32.dll и user32.dll. Это позволяет ему выполнять широкий спектр команд: от удаленной оболочки и снятия скриншотов до кражи данных из браузеров и криптокошельков.

Как показал анализ eSentire, DenoRAT поддерживает два способа связи с C2: через WebSocket или HTTP-опросы. В данном случае применялся HTTP. Троян выполняет задачи, получаемые с сервера: exec (запуск команд cmd), exec-ps (PowerShell), sysinfo (сбор информации о системе), stealer (кража данных браузеров, криптокошельков, менеджеров паролей, токенов Discord), screenshot, vnc (трансляция рабочего стола с возможностью удаленного управления мышью и клавиатурой) и файловые операции.

Особый интерес представляет функциональность, связанная с обходом шифрования App-Bound Encryption в браузерах на основе Chromium. DenoRAT завершает все процессы браузеров (Chrome, Edge, Brave, Opera и другие), затем проверяет, не установлен ли ESET. Если ESET обнаружен, внедрение пропускается, вероятно, потому, что злоумышленники знают, что ESET обнаруживает данную технику. После этого троян создает именованный канал, запускает браузер в приостановленном состоянии и внедряет DLL-библиотеку через вызовы VirtualAllocEx, WriteProcessMemory и CreateRemoteThread. В качестве DLL используется модификация открытого инструмента ChromElevator, позволяющая расшифровывать App-Bound ключи.

DenoRAT собирает информацию об установленных средствах защиты, проверяя наличие каталогов таких продуктов, как Microsoft Defender, Kaspersky, ESET, CrowdStrike, SentinelOne, Carbon Black и еще нескольких десятков. Эта информация отправляется на C2 вместе с данными о системе.

Завершающая стадия цепочки - загрузка и выполнение NightshadeC2. DenoRAT получает задачу на выполнение PowerShell, который скачивает самодостаточный архив Python и скомпилированный скрипт install.pyc. Этот скрипт расшифровывает RC4-шифрованный контейнер, извлекая полноценный загрузчик шелл-кода на Python. Загрузчик использует AES-256-CBC для расшифровки файла-контейнера, содержащего PE-образ NightshadeC2. Затем через рефлексивную инъекцию (рефлексивный загрузчик PE) код выполняется в памяти процесса Python, минуя диск. При этом загрузчик подменяет записи PEB (блока среды процесса) для обхода детектирования.

NightshadeC2 - это полнофункциональный стилер и RAT, который в дополнение к обычным функциям кражи данных способен обходить App-Bound Encryption внутри браузера, не полагаясь на DLL-инъекцию DenoRAT. Группа TAG-150, стоящая за этой кампанией, использует комбинацию Deno-среды и традиционных методов загрузки для достижения высокой скрытности и сложности обнаружения.

Последствия атаки для финансового сектора особенно опасны: кража учетных данных, криптокошельков, сессионных токенов, а также возможность удаленного доступа к инфраструктуре. Многоступенчатая цепочка с применением нехарактерного инструментария (Deno, Python-стилеров) затрудняет анализ и создание сигнатур. Защита требует сочетания поведенческого мониторинга, отключения выполнения PowerShell без необходимости, блокировки подозрительных команд из Run и контроля за установкой сред выполнения, таких как Deno, в корпоративной среде.

Индикаторы компрометации

Domain

  • columbnezhjdq.com
  • smallsmokik.com
  • webstizkgao.com

URL

  • http://webstizkgao.com/health
  • http://webstizkgao.com/message-event
  • http://webstizkgao.com/user

SHA256

  • 1f233db3e59051811e16c65e32121f69dd80e91567002978e47a613a5a4903b0
  • 6103228087aaee53f37db88ab7aa1e7e5dd8c27a395bef7e3af985774a888c94
  • a06d514a34d2ab08c3a13a58056827c50ba9bf01b68ca4b2cecb4e1462af53fa
  • b4fd836b82f2d8daf8b90a95046987e993e5687707fc57b527a8145d865e3fdc
  • c1e0a0543b12c64726f8bb36389010d7f35e57993a22ce5b73c56b9cc2a87a00
  • c2cdf1ecd6684bbcef0405444a570a76e9589bbd563476b08788bde34d83b511
  • e0dd60bb3a409029988db6a10cb1e36586c2636da9eff3a3587bc38473fde54b
  • fa0d1adb545881a2d8a508191961a9fd39485c4ac2a0f20ad8e2f931dc45c9ef

Комментарии: 0