Изследователи по киберсигурност хвърлиха светлина върху недокументирана досега рамка за зареждане (loader), базирана на Go, наречена HollowFrame, и семейство зловреден софтуер, базиран на Rust, проследявано като Matryoshka.
Според Blackpoint Cyber, последователността на компрометиране започва с насочено фишинг съобщение (spear-phishing), съдържащо връзка към криптиран архив, в който се намира пряк път за Windows (LNK). Стартирането на файла задейства многостепенна верига, която включва ескалация на привилегии, отслабване на защитите на Microsoft Defender и изтегляне на допълнителен злонамерен код.
Докато HollowFrame се стартира чрез двойка за странично зареждане на DLL (DLL side-loading), състояща се от легитимен двоичен файл на Python („python.exe“) и зловреден DLL („python311.dll“), Matryoshka се среща в два варианта – един, който поддържа комуникация, базирана на HTTP, и изпълнение на команди, и друг, който използва GitHub за управление и контрол (C2), включително изпращане на сигнали (beaconing), възлагане на задачи, разузнаване, трансфер на файлове и доставяне на вторичен злонамерен код.
„Заедно HollowFrame и Matryoshka осигуряват на атакуващия устойчиво присъствие за отдалечено изпълнение на команди, разузнаване на Active Directory, трансфер на файлове и внедряване на последващи инструменти“, заявяват изследователите по сигурността Неван Бийл и Сам Декър. „Тези възможности биха могли да подпомогнат кражбата на идентификационни данни, страничното движение (lateral movement) и по-широкото компрометиране на домейна чрез допълнителни инструменти, доставени след първоначалния достъп.“
Компанията за киберсигурност сподели, че многостепенното проникване е насочено към две крайни точки в неопределена адвокатска кантора, като LNK файлът се маскира като „Case Documents“ („Документи по делото“), за да подведе получателя да кликне върху него и да активира командна последователност, която използва PowerShell за изтегляне на компоненти от следващ етап от отдалечен сървър („2.26.252[.]84“).
HollowFrame работи като модулен заредител и рамка за поддържане на присъствие, която поддържа различни методи за зареждане на спомагателни компоненти, като същевременно извършва проверки срещу анализ, за да избегне стартиране в изолирани среди (пясъчници). Това се определя въз основа на времето на работа на системата (uptime), инсталираната памет, броя на файловете в потребителския профил и движението на курсора. Устойчивостта се постига чрез създаване на планирана задача (scheduled task).
Заредителят на Go идва с вграден криптиран контейнер, който след това се разопакова, за да стартира втора верига за странично зареждане с цел внедряване на Matryoshka („version.dll“) – бекдор, базиран на Rust, който комуникира със своя C2 сървър („45.158.196[.]184:8888“) през HTTP за стартиране на обвивка (shell) и доставяне на допълнителни инструменти.
Втори DLL файл („wtsapi32.dll“), възстановен във връзка със същата дейност, е идентифициран като вариант на Matryoshka, който използва частно хранилище в GitHub („adioziaete/memio“), за да проверява за специфични за жертвата команди, да изпраща резултати и да изтегля зловреден код.
„Хранилището функционираше като колекция от пощенски кутии за всяка отделна хост машина, като на всяка жертва беше присвоена специална директория <computer>_<username>“, обясняват от Blackpoint. „Тези директории съдържаха beacon.json, cmd.json, result.json и, в някои случаи, дървовидна структура upload/ за доставяне на файлове.“
„Тази структура позволяваше на оператора да управлява задачите и резултатите за отделните крайни точки чрез GitHub, без да поддържа персонализиран сървър за управление, като същевременно оставяше хронология на версиите на промените в хранилището, освен ако свързаните коммити или самото хранилище не бъдат премахнати.“
Запитване към API на GitHub с потребителското име показва, че акаунтът е създаден на 6 януари 2023 г. и че информацията в профила е актуализирана съвсем наскоро – на 7 юни 2026 г. Към момента не е известно кой стои зад тази дейност.
„В цялата верига всеки етап намаляваше количеството зловредно поведение, видимо в предходния етап“, отбелязват от Blackpoint. „Това разделение затрудни приписването (attribution) и откриването, тъй като нито един компонент не съдържаше пълната логика на инфекцията или пълната картина на C2.“