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-ловушки, и инструментарий сам отчитался о сквозной компрометации 21 раз. Kinryū Labs с высокой уверенностью оценивает, что godhive — это специально созданное киберпреступное ПО, а не рядовой майнер: он несёт собственный бренд, его имя отсутствует в публичной threat intelligence, а восстановленный бинарник содержит 946 отдельных исходных модулей Rust и месяцы разработки.

Оператор ни разу не тянул фреймворк по URL. Он вставлял ELF в контейнер напрямую, через base64-printf, кусок за куском. Поскольку ловушка залогировала каждый кусок, мы полностью восстановили бинарник из собственного захвата: 215 кусков, собранных в 6,2-МБ x86-64 ELF (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_*.

Оператор создаёт из alpine:latest контейнер, который privileged: true, использует network_mode: host и bind-монтирует всю файловую систему хоста на чтение-запись (/:/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, чтобы расширить охват. Собственный инструментарий оператора залогировал docker_attack_chain_complete 21 раз против нашего сенсора.

Майнинг — это наименьшее из всего

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

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

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

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

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

Образец, который первым отметил эту кампанию, — легитимный, подписанный бинарник ngrok, стянутый с собственного CDN ngrok. Это не малварь. Это коммерческий инструмент обратного туннелирования, и антивирусные движки помечают его как хактул именно потому, что он настолько полезен после компрометации. Как только godhive получает выполнение кода внутри привилегированного контейнера, ngrok дозванивается до облака ngrok и выставляет выбранный локальный сервис через публичный URL, не открывая ни одного входящего порта и не оставляя ничего, что мог бы остановить периметровый фаервол или egress-only NAT. Оператор подтвердил туннель, опросив локальный agent-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, восемь каналов software-as-a-service и Telegram как основной канал оператора. Детектор «прожига» следит за серией пустых опросов команд и автоматически мигрирует оператора на свежую инфраструктуру с зашифрованной резервной копией конфига, а функция федерации поддерживает координацию между несколькими ботами.

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

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

При всей этой инженерии развёртывание небрежно в тех местах, которые важны. Кампания шла с единственного потребительского мобильного подключения Verizon Wireless в США (174.230.35[.]232, обратный DNS 232.sub-174-230-35.myvzw.com, Гейнсвилл, Флорида), а не с bulletproof-хоста или 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); egress на bin.equinox.io с сервера — это и есть сигнал
127.0.0.1:4040/api/tunnelsОпрос локального агента ngrok (читает назначенный публичный URL туннеля)
169.254.169.254/latest/meta-data/SSRF к облачным метаданным для кражи учётных данных
api.telegram.orgC2 и эксфильтрация через Telegram-бота; egress с серверных нагрузок — это сигнал для охоты
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, используемые для подделки TLS SNI; поднимайте тревогу, когда они разрешаются в не-Google IP

Актор, идентичность 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 (6,2-МБ x86-64 ELF, отсутствует на VirusTotal). Заголовки его ELF намеренно повреждены, чтобы заявлять ~106 МБ и указывать на код за концом файла, ломая стандартные инструменты.
  • Закрепление на хосте: /etc/godhive, /host/usr/local/bin/sysd (фальшивый бинарник systemd), /host/tmp/godhive_deployed.txt, процесс godhive_c2, кастомный внутриконтейнерный образ godhive:latest.
  • Сигнатура побега из контейнера: контейнер, созданный с Privileged:true, network_mode:host и bind-монтированием /:/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* с серверов, а также на опрос agent-API ngrok 127.0.0.1:4040/api/tunnels.
  • Поднимайте тревогу на любой контейнер, созданный с Privileged:true и bind-монтированием /:/host; эта пара — почти верная попытка побега.
  • Поднимайте тревогу на egress на 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, который разрешается в не-Google IP, и manifest.googlevideo.com от не-браузерных процессов, за формирование трафика.

Меры противодействия

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

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

ТактикаТехника
Initial AccessT1190 Exploit Public-Facing Application (Docker API; Redis, Kubernetes, WordPress, Log4Shell в арсенале)
ExecutionT1610 Deploy Container; T1059.004 Unix Shell
Privilege EscalationT1611 Escape to Host (привилегированный контейнер, монтирование хоста)
PersistenceT1543 Create or Modify System Process (sysd); T1542.003 Bootkit (UEFI); T1014 Rootkit
Defense EvasionT1562.001 Impair Defenses (убийца EDR); T1070 Indicator Removal (удаление логов); T1497 Virtualization/Sandbox Evasion (обнаружение ловушек/ВМ); T1036 Masquerading (sysd, YouTube SNI); T1027 Obfuscated Files (повреждённый ELF)
Credential AccessT1003.008 /etc/passwd and /etc/shadow; T1552.004 Private Keys; T1552.005 Cloud Instance Metadata API
DiscoveryT1046 Network Service Scanning (Masscan, Nuclei)
Command and ControlT1572 Protocol Tunneling (ngrok); T1090 Proxy; T1071.001 Web Protocols (Telegram, Cloudflare Workers); T1102 Web Service (GitHub gists, SaaS-каналы)
ImpactT1496 Resource Hijacking (XMRig); T1486 Data Encrypted for Impact (программа-вымогатель); T1657 Financial Theft (опустошение бирж и DeFi); T1498 Network Denial of Service

Методология и заметки

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