В феврале текущего года специалисты группы реагирования на инциденты Huntress зафиксировали целенаправленное вторжение в корпоративную сеть, которое наглядно демонстрирует эволюцию тактик злоумышленников. Атака началась с классической, но всё ещё эффективной социально-инженерной уловки, а её кульминацией стало внедрение в инфраструктуру жертвы ранее неизвестного удалённого административного трояна (RAT, Remote Access Trojan) с продвинутым функционалом. Этот случай подчёркивает, что даже сложные многоступенчатые атаки по-прежнему часто опираются на человеческий фактор, а доступные на теневом рынке инструменты становятся всё более изощрёнными и опасными для бизнеса.
Описание
Инцидент начался с техники, известной как ClickFix. Это метод социальной инженерии, при котором жертве в всплывающем окне или сообщении предлагается скопировать и выполнить в командной строке Windows (например, через утилиту "Run" или "cmd.exe") определённую команду. Данный подход позволяет обходить традиционные почтовые фильтры и системы защиты, так как вредоносное действие инициируется самим пользователем. В данном случае команда запускала установку пакета MSI (Microsoft Installer) с поддельного домена. Использование флага "/q" обеспечивало тихую, незаметную для пользователя установку. Первоначальная полезная нагрузка была размещена на домене "binclloudapp[.]com", зарегистрированном незадолго до атаки.
Установщик размещал файлы в каталогах, имитирующих пути, связанные с безопасностью, что является распространённой тактикой маскировки. Среди них оказался переименованный легитимный архиватор 7-Zip ("aps.exe"), который использовался для распаковки защищённого паролем архива. Ключевым элементом этой стадии стал легитимный исполняемый файл "core.exe" от антивируса Zillya, который был использован для подгрузки вредоносной библиотеки "SystemStatus.dll". Эта библиотека и оказалась загрузчиком Matanbuchus 3.0. Использование подписанного легитимного ПО для боковой загрузки вредоносного кода - стандартный приём для обхода механизмов контроля целостности приложений и репутационных проверок.
Matanbuchus 3.0 представляет собой премиальный сервис вредоносного ПО как услуги (Malware-as-a-Service, MaaS), активно рекламируемый на русскоязычных форумах. Его стоимость, составляющая от 10 до 15 тысяч долларов в месяц, прямо указывает на то, что этот инструмент ориентирован на высокоценные цели. Код загрузчика был сильно обфусцирован с помощью «мусорных» инструкций и бессмысленных вызовов API. Строки в нём шифровались алгоритмом ChaCha20. Основная задача Matanbuchus заключалась в расшифровке и выполнении шелл-кода, который, в свою очередь, использовал технику Heaven's Gate для перехода в 64-битный режим прямо из 32-битного процесса, что позволяет обходить некоторые системы защиты от вторжений (EDR, Endpoint Detection and Response), отслеживающие вызовы API.
Следующий этап цепочки демонстрирует высокий уровень изощрённости атакующих. Matanbuchus сохранял в временном каталоге легитимный "java.exe" и вредоносную библиотеку "jli.dll". Библиотека содержала механизмы для снятия хуков EDR с критических системных библиотек "kernel32.dll" и "ntdll.dll" путём копирования их чистых секций из системного каталога "\KnownDlls\". После этого инициализировался встроенный интерпретатор Lua, который выполнял зашифрованный скрипт. Этот скрипт, в свою очередь, декодировал и запускал ещё один этап шелл-кода.
Этот финальный шелл-код действовал как позиционно-независимый загрузчик исполняемого файла формата PE. Он вручную искал в памяти необходимые функции Windows, используя хеширование имён, а затем собирал и загружал промежуточную DLL (Stage 1). Её задача состояла в получении, распаковке и запуске основной финальной полезной нагрузки - трояна, который исследователи назвали AstarionRAT.
AstarionRAT оказался мощным и многофункциональным инструментом, содержащим 24 различные команды для управления скомпрометированной системой. Его сервер управления (C2, Command and Control) "www.ndibstersoft[.]com" был зашифрован в теле троянца. Коммуникация с сервером была тщательно замаскирована: HTTP-запросы имитировали телеметрию приложений, а данные передавались внутри cookie-файлов. Весь исходящий трафик шифровался с помощью алгоритма RSA с 1024-битным ключом. Функционал троянца включал стандартное управление файлами и процессами, кражу учетных данных с помощью низкоуровневых функций Windows (Nt-функции), выполнение команд оболочки с перехватом вывода, организацию SOCKS5-прокси для перенаправления трафика, сканирование портов и, что наиболее опасно, возможность загрузки и выполнения произвольного кода прямо в памяти процесса, что минимизирует следы на диске.
Активность злоумышленника внутри сети после установки троянца была стремительной и целенаправленной. Уже через 40 минут после первоначального проникновения он взаимодействовал с контроллерами домена. Оператор создал задание в планировщике задач для обеспечения постоянного присутствия (persistence), а через несколько часов вернулся для проведения активной разведки. Используя скомпрометированные учётные данные, он получил доступ через протокол удалённого рабочего стола (RDP) на сервер, где создал скрытую локальную учётную запись с правами администратора. Для горизонтального перемещения по сети атакующий использовал легитимный инструмент системного администратора PsExec, развёртывая свои инструменты, включая связку "java.exe" с вредоносной "jli.dll", на других серверах, включая резервный контроллер домена. Хотя встроенный защитник Windows (Defender) поместил вредоносную DLL в карантин на одной из машин, оператор к этому моменту уже успел создать новую учётную запись и получить доступ.
Данный инцидент служит серьёзным напоминанием о необходимости комплексной защиты. Социальная инженерия остаётся слабым звеном, а цепочки поставок, использующие легитимное ПО, сложно обнаружить. В качестве практических рекомендаций специалистам по информационной безопасности следует рассмотреть следующие меры. Во-первых, непрерывное обучение пользователей, особенно акцентируя внимание на запрете копирования и выполнения команд из непроверенных источников. Во-вторых, применение групповых политик для отключения или ограничения диалогового окна «Выполнить» на рабочих станциях. В-третьих, настройка терминала Windows на вывод предупреждения при вставке многострочного текста, что может предотвратить выполнение сложных вредоносных команд. В-четвёртых, усиление мониторинга событий безопасности, таких как создание новых учётных записей (особенно с помощью команд "net user" или "net localgroup") и использование административных инструментов вроде PsExec из нестандартных путей, например, из каталога "C:\ProgramData\USOShared\", который использовался в этой атаке. Комбинация технических средств контроля и повышения осведомлённости персонала остается ключевым фактором противодействия современным сложным угрозам.
Индикаторы компрометации
Domains
- www.ndibstersoft.com
SHA256
- 03c624d251e9143e1c8d90ba9b7fa1f2c5dc041507fd0955bdd4048a0967a829
- 68858d3cbc9b8abaed14e85fc9825bc4fffc54e8f36e96ddda09e853a47e3e31
- 6ffae128e0dbf14c00e35d9ca17c9d6c81743d1fc5f8dd4272a03c66ecc1ad1f
- 8e54cd12591d67dfbe72e94c1bde6059e1cba157e6786aec63f8f9e3c71fb925
- c31c8edbf94c85cc9bc46a5665c45a3556c48d5ad615c0a44e14e5406d80df12
- de81e2155d797ff729ed3112fd271aa2728e75fc71b023d0d9bb0f62663f33b3
- ea378496135318ac5ad667a032fa4a9686add9d27fe4a7c549c937611b5099e5
- eecc83add16f3d513a9701e9a646b1885014229ac6f86addd6b10afb64d1d2af
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | rule win_mal_AstarionRAT { meta: author = "RussianPanda" description = "Detects AstarionRAT" date = "2/14/2025" hash = "a508d0bb583dc6e5f97b6094f8f910b5b6f2b9d5528c04e4dee62c343fce6f4b" strings: $s1 = "s5://%s:%s@%s:%d" $s2 = "Failed to connect to the server" $s3 = "Impersonated" condition: uint16(0) == 0x5A4D and all of them } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | rule win_mal_Matanbuchus_loader { meta: author = "RussianPanda" description = "Detects Matanbuchus 3.0 Loader component" date = "2/15/2025" hash = "ec29bcda7d42d812aebd2ee5be6e43256bcf6095b9fc36f92eec5d6475dd5e1f" strings: $s1 = {FF E0 F5 05 EB 0F} $s2 = {65 78 70 61} $s3 = {6E 64 20 33} $s4 = {66 89 ?? ?? ?? ?? 00 00 00 66 89 ?? ?? ?? ?? 00 00 00 66 89} $s5 = {E8 00 00 00 00 83 04 24 05 CB} condition: uint16(0) == 0x5A4D and 4 of them and filesize < 250KB } |
