BambooToken е задна врата (backdoor) за Linux, която превръща олекотен протокол за комуникация в канал за дистанционно управление. Новоанализираната мостра може да събира информация за хоста, да изпълнява shell команди и да прехвърля файлове между компрометирана машина и нейния оператор.
Използването на MQTT е забележително, тъй като протоколът е често срещан в среди със свързани устройства (IoT) и използва брокер за препращане на съобщенията.
Анализаторите от Reverser са идентифицирали зловредния софтуер след декодиране на малък вграден конфигурационен блок и проследяване на неговите MQTT заявки (callbacks).
От Reverser посочват в доклад, споделен с Cyber Security News (CSN), че мострата съдържа модул за събиране на инвентаризация на хоста, модул за изпълнение на команди и файлов мениджър, свързани чрез кодирани MQTT теми (topics).
Анализът не установява първоначалния достъп, метода на доставяне, оператора или кампанията срещу жертвите. След като бъде инсталирана на Linux система обаче, задната врата може да предостави на атакуващия практически достъп до системните детайли, изхода от изпълнените команди и локално съхраняваните данни.
BambooToken Linux Backdoor използва MQTT C2
При стартиране BambooToken декодира 59-байтов конфигурационен блок, за да извлече адреса на MQTT брокера и фиксирана групова тема. След това генерира клиентски идентификатор, наподобяващ UUID, за работещия процес.
Програмата се свързва с конфигурирания брокер през TCP порт 2883 и прави повторни опити при неуспех с 15-секундно забавяне. Тя също така регистрира офлайн съобщение за статус – функция, която може да помогне за проследяване на заразена система.
Контролният клиент слуша за съобщения в груповата тема, своя клиентски идентификатор и няколко допълнителни имена на теми. Отделни модули обработват заявките за shell команди и файлови операции.
BambooToken крие както своя зловреден код, така и етикетите на темите чрез повтаряща се XOR операция. Кодирането може да затрудни бързата проверка, но не предлага силна защита, след като ключът е известен. Анализаторите трябва да разглеждат необичайните MQTT сесии от Linux сървъри като следа, а не като окончателно доказателство за компрометиране.
Заявката за shell приема JSON съдържащ операция с име command и препраща предоставения текст към системния shell чрез /bin/sh -c. Изходният резултат се чете на редове от по 1024 байта и се връща към контролера. Всяка заявка стартира отделна команда, вместо да създава персистентен интерактивен терминал.
Тази възможност дава на атакуващия гъвкав начин да инспектира системата, да събира резултати или да подготвя последващи действия. Това подчертава защо специалистите по защита, разследващи съмнително изпълнение на команди, трябва да анализират мрежовия контекст – модел, който се наблюдава и при друг зловреден софтуер за дистанционно управление през MQTT.
Управление на файлове и откриване
Файловият компонент може да изброява директории, да изтегля файлове от жертвата, да качва съдържание и да изтрива обикновени файлове. Изтеглените данни се изпращат на блокове от 128 KiB, с JSON заглавна част, отделена от суровите байтове на файла с NUL символ.
Парсер, който очаква изцяло JSON съобщение, може да пропусне прехвърленото съдържание. Списъците с директории съдържат погрешно написано поле, flies, заедно с имената на файловете, типовете, размерите и времевите печати. Този необичаен детайл в протокола може да помогне на анализаторите да разпознаят декодирания трафик.
Мострата също така адаптира пътища в стил Windows и използва времеви стойности в стил Windows, което подсказва за съвместимост с архитектура за управление, която може да е възникнала на друго място.
Когато получи заявка ONLINE, BambooToken събира потребителско име, hostname, версия на операционната система, идентификатор на машината, мрежови детайли, модел на процесора и информация за процесите.
Тя първо опитва /etc/machine-id, а при неуспех може да използва път под /var/lib/myapp, което може да даде полезна точка за корелация по време на разследване.
Специалистите по защита трябва да търсят непознати Linux ELF файлове, които се свързват с изброения брокер или исторически адрес на порт 2883, и след това да свържат тези събития с дъщерни /bin/sh -c процеси и неочакван достъп до файлове.
Кодираните MQTT теми, полето flies и данните, разделени с NUL байт, могат да укрепят откриването. Подобна активност на задни врати се появява в съобщения за операции със зловреден софтуер, използващ MQTT, но само използването на порта остава слабо доказателство.
Организациите трябва да ограничат ненужния изходящ MQTT трафик, да записват връзките към брокера, да запазват съответните прихващания на мрежов трафик и да изолират заподозрените хостове, преди да събират нестабилни доказателства (volatile evidence).
Тъй като съобщеният адрес е исторически, екипите за реагиране на incidents трябва да потвърдят текущото разрешаване на имена и свързаността, вместо да предполагат, че инфраструктурата е все още активна.
Indicators of compromise (IoCs):-
| Type | Indicator | Description |
|---|---|---|
| SHA-256 | bf0681e43f51e98fe7ec24bf73a43facc66b0feb325a3a835f8f01b2861b926 | BambooToken Linux ELF sample hash |
| SHA-1 | bed2b7acb36e01bf82e8a82e3e163e5cce9b395a | BambooToken Linux ELF sample hash |
| MD5 | b4cff5f5c6088d54df434d628d2e8e57 | BambooToken Linux ELF sample hash |
| GNU Build ID | 65dae98336d48a1926031c3b90d6995c25da6cab | Build identifier for the analysed ELF sample |
| Domain | live-hk[.]c2iznja[.]com | Embedded MQTT broker hostname |
| IP Address | 202.144.192[.]149 | Historical resolution for the embedded broker hostname |
| Network Port | TCP/2883 | Default MQTT connection port |
| MQTT Group Topic | {534E19D5-434B-4cad-A0C2-8D75E0B2FBFC} | Fixed group topic embedded in the sample |
| Encoded MQTT Topic | 647e7d7b7d71 | Computed wire representation for ONLINE |
| Encoded MQTT Topic | 6476777e7a7a70 | Computed wire representation for OFFLINE |
| Encoded MQTT Topic | /7858545e5f | Computed wire representation for /Shell |
| Encoded MQTT Topic | /6d595d57 | Computed wire representation for /File |
| Encoded MQTT Topic | /79554242 | Computed wire representation for /Resp |
| File Path | /var/lib/myapp/machine-id | Fallback machine-identifier storage path used by the implant |
Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.