Эта страница является переводом. Авторитетным считается текст английской версии. Читать на английском

malware · cryptojacking · crypto-stealer · rust · docker · worm · honeypot · monero

godhive: новый Rust-фреймворк для кражи криптовалюты и майнинга

Kinryū Labs проанализировала godhive, новый и ранее не описанный наступательный фреймворк на Rust, зафиксированный при злоупотреблении открытым Docker API в нашей сети ханипотов. Он майнит Monero, опустошает криптовалютные кошельки на крупных биржах и более чем в восьми блокчейнах, распространяется как червь и скрывается за управляющим каналом, построенным с расчётом на устойчивость к блокировке. Мы с высокой уверенностью оцениваем, что это специально созданное криминальное ПО, развёрнутое одним разработчиком, который испытывал собственный инструмент в полевых условиях с потребительского мобильного подключения.

Автор Davis Zheng·

TLP:CLEAR. Разрешено к публичному распространению. Материал получен сетью сенсоров-ханипотов Kinryū Labs. Индикаторы ниже приведены в обезвреженном виде.

Краткая сводка

  • 6,946запросов к Docker API в одной автоматизированной серии
  • 946исходных модулей Rust в двоичном файле
  • 8+блокчейнов в прицеле его дрейнера кошельков
  • 9типов управляющих каналов

godhive представляет собой скомпилированный на Rust фреймворк, сочетающий червя, похититель криптовалюты и майнер; в нашу сеть ханипотов он попал через открытый Docker Remote API. Один оператор провёл интенсивную автоматизированную кампанию против открытого Docker API, повторив полную цепочку атаки 21 раз. Kinryū Labs с высокой уверенностью оценивает, что godhive является специально созданным криминальным ПО, а не типовым майнером: у него есть собственный бренд, его имя отсутствует в публичной threat intelligence, а восстановленный двоичный файл содержит 946 различных исходных модулей Rust и результат месяцев разработки.

Оператор ни разу не загружал фреймворк по URL. ELF-файл переносился в контейнер прямо в командной строке, кусок за куском, через printf с base64. Двоичный файл был полностью восстановлен из этих же встроенных фрагментов оператора: 215 фрагментов собраны в ELF x86-64 размером 6.2 MB (SHA-256 4194f2337c2b261ed6e1fd0b6d18f0ba75388bdc91a2658eb827a154ed784f36), которого нет на VirusTotal.

Ключевое отличие состоит в том, что godhive не является в первую очередь майнером. Майнинг для него запасной вариант. Основной бизнес состоит в краже: автоматические выводы средств на шести крупных биржах и вычистка средств более чем в восьми блокчейнах, причём майнинг Monero включается только тогда, когда кошельки не найдены.

Ключевые оценки
  • godhive представляет собой новое, специально созданное криминальное ПО на Rust. У него собственный бренд, он отсутствует в публичных отчётах и собран из 946 модулей Rust с более чем 18 зависимостями-крейтами. Восстановленный двоичный файл является обширным наступательным инструментарием, а не простым дроппером.
  • Его цель состоит в монетизации, и кража стоит на первом месте. Двоичный файл автоматизирует вывод средств с бирж (Binance, Coinbase, Kraken, Bybit, OKX, KuCoin) и опустошение DeFi-активов в сетях Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche, Cronos и Solana, отдавая приоритет стейблкоинам. Майнинг Monero через XMRig служит запасным вариантом для хостов без кошельков.
  • Что мы наблюдали от начала до конца. Зафиксированная цепочка: открытый Docker API, привилегированный контейнер с файловой системой хоста, смонтированной на чтение и запись, выход на хост, кража /etc/shadow и SSH-ключей, развёртывание XMRig, туннель ngrok для внеполосного доступа и выгрузка данных в Telegram-бот, а затем SSRF к сервису облачных метаданных и сканирование в поисках Kubernetes и Elasticsearch.
  • Управляющий канал построен с расчётом на устойчивость к блокировке. godhive совмещает одноранговую сеть Kademlia, размещённый в блокчейне C2 (EtherHiding), действующий ретранслятор на Cloudflare Workers, алгоритмически генерируемые резервные домены и Telegram, с автоматической миграцией, когда канал перестаёт отвечать.
  • Операционная культура оператора противоположна качеству инструмента. Криминальное ПО промышленного уровня развёрнуто с потребительского мобильного подключения, с жёстко зашитым в открытом виде токеном Telegram и публичным файлообменником, одной шумной серией с одного источника, и это при наличии модуля обнаружения ханипотов. Мы оцениваем, что вероятнее всего речь идёт об одном разработчике, испытывающем собственный фреймворк в полевых условиях.

Доставка: открытый Docker API

Точка входа самая старая в контейнерном мире: Docker Remote API без аутентификации на TCP/2375. Дальше идёт хрестоматийный захват хоста, восстановленный по запросам оператора к Docker API.

Оператор создаёт контейнер из alpine:latest с privileged: true и network_mode: host, монтируя всю файловую систему хоста на чтение и запись (/:/host:rw). Уже одна эта конфигурация контейнера и есть побег: монтирование корня хоста в привилегированный контейнер равнозначно root-контролю над машиной. Затем он вычищает конкурирующие майнеры (pkill -9 xmrig; pkill -9 lolMiner; pkill -9 minerd; pkill -9 godhive_c2), создаёт на хосте каталог закрепления /etc/godhive и читает секреты хоста прямо через точку монтирования, выгружая /etc/shadow и /root/.ssh/authorized_keys.

Только после этого появляется узнаваемый криптоджекинг. godhive скачивает сборку XMRig с анонимного файлообменника, разворачивает её, открывает туннель ngrok для внеполосного доступа и отправляет результаты в Telegram-бот. Завершается всё запросом учётных данных у сервиса облачных метаданных (169.254.169.254) и прощупыванием Kubernetes, Elasticsearch и Kibana для расширения охвата. В ходе серии оператор повторил цепочку 21 раз.

Майнинг здесь наименьшая из проблем

Восстановленный двоичный файл заметно шире той цепочки, которую мы наблюдали в работе. Его 946 модулей Rust и строки сборки складываются в обширный наступательный инструментарий. Часть из них подкреплена скомпилированным кодом (продублированные литералы от мономорфизации Rust, ветви обработки ошибок, каталоги сборки крейтов), другая часть содержит только имена модулей и заготовки конфигурации, поэтому список ниже следует читать в той же мере как намерение, что и как подтверждённую функциональность.

Ядром служит конвейер монетизации. harvester обходит файловую систему в поисках wallet.dat, .env, SSH-ключей и wp-config.php; scorer оценивает BTC, XMR, ETH и Ravencoin по котировкам CoinGecko и ранжирует жертв по стоимости; модуль работы с учётными данными перебирает украденные логины с интеграцией 2CAPTCHA, чтобы обходить проверки при входе; дрейнер выводит средства через биржевую библиотеку CCXT и ончейн-сборы в DeFi, восстанавливая ключи из украденных seed-фраз и выбирая самую дешёвую сеть для каждого вывода. Оставленный разработчиком комментарий в двоичном файле описывает оптимизацию вывода стейблкоинов ради экономии на комиссиях Ethereum, и именно такая проработка отличает работающий дрейнер от proof of concept.

Вокруг этого ядра расположено остальное наполнение: червь, который сканирует с помощью Masscan и Nuclei и эксплуатирует Docker, Redis, Kubernetes, Elasticsearch, WordPress, а также набор уязвимостей Windows и Java, включая Log4Shell; модуль подавления EDR, нацеленный по именам процессов на девять поставщиков защиты конечных точек; пять уровней закрепления вплоть до UEFI-буткита с манипуляцией TPM; система плагинов на WASM для доставки новых возможностей на весь парк заражённых машин без изменения C2; шифровальщик, срабатывающий только при стоимости активов выше порога в 1,000 долларов США; перехватчик буфера обмена; DDoS-модуль; и антифорензика, которая удаляет wtmp, btmp и журналы journald и подбрасывает поддельный шум в syslog, чтобы отнять время у аналитика. Каждый модуль маскируется под поддельным именем процесса sysd, а собственный трафик выдаётся за стриминг YouTube за счёт использования настоящих SNI-имён googlevideo.com.

Две детали смягчают картину. Фреймворк умеет распознавать пятнадцать платформ-ханипотов и целый ряд песочниц и гипервизоров. При этом несколько его конфигураций не доведены до конца: используемый по умолчанию майнинг-пул закрылся в 2022 году, ENS-имя для подмены в буфере обмена так и не было зарегистрировано, а ключ шифрования остаётся заглушкой CHANGE_ME. Функциональность скомпилирована и реальна, но часть её пока не подключена.

ngrok и почему это хактул

Образец, по которому кампания была замечена первой, представляет собой легитимный подписанный двоичный файл ngrok, скачанный с собственной CDN ngrok. Это не вредоносное ПО. Это коммерческий инструмент обратного туннелирования, и антивирусные движки помечают его как хактул именно потому, что он крайне удобен после компрометации. Получив выполнение кода внутри привилегированного контейнера, godhive поднимает исходящее соединение к облаку ngrok и публикует выбранную локальную службу по публичному URL, не открывая входящих портов и не оставляя периметровому межсетевому экрану или NAT, разрешающему только исходящий трафик, ничего, что можно было бы заблокировать. Оператор подтверждал туннель опросом локального API агента ngrok (127.0.0.1:4040/api/tunnels) и отправлял полученный публичный URL в свой Telegram-бот, превращая каждый свежезахваченный хост в готовую ссылку для подключения.

Управляющий канал, рассчитанный на устойчивость к блокировке

godhive не полагается на один C2. Каналы выстроены слоями по тому, насколько трудно устранить каждый из них. В основании лежит одноранговая сеть Kademlia с proof-of-work при подключении и обходом NAT: у неё нет центральной точки, которую можно изъять. Выше находится EtherHiding, где текущий адрес бэкенда хранится в смарт-контракте блокчейна, который нельзя отозвать, и разрешается во время работы через действующий ретранслятор на Cloudflare Workers (c2-proxy.operator.workers[.]dev), скрывающий бэкенд от защитников. Ещё выше расположены алгоритмически генерируемые резервные домены, получаемые по DNS-over-HTTPS с подменённым SNI, скрытый сервис Tor, тайники в GitHub gists, восемь каналов через SaaS-сервисы и Telegram как основной канал оператора. Механизм обнаружения провала отслеживает серию пустых опросов за командами и автоматически переводит оператора на свежую инфраструктуру с зашифрованной резервной копией конфигурации, а функция федерации обеспечивает координацию между несколькими ботами.

Мы внешне сняли отпечаток ретранслятора на Cloudflare Workers и подтвердили, что он работает и обрабатывает запросы: конечные точки регистрации, выдачи задач и панели управления перенаправляются на бэкенд, а неаутентифицированный ввод отклоняется, что согласуется с зашифрованными AEAD токенами, которые двоичный файл использует для аутентификации на C2. За ним оператор держит защищённую административную панель с хешированием паролей Argon2, многофакторной аутентификацией, ролевым доступом и даже постквантовыми вариантами в настройках TLS. Так выглядит отношение к ботнету как к промышленной инфраструктуре, вплоть до экспорта метрик в Prometheus.

Другая половина: любительские операции

При всей инженерной проработке развёртывание небрежно в существенных местах. Кампания велась с одного потребительского мобильного подключения Verizon Wireless в США (174.230.35[.]232, обратный DNS 232.sub-174-230-35.myvzw.com, Гейнсвилл, Флорида), а не с пуленепробиваемого хостинга или VPS, плотной автоматизированной серией без повторного использования инфраструктуры. Токен Telegram-бота жёстко зашит в открытом виде, что даёт единственную точку для блокировки. Полезная нагрузка XMRig раздавалась с публичного анонимного файлообменника. И при всём коде обнаружения ханипотов всё это было развёрнуто одной шумной серией с отслеживаемого адреса.

Двоичный файл собран на macOS, под пользователем dev, в каталоге research/godhive. Вместе с намеренной анонимизацией Telegram-личности оператора, недоделанными конфигурациями и развёртыванием, указывающим на самого себя, наиболее экономное объяснение состоит в том, что это квалифицированный разработчик-одиночка, который тестирует и запускает собственный фреймворк, а не клиент платформы malware-as-a-service. Бренд отполирован: собственный логотип в виде золотого улья и слоган «one mind, one purpose, one hive». Операции такой отделки не получили.

Герб godhive: золотая шестиугольная эмблема с пчелой и короной над надписью GODHIVE и слоганом one mind, one purpose, one hive
Собственный герб godhive, полученный из канала оператора. Из всей операции до конца доведён только бренд.

Атрибуция

Кампания связывается с одним оператором через его инфраструктуру в Telegram. godhive отправляет украденные учётные данные, URL туннелей и подтверждения заражения жёстко прописанному боту @godhive_bot (id бота 8836117161). Перехваченный chat_id соответствует личному аккаунту @godhive77 (id пользователя 7659611777), у которого вместо отображаемого имени стоят подчёркивания и нет фотографии профиля, то есть попытка анонимности, которую сводит на нет сам никнейм godhive77. Тот же оператор держит соответствующий зарезервированный канал @godhive (один подписчик, публичных сообщений нет, пересылка отключена), а последовательный id пользователя Telegram датирует аккаунт концом 2024 года. Никнейм godhive77 остаётся наиболее сильной зацепкой для дальнейшей атрибуции.

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

Инфраструктура атакующего приведена в обезвреженном виде. Легитимные сторонние сервисы, которыми злоупотребляет вредонос, оставлены как есть для целей обнаружения.

Сеть и хост

ИндикаторКонтекст
c2-proxy.operator.workers[.]devДействующий C2-ретранслятор на Cloudflare Workers (сообщить в Cloudflare)
hxxps://files.catbox.moe/p46h39.gzПолезная нагрузка XMRig на анонимном файлообменнике (SHA-256 cb49ae0793b2…)
bin.equinox.io/c/.../ngrok-v3-stable-linux-amd64.tgzЗагрузка ngrok (легитимная CDN); признаком служит исходящее соединение к bin.equinox.io с сервера
127.0.0.1:4040/api/tunnelsОпрос локального агента ngrok (считывает назначенный публичный URL туннеля)
169.254.169.254/latest/meta-data/SSRF к сервису облачных метаданных ради кражи учётных данных
api.telegram.orgC2 и выгрузка данных через Telegram-бот; поисковым признаком служит исходящий трафик от серверных нагрузок
gitlab.com/nzyme/Размещение статически собранных инструментов (sshpass, redis-cli, wget, tor, proxychains)
2captcha.com, hashes.org, nitrxgen.netСервисы решения CAPTCHA и взлома хешей, используемые в конвейере работы с учётными данными
r[1-20]---sn-*.googlevideo.com, manifest.googlevideo.comНастоящие имена хостов CDN YouTube, применяемые для подмены SNI в TLS; сигнализировать, когда они разрешаются в IP, не принадлежащие Google

Актор, идентификаторы C2 и выплаты

ИндикаторКонтекст
174.230.35[.]232Источник кампании (мобильная сеть Verizon Wireless, 232.sub-174-230-35.myvzw.com, Гейнсвилл, Флорида); динамический адрес оператора связи, малопригодный для блокировки
@godhive_bot (id бота Telegram 8836117161)Бот для C2 и выгрузки данных; токен жёстко зашит в двоичном файле (здесь скрыт; передан в Telegram для блокировки)
@godhive77 (id пользователя Telegram 7659611777)Аккаунт оператора для приёма выгружаемых данных и наиболее сильная зацепка для атрибуции
@godhive (id канала Telegram -1002105830453)Зарезервированный канал оператора
49aXwwgXBKRKTUVgYuLy3fZkTeLP3PWgMhwiyK55Ur7WhgYXJ33N8JZG87vzUV1UyVdZzPGLvx1w9YQHk7faWPn1UzJte2RПодтверждённый кошелёк Monero для выплат (связан с рабочей конфигурацией XMRig)
pool.minexmr.com:4444Пул из конфигурации XMRig; minexmr закрылся в 2022 году, поэтому это значение по умолчанию не сработает

Файлы и артефакты

  • Двоичный файл godhive (восстановленный): SHA-256 4194f2337c2b261ed6e1fd0b6d18f0ba75388bdc91a2658eb827a154ed784f36 (ELF x86-64 размером 6.2 MB, отсутствует на VirusTotal). Его заголовки ELF намеренно повреждены: они заявляют размер ~106 MB и указывают на код за концом файла, что ломает стандартные инструменты.
  • Закрепление на хосте: /etc/godhive, /host/usr/local/bin/sysd (двоичный файл, выдающий себя за systemd), /host/tmp/godhive_deployed.txt, процесс godhive_c2, собственный образ godhive:latest, создаваемый в контейнере.
  • Сигнатура побега из контейнера: контейнер, созданный с Privileged:true, network_mode:host и монтированием /:/host:rw.
  • Артефакт сборки: пути cargo в /Users/dev/.cargo/registry/src/ и каталог сборки research/godhive (разработчик на macOS).
  • Признак укрепления хоста вредоносом: пароль Redis установлен в CHANGED_BY_GODHIVE; веб-шелл b374k.php в связке с перебором паролей WordPress.

Поведенческие

  • pkill -9 xmrig|lolMiner|minerd|godhive_c2 с последующим mkdir /host/etc/godhive.
  • Чтение /host/etc/shadow и /host/root/.ssh/authorized_keys через точку монтирования контейнера.
  • Процесс sysd, не являющийся настоящим systemd; записи через efibootmgr, создающие загрузочную запись EFI с меткой «System Core».
  • Рабочий каталог Nuclei /tmp/.nuclei_assault-t*.

Обнаружение

  • Сигнализировать об исходящих обращениях серверов к bin.equinox.io и любым хостам *.ngrok*, а также об опросе API агента ngrok 127.0.0.1:4040/api/tunnels.
  • Сигнализировать о любом контейнере, созданном с Privileged:true и монтированием /:/host: такое сочетание почти наверняка означает попытку побега.
  • Сигнализировать об исходящем трафике серверных нагрузок к api.telegram.org, c2-proxy.operator.workers[.]dev, gitlab.com/nzyme/, 2captcha.com и сервисам взлома хешей.
  • Сигнализировать о процессе sysd, о завершении или остановке агентов EDR (falcon-sensor, SentinelOne, cbdefense, sophos-edr, cylancesvc) и о CONFIG SET requirepass CHANGED_BY_GODHIVE.
  • Рассматривать TLS-соединения с SNI googlevideo.com, разрешающимся в IP, не принадлежащие Google, а также обращения к manifest.googlevideo.com от небраузерных процессов как маскировку трафика.

Меры защиты

  • Никогда не выставляйте Docker API на 2375 без аутентификации. Привяжите его к localhost и включите клиентскую аутентификацию TLS. Это первопричина.
  • Принудительно применяйте no-new-privileges, откажитесь от --privileged и ограничьте монтирование каталогов хоста либо используйте rootless Docker или gVisor.
  • Блокируйте доступ контейнеров к сервису облачных метаданных (169.254.169.254) и требуйте IMDSv2.
  • Фильтруйте исходящий трафик: серверные нагрузки не должны обращаться к анонимным файлообменникам, ngrok, Telegram, сервисам решения CAPTCHA и перечисленным выше площадкам размещения статических инструментов.
  • Включите Secure Boot, чтобы ослабить закрепление через UEFI, и включите защиту от изменения у агентов на конечных точках, которые godhive пытается завершить.
  • Если какой-либо хост мог быть скомпрометирован, немедленно смените API-ключи бирж: godhive автоматизирует вывод средств.

Сопоставление с MITRE ATT&CK

ТактикаТехника
Первоначальный доступT1190 Exploit Public-Facing Application (Docker API; в арсенале также Redis, Kubernetes, WordPress, Log4Shell)
ВыполнениеT1610 Deploy Container; T1059.004 Unix Shell
Повышение привилегийT1611 Escape to Host (привилегированный контейнер, монтирование хоста)
ЗакреплениеT1543 Create or Modify System Process (sysd); T1542.003 Bootkit (UEFI); T1014 Rootkit
Обход защитыT1562.001 Impair Defenses (подавление EDR); T1070 Indicator Removal (удаление журналов); T1497 Virtualization/Sandbox Evasion (обнаружение ханипотов и виртуальных машин); T1036 Masquerading (sysd, SNI YouTube); T1027 Obfuscated Files (повреждённый ELF)
Доступ к учётным даннымT1003.008 /etc/passwd and /etc/shadow; T1552.004 Private Keys; T1552.005 Cloud Instance Metadata API
РазведкаT1046 Network Service Scanning (Masscan, Nuclei)
Управление и контрольT1572 Protocol Tunneling (ngrok); T1090 Proxy; T1071.001 Web Protocols (Telegram, Cloudflare Workers); T1102 Web Service (GitHub gists, каналы SaaS)
ВоздействиеT1496 Resource Hijacking (XMRig); T1486 Data Encrypted for Impact (шифровальщик); T1657 Financial Theft (опустошение биржевых счетов и DeFi); T1498 Network Denial of Service

Методология и примечания

  • Анализ представляет собой статический анализ ELF-файла, полностью восстановленного из встроенных base64-фрагментов самого оператора, перехваченных ханипотом, вместе с разбором захваченного трафика Docker API и санкционированной внешней разведкой действующего ретранслятора оператора на Cloudflare Workers. Вредоносное ПО не запускалось, попыток аутентификации на C2 не предпринималось.
  • Индикаторы приведены в обезвреженном виде, а легитимные сторонние сервисы, которыми злоупотребляет вредонос, оставлены как есть для целей обнаружения.
  • Образцы доступны другим исследователям и специалистам по защите по запросу. Напишите на contact@kinryu.sh, коротко указав, кто вы и для чего они вам нужны.
Sample
godhive · 4194f2337c2b261e…
How to cite
Kinryū Labs (2026). godhive: новый Rust-фреймворк для кражи криптовалюты и майнинга. https://kinryu.sh/ru/reports/godhive-rust-crypto-stealer/