Иранската хакерска група Nimbus Manticore е свързана с две неизвестни досега семейства зловреден софтуер, които подчертават продължаващата еволюция на нейния инструментариум и вероятно разширяват обхвата на атаките ѝ до системи с Linux и Apple macOS. Това се постига чрез използване на кросплатформени троянци за отдалечен достъп (RAT), разработени с Node.js и JavaScript.
Руската компания за киберсигурност Kaspersky проследява щамовете на злонамерения код под имената NodeRabbit и PollCat. Първата проба от NodeRabbit е открита в система в Афганистан, а последващи случаи са регистрирани на две отделни машини в Египет и Етиопия.
„Операторите на софтуера го разпространяват чрез фишинг съобщения в LinkedIn и други платформи за търсене на работа, които съдържат архиви с модифицирани за злонамерени цели задачи за кодиране“, заявява изследователят по сигурността в Kaspersky Омар Амин. „Подобно на NodeRabbit, PollCat също е кросплатформен RAT, но е написан на обфускиран JavaScript и се разпространява по същия начин.“
Въпреки че в миналото Nimbus Manticore е използвала зловреден код, написан на C, C++ и Go, разчитайки на техники за прихващане на реда на зареждане на DLL (DLL search-order hijacking), новите разкрития отбелязват навлизането на този автор на заплахи в сферата на кросплатформените инструменти.
Развитието идва на фона на бързото разширяване на арсенала от злонамерен софтуер на хакерската група през последните месеци, включително:
- Заден вход (backdoor) за Windows, наречен NightLedger;
- Два специализирани WebSocket тунела – BridgeHead и ArcBridge;
- Заден вход със съвпадащи елементи с TWOSTROKE.
Първоначалната точка на компрометиране при засичената активност в Афганистан започва с ZIP архив („Front-Technical-Challenge.zip“), хостван в AWS. Оценява се, че е бил изпратен под прикритието на предложение за работа за инженерна позиция. Атакуващият се е представил за специалист по подбор на персонал в голяма технологична компания, свързал се е със софтуерен инженер и го е поканил да изпълни техническо задание.
Следва да се отбележи, че Nimbus Manticore е позната и под наименованието Iranian Dream Job заради използването на примамки, свързани с кариерни възможности – тактика, отдавна прилагана и от севернокорейската Lazarus Group.
Архивът съдържа изходен код за инструмент за управление на проекти, наречен Taskflow, и дава указания на кандидатите да „открият и отстранят всички грешки във фронтенд кода“ в рамките на три часа, без да използват инструменти с изкуствен интелект (AI).
Инструкциите изрично изискват от кандидатите да не променят сървърния компонент на приложението („server.js“), твърдейки, че то „работи коректно и няма грешки“. Тъкмо в този файл обаче е инжектиран злонамереният код.
„Първият ред на server.js импортира модифициран npm пакет на име colorized_terminal (версия 2.1.0)“, посочват от Kaspersky. „Атакуващите са включили пакета директно в директорията node_modules на архива, вместо да го публикуват в npm регистъра. При импортиране пакетът незабележимо стартира зловреден имплант от node_modules/.cache/.320697f1/index.js като отделен фонов процес.“
Въпросният имплант е NodeRabbit, който комуникира с един от три Azure C2 (Command-and-Control) адреса (plugplay.azurewebsites[.]net, rgbteller.azurewebsites[.]net и wslwebui.azurewebsites[.]net) чрез три API крайни точки:
- /api/rabbit/checkin – за регистрация на агента и информацията за госта;
- /api/rabbit/task – за проверка за нови команди;
- /api/rabbit/result – за изпращане на резултатите от изпълнените задачи.
Зловредният код поддържа 11 команди, които му позволяват да събира детайли за системата, да изброява работещи процеси, да изпълнява произволни шел команди, да обхожда директории, да чете файлове на части и да връща Base64-кодирани данни, да декодира Base64 текст и да го записва в определен офсет на файл, да изтрива файлове или рекурсивно да премахва директории, да изброява адаптери, MAC/IP адреси и DNS настройки, както и да променя интервала на комуникация.
Друга ключова възможност на NodeRabbit е записването на Base64-кодиран Node.js скрипт в случайно наименуван „.tmp“ файл, изпълнението му и последващото му изтриване с цел заличаване на следите.
От Kaspersky съобщават за откриването на още два варианта на NodeRabbit със същата кодова база в Египет и Етиопия:
- Втори вариант, който използва друг модифициран npm пакет (pretty-log версия 2.1.0) вместо colorized_terminal, прекратява работа при засичане на изолирана среда за анализ (sandbox) и частично поддържа корпоративно прокси;
- Трети вариант, който също се стартира чрез pretty-log, но използва различен набор от API крайни точки (/sdk/v2/ready, /sdk/v2/config, /sdk/v2/events).
Задържането в системата (persistence) се постига според операционната система: чрез реестъра Windows Run при Windows, чрез cron задача при Linux и чрез launch agent при macOS. Механизмът за задържане маскира дейността си като обновление на браузъра Microsoft Edge.