Специалисты Cado Security Labs (ныне в составе Darktrace) обнаружили новую кампанию криптоджекинга под названием Qubitstrike, нацеленную на незащищенные экземпляры Jupyter Notebook. Зловред сочетает майнинг криптовалюты с кражей учетных данных облачных сервисов и использует Discord для управления через командный сервер (C2). Атака демонстрирует растущую изощренность угроз, эксплуатирующих неправильно сконфигурированные облачные среды.
Описание
Кампания Qubitstrike была впервые зафиксирована в высокоинтерактивной ловушке (honeypot), имитирующей Jupyter Notebook. Злоумышленник из Туниса установил соединение, активировал терминал Jupyter и вручную выполнил серию команд для загрузки и запуска основного скрипта mi.sh. Исследователи предполагают, что атакующий обнаружил уязвимый сервис через системы сканирования, такие как Shodan.
Основная нагрузка кампании размещена на платформе Codeberg - аналоге GitHub, который впервые замечен в активных вредоносных операциях. Скрипт mi.sh выполняет несколько функций: загружает и запускает майнер XMRig, регистрирует механизмы устойчивости через cron, добавляет SSH-ключ злоумышленника, устанавливает руткит Diamorphine, осуществляет поиск и эксфильтрацию учетных данных, а также распространяется на связанные хосты через SSH.
Одной из наиболее примечательных особенностей Qubitstrike является целенаправленный поиск файлов с учетными данными AWS и Google Cloud. Обнаруженная информация передается через API Telegram-бота с именем Data_stealer в приватный чат пользователя z4r0u1. Факт использования приманки (canary token) Cado подтвердил, получив оповещение о попытке применения скомпрометированных учетных данных AWS с IP-адреса в Тунисе.
Для обеспечения скрытности Qubitstrike применяет различные методы: переименование системных утилит (например, curl в zurl), удаление конкурирующих майнеров, остановка сетевых соединений с известными криптоджекинг-серверами и очистка журналов Linux. Устойчивость достигается за счет cron-задач и добавления SSH-ключа в authorized_keys.
Кампания также включает внедрение руткита Diamorphine, который скрывает процессы зловреда. Модуль ядра компилируется непосредственно на целевом хосте, что затрудняет его обнаружение системами защиты. В качестве альтернативы используется метод LD Preload.
Важным элементом инфраструктуры является скрипт kdfs.py, который использует Discord в качестве канала управления. Имплант передает данные о системе, позволяет выполнять команды, загружать и скачивать файлы. Токен Discord защищен многослойным кодированием (Base64, Base32, ROT13), но легко извлекается из кода. Сервер Discord под названием "NETShadow" содержал каналы для управления жертвами, а псевдоним оператора - "BlackSUN".
Qubitstrike представляет собой угрозу для облачных сред, где Jupyter Notebooks развернуты с нарушением правил безопасности. Исследователи рекомендуют не размещать такие сервисы в открытом доступе, использовать аутентификацию и регулярно проверять конфигурации сетевых экранов и групп безопасности. Хотя основная цель атаки - ресурсы для майнинга, доступ к системам открывает возможности для более серьезных нарушений.
Индикаторы компрометации
URLs
- https://codeberg.org/m4rt1/sh/raw/branch/main/kill_loop.sh
- https://codeberg.org/m4rt1/sh/raw/branch/main/killer.sh
- https://codeberg.org/m4rt1/sh/raw/branch/main/xm64.tar.gz
SHA256
- 20a0864cb7dac55c184bd86e45a6e0acbd4bb19aa29840b824d369de710b6152
- 96de9c6bcb75e58a087843f74c04af4489f25d7a9ce24f5ec15634ecc5a68cd7
- 9a5f6318a395600637bd98e83d2aea787353207ed7792ec9911b775b79443dcd
- a34a36ec6b7b209aaa2092cc28bc65917e310b3181e98ab54d440565871168cb
- ae65e7c5f4ff9d56e882d2bbda98997541d774cefb24e381010c09340058d45f
- bd23597dbef85ba141da3a7f241c2187aa98420cc8b47a7d51a921058323d327
Cryptocurrency wallet ID
- 49qQh9VMzdJTP1XA2yPDSx1QbYkDFupydE5AJAA3jQKTh3xUYVyutg28k2PtZGx8z3P2SS7VWKMQUb9Q4WjZ3jdmHPjoJRo