Исследователи информационной безопасности выявили новую волну сложной вредоносной кампании, нацеленной на кражу учётных данных криптокошельков и менеджеров паролей. Злоумышленники используют поддельный сайт-двойник проекта OpenClaw, распространяющий мощный модульный фреймворк, который остаётся незамеченным для автоматических песочниц. Вредоносная программа способна обходить защиту на нескольких уровнях и использует легитимные облачные сервисы для управления заражёнными устройствами и сбора похищенной информации.
Описание
Атака начинается с фишингового сайта openclaw-installer.com, зарегистрированного в марте 2026 года. Он полностью копирует внешний вид настоящего проекта OpenClaw - популярного эмулятора классических игр. Посетитель скачивает архив OpenClaw_x64.7z, внутри которого находится исполняемый файл размером 130 мегабайт. Столь большой объём выбран намеренно: он превышает ограничения по размеру для многих антивирусных сканеров и API облачных песочниц. В метаданных исполняемого файла указано название "Hologram" и описание "Генератор обманчивых объектов для тактического отвлечения", что прямо указывает на вредоносное предназначение.
Перед запуском деструктивной логики дроппер проводит многоэтапную проверку окружения. Он определяет наличие признаков виртуальной машины: проверяет строки BIOS, ассоциированные с VirtualBox, чёрные списки MAC-адресов, имена DLL-библиотек, используемых в песочницах, а также запрещённые имена пользователей. Если эти признаки отсутствуют, программа оценивает аппаратную конфигурацию - количество ядер процессора, объём оперативной памяти, разрешение экрана. Автоматизированные системы анализа обычно используют типовые настройки, и такое несовпадение заставляет дроппер остановиться. Финальный барьер - ожидание реального движения мыши. Ни одна автоматическая песочница не имитирует движения курсора, поэтому вредоносный код активируется только на настоящем устройстве пользователя.
После прохождения всех препятствий Hologram декодирует встроенный скрипт PowerShell, зашифрованный с помощью Base64 и XOR с ключом 44. Скрипт немедленно отключает штатный антивирус Windows Defender: добавляет шесть путей исключений, блокирует облачную защиту и мониторинг поведения. Для обхода статического анализа именования командлетов фрагментируются во время выполнения. Затем скрипт открывает в брандмауэре входящие порты 57001, 57002 и 56001 - именно их будет использовать фреймворк второй стадии.
Из "мёртвой капли" (dead-drop, канала скрытой передачи) - короткой заметки на snippet.host - дроппер получает пароль от защищённого архива и ссылку на командный центр (C2). Шесть модулей второй стадии загружаются на жертвенное устройство и помещаются в папку C:\Users\Public\ с дублированием в Documents, Music, Pictures, Videos. После этого канал Telegram получает информацию о заражённом компьютере: имя пользователя, внешний IP-адрес и метку времени. Передача данных идёт через сервис Hookdeck - webhook-релей, который скрывает подлинный токен бота и не позволяет аналитикам отследить цепочку связи. Как отмечается в отчёте Netskope, такое использование Hookdeck зафиксировано впервые в криминальных кампаниях.
Шесть модулей, известных под общим именем Stealth Packer, написаны на языке Rust и имеют имена, маскирующиеся под легитимные системные процессы: audioeq.exe, virtnetwork.exe, svc_service.exe, OneSync.exe, WinHealhCare.exe и onedrive_sync.exe. Первый из них собирает аппаратный отпечаток (hardware fingerprint) и отправляет его на командный центр, чтобы злоумышленник понял, стоит ли развёртывать полный набор инструментов. Второй открывает основной канал связи с сервером frr.rubensbruno.adv.br - поддоменом, принадлежащим бразильской юридической фирме, который, по всей видимости, был скомпрометирован. Третий модуль использует крейт clroxide - специализированную библиотеку Rust для загрузки среды выполнения .NET (CLR) в адресное пространство процесса. Это позволяет выполнять .NET-сборки в памяти, не оставляя следов на диске. Данная техника ранее встречалась только в инструментарии "красных команд" (тестировщиков на проникновение), но в кампаниях киберпреступников она документируется впервые.
Четвёртый и пятый модули независимо друг от друга реализуют механизмы закрепления в системе (persistence) через ботов Telegram. Даже если основной фреймворк будет удалён, они смогут восстановить контроль. Шестой модуль, onedrive_sync.exe, размером 13 мегабайт, содержит в себе зашифрованную полезную нагрузку (payload). Он расшифровывает её и выполняет в памяти при помощи крейта memexec - отражённой загрузки исполняемого файла (PE) с использованием системных вызовов NtAllocateVirtualMemory и NtProtectVirtualMemory. Такой подход обходит файловые сканеры и полностью скрывает активность от традиционных антивирусов.
Особого внимания заслуживает способность svc_service.exe осуществлять внедрение потоков с помощью прямых системных вызовов NT (NtGetContextThread, NtSetContextThread, NtSuspendThread, NtResumeThread). Поскольку вызовы выполняются напрямую, минуя ntdll.dll, любой программный агент защиты, перехватывающий системные вызовы (хуки) на уровне пользовательского режима, не видит этой активности. Это делает фреймворк практически невидимым для современных решений класса EDR.
Список целей для кражи не зашит в саму программу, а загружается с командного центра в виде обычного текстового файла, замаскированного под расширение .7z. В нём перечислены 250 расширений браузера: 201 криптокошелёк (MetaMask, Phantom, Coinbase, OKX, Rabby, Ronin и другие) и 49 менеджеров паролей и двухфакторных аутентификаторов (Bitwarden, LastPass, 1Password, NordPass, Dashlane, KeePass, Google Authenticator). Злоумышленник может обновлять этот список без перекомпиляции модулей - достаточно поменять файл в репозитории Azure DevOps.
Все три волны кампании - февральская 2026 года (с Vidar и PureLogs), нынешняя Hologram и последующая Pathfinder - используют один и тот же сборочный конвейер. При этом за одиннадцать недель после первой публикации функциональность существенно расширилась: появилась загрузка CLR, отражённая загрузка PE, перехват автозапуска Winlogon и прямые системные вызовы. Инфраструктура постоянно ротируется: по мере того как исследователи блокировали домены, злоумышленники меняли командные центры, телеграм-каналы и пасты на snippet.host и Pastebin. К моменту публикации настоящего отчёта первичный C2 уже был заменён.
Специалисты по защите должны обращать внимание на такие признаки, как необычно большие исполняемые файлы (более 100 Мбайт), запуск PowerShell с фрагментированными командлетами, исходящие соединения к доменам Hookdeck (hkdk.events) и Azure DevOps из процессов, не связанных с разработкой, а также программное изменение правил брандмауэра для входящих портов 56001-57002. Эта кампания показывает, как киберпреступники осваивают передовые методы обхода защиты, используя легитимные сервисы в качестве прикрытия.
Индикаторы компрометации
IPv4
- 147.45.197.92
- 185.196.9.98
- 188.114.97.3
- 193.202.84.14
- 45.55.35.48
- 86.54.42.72
- 91.92.242.30
- 94.228.161.88
IPv4 Port Combinations
- 193.202.84.14:56001
Domains
- frr.rubensbruno.adv.br
- hkdk.events
- hwd.hidayahnetwork.com
- jollymccalister.lol
- loclx.io
- mikolirentryifosttry.info
- openclaw-installer.com
- Rr3Ueff.pw
- serverconect.cc
- snippet.host
- steamhostserver.cc
- transcloud.cc
- zkevopenanu.cfd
URLs
- https://dev.azure.com/sagonbretzpr/
- https://pastebin.com/raw/csi5UqpEw
- https://pastebin.com/raw/fTxiyhbL
- https://pastebin.com/raw/M6KthA5Z
- https://pastebin.com/raw/mcwWi1Ue
- https://pastebin.com/raw/w6BVFFWQ
- https://snippet.host/efguhk/raw
- https://snippet.host/iqqmib/raw
- https://snippet.host/uikosx/raw
- https://snippet.host/wtbtew/raw
SHA256
- 0c4a9d3579485eaf8801e5ac479cd322ee1e7161b54cc24689b891fa82ba0f1e
- 1478ccc61b69cee462ea98621ba53adf2de0ce28355c5c4eafaed6d779c8acda
- 4014048f8e60d39f724d5b1ae34210ffeac151e1f2d4813dbb51c719d4ad7c3a
- 40fc240febf2441d58a7e2554e4590e172bfefd289a5d9fa6781de38e266b378
- 4fcfcb83145223cca6db85e7c840876ec8a56d78efba856ab70287b0e5c8a696
- 605096b9729bd8eedab460dbd4baf702029fb59842020a27fc0f99fd2ef63040
- 6ae9f9cfa8e638e933ad8b06de7434c395ec68ee9cc4e735069bfb64646bb180
- 787a28aff72f2ecd2f5e75baf284e61bda9ab8dd3905822c6f620cce809952e8
- d5dffba463beae207aee339f88a18cfcd2ea2cd3e36e98d27297d819a1809846
- f03736fadffcb7bef122d25d6ace8044378d4fa455f7f48081a3b32c80eb4ed2
- f554b6f34fd2710929d74af550ddb50633d36eaf0533f2d0cbbde75670676486
- fd67063ffb0bcde44dca5fea09cc0913150161d7cb13cffc2a001a0894f12690
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import "pe" rule hologram_dropper { meta: description = "Detects the Hologram/Pathfinder Rust dropper" author = "vegerland@netskope.com - Netskope Threat Labs" threat_name = "Trojan.Rust.Hologram.Dropper" confidence = "high" strings: // Ledger wallet theft targeting — unique capability marker; not present in any other component $ledger = "Ledger Live$Failed to fetch Ledger payload URL: " // Developer CLI argument — confirms authorship across both Hologram and Pathfinder variants $johnpidar = "--johnpidar" condition: filesize >= 100MB and filesize <= 145MB and pe.is_pe and pe.machine == pe.MACHINE_AMD64 and $ledger and $johnpidar } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | rule stealth_packer_implant { meta: description = "Detects the Stealth Packer post-exploitation implant (svc_service.exe)" author = "vegerland@netskope.com - Netskope Threat Labs" threat_name = "Trojan.Rust.Hologram.StealthPacker" confidence = "high" strings: // Original mutex — zero prior public exposure at publication $mutex1 = "Global\\StealthPackerMutex_9A8B7C" // Additional mutex variants observed in related samples $mutex2 = "6TpMUGXh_QnWf8m" $mutex3 = "Vodkfqspmcf" condition: filesize >= 1MB and filesize <= 3MB and pe.is_pe and pe.machine == pe.MACHINE_AMD64 and any of ($mutex*) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | rule hologram_packed_loader { meta: description = "Detects Hologram packed in-memory loader stage (virtnetwork.exe / onedrive_sync.exe / audioeq.exe)" author = "vegerland@netskope.com - Netskope Threat Labs" threat_name = "Trojan.Rust.Hologram.PackedLoader" confidence = "high" strings: // Concatenated ntdll import names from memexec PE parser — compiler artifact unique to this crate layout $nt_concat = "NtAllocateVirtualMemoryNtProtectVirtualMemory" // Fake Microsoft decoy JSON config — cover identity present across all loader components $decoy_config = "\"name\": \"System Service Manager\"," condition: filesize >= 1MB and filesize <= 15MB and pe.is_pe and $nt_concat and $decoy_config } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | rule hologram_tg_dropper { meta: description = "Detects Hologram Telegram-bot update droppers (OneSync.exe / WinHealhCare.exe) — fetch stage-2 archives via dead-drops, exfiltrate victim data via Telegram Bot API" author = "vegerland@netskope.com - Netskope Threat Labs" threat_name = "Trojan.Rust.Hologram.TelegramDropper" confidence = "high" strings: // Compiler-merged field name + Rust source path — artifact unique to this component; absent from all other campaign binaries $chat_id_src = "chat_idsrc\\telegram.rs" condition: filesize >= 3MB and filesize <= 4MB and pe.is_pe and pe.machine == pe.MACHINE_AMD64 and $chat_id_src } |