Киберпрестъпници клонират популярни GitHub хранилища за инструменти с изкуствен интелект (AI) и ресурси за разработчици с цел разпространение на софтуер за кражба на информация (infostealer), съобщава Netskope Threat Labs.
Netskope открива кампанията, докато проследява базиран на Windows infostealer, предлаган като услуга (MaaS), за който за първи път бе съобщено през април 2026 г. и който се разпространяваше чрез трика за социално инженерство „ClickFix“.
Продължавайки да следят операцията, изследователите установяват, че групата зад нея е променила метода си на доставка, като вече разпространява злонамерен код чрез фалшиви GitHub хранилища, имитиращи популярни AI ресурси. Netskope проследява тези хранилища под името „TroysDen’s“.
„За да подведат разработчиците, атакуващите клонират добре известни хранилища и незабележимо интегрират злонамерен код. Обикновено те добавят кода в привидно безопасна поддиректория или променят URL адресите в инструкциите за инсталиране. Тъй като основната страница изглежда автентична и е посочен оригиналният съавтор, жертвите се подвеждат да се доверят на GitHub страницата, което ги кара да изтеглят и изпълнят MaaS зловредния софтуер за кражба на информация“, обяснява Netskope.
Сред откритите „примамки“ са фалшиви инструменти, брандирани като Claude, ComfyUI, AI асистенти за програмиране, ръководства за сигурност на Python и Rust платформи.
Скрит интерпретатор, а не компилатор
Злонамереният код пристига в ZIP архив, съдържащ четири файла: два двоични файла (lua51.dll и compiler.exe), команден скрипт (Application.bat) и текстов файл (gc.txt).
Файлът lua51.dll е легитимна библиотека за изпълнение LuaJIT. Една от нейните функции позволява на Lua кода да извиква Windows API функции директно по име по време на изпълнение, така че тези извиквания не се появяват в таблицата за импортиране (import table) на изпълнимия файл, който изпълнява кода.
Въпреки името си, compiler.exe представлява преименуван LuaJIT интерпретатор. Командният скрипт стартира compiler.exe с аргумент gc.txt, което кара интерпретатора да прочете и изпълни съдържанието на текстовия файл. В този момент виртуалната машина Prometheus възстановява злонамерения код от шифрован пул от низове.
Оттам нататък цялата злонамерена дейност, включително мрежови заявки, запис на файлове и създаване на процеси, се изпълнява в рамките на compiler.exe.
Заедно четирите файла съставляват SmartLoader – злонамерен зареждач (loader), който Netskope вече е засичала да се разпространява чрез GitHub хранилища.
От Netskope посочват, че поставянето на кода в обикновен текстов файл вместо в самостоятелен изпълним файл му осигурява „предимство за избягване на защитите“, тъй като автоматизираните скенери и изолираните среди (пясъчници) са склонни да проверяват файловете един по един и нито един от компонентите самостоятелно не задейства предупреждение за сигурност.
Команден център, скрит в блокчейн
SmartLoader започва, като изпраща GET заявка към ip-api.com за събиране на IP адреса на жертвата, държавата, града, часовата зона и интернет доставчика – информация, която може да помогне на атакуващите да решат кои жертви си струва да преследват.
Вместо да кодира твърдо адреса на сървъра, зловредният софтуер извлича IP адреса на своя команден център (C2) от блокчейна Polygon по време на изпълнение – техника, известна като „EtherHiding“. Това става чрез изпращане на заявка към смарт контракт през публични RPC доставчици за получаване на адреса за връзка.
Преди да докладва на сървъра, SmartLoader прави екранна снимка на работния плот на жертвата, която се изпраща заедно с криптиран сигнал (beacon), съдържащ идентификатора на зареждача, идентификатор на устройството, публичното IP на жертвата и версията на операционната система.
Тази конфигурация позволява на атакуващите да местят инфраструктурата си, без да променят самия зловреден софтуер. Ако даден сървър бъде блокиран, те обновяват стойността, съхранявана в смарт контракта, и всяка заразена машина автоматично получава новия адрес.
Отговорът съдържа шифровани конфигурационни данни и списък със задачи, които в този случай указват на SmartLoader да изтегли втория етап, който в крайна сметка доставя софтуера за кражба на данни.
Втори етап със собствена маскировка
Скриптът от втория етап, dist.lua, се изтегля заедно със собствен пакет от LuaJIT интерпретатор и DLL. Статичният анализ свързва неговото обфускиране с MoonSec – различен инструмент от използвания в първия етап, въпреки че в кода не е открит маркер за версията.
„След изпълнението си, Lua скриптът от втория етап е изключително сходен с първия зареждач“, добавят изследователите.
Той използва същия XOR ключ за шифроване на изходящия трафик и декриптиране на сървърните отговори, извършва същата проверка за геолокация и крие адреса на командния си център чрез EtherHiding, като добавя още два RPC доставчика като резервни варианти извън използваните в първия етап.
Netskope открива файловете от втория етап, хоствани в два акаунта в GitHub, създадени с разлика от пет дни през юли 2026 г., като и двата предлагат идентичен злонамерен код. И двата акаунта вече са докладвани за премахване.
Анализът на Netskope върху множество проби разкрива комбинация от инструменти за кражба на данни, включително варианта, базиран на NodeJS, за който компанията съобщи за първи път през април.
Кампанията е насочена към организации в Северна Америка, Азия и Южна Европа, като сред най-засегнатите сектори са финансовите услуги, банковото дело и технологиите.