Цепочка ВПО сочетает скрытые загрузчики и бикон Cobalt Strike
В описанной цепочке вторжения задействованы несколько компонентов вредоносного ПО, предназначенных для затруднения анализа и уклонения от обнаружения. Среди них загрузчик PavokwiLoader, Python-загрузчик, поддельная служба RMM и RMMCRAT.
Загрузчик PavokwiLoader и его полезная нагрузка
PavokwiLoader написан на C++ и содержит более 80 000 инструкций. Он проверяет имена пользователей, связанные с песочницами и анализом вредоносного ПО, а функции API разрешает с помощью хешей. Затем загрузчик создаёт приостановленный легитимный процесс, например smartscreen.exe или браузер, с помощью ZwCreateUserProcess. Код внедряется без снятия отображения целевого образа, поэтому эту технику нельзя считать стандартным внедрением в пустой процесс.
Встроенная полезная нагрузка скрыта в смещениях инструкций и непосредственных операндах. Цели потока управления при этом остаются валидными, что сохраняет правдоподобный вид дизассемблированного кода. Размещение образа PE определяется расположением секций, затем образ извлекается для выполнения.
Конечная полезная нагрузка поддерживает взаимодействие в стиле скрытого VNC, кражу данных браузера, выполнение команд, закрепление, передачу файлов и переключение C2. Для ввода в скрытое окно она использует WindowFromPoint, ChildWindowFromPointEx, PostMessageW и связанные API. Профили Chrome копируются в отдельный каталог пользовательских данных, чтобы браузер сам расшифровал учётные данные, cookie и другие данные. Вредоносное ПО также изменяет индикаторы автоматизации браузера и отдельно обрабатывает профили Firefox.
Для связи с C2 вредоносное ПО обходит стандартные сетевые API, используя операции с устройством AFD и собственную реализацию TLS 1.3 с X25519, HKDF-SHA256 и AES-GCM. Дополнительные конечные точки оно может получать через DNS-over-HTTPS TXT-запросы. Однако проанализированный образец запросил google.com и не получил пригодного для использования URL C2.
Команды PowerShell передаются через стандартный поток ввода и выполняются из данных UTF-16, закодированных в Base64. При создании процессов могут применяться подделка PPID и скрытые окна.
Python-загрузчик и бикон Cobalt Strike
Python-загрузчик скрывает все распознаваемые строки API и модулей. Он подбирает восьмизначный ключ перебором, используя заголовок marshal CPython как известный открытый текст, а затем расшифровывает крупный объект кода, зашифрованный ChaCha20.
Полезная нагрузка обходит UAC через RPC-вызов APPINFO с помощью автоматически повышающих привилегии winver.exe или computerdefaults.exe. Она создаёт процесс Python с повышенными привилегиями, отключает сканирование Defender через PowerShell и выполняет рефлексивную загрузку бикона Cobalt Strike. Конфигурация бикона обфусцирована с помощью XOR; сам бикон содержит характеристики стандартного рефлексивного загрузчика.
Служба RMM и RMMCRAT
Среди дополнительных компонентов обнаружили поддельную службу RMM и RMMCRAT, собственную службу Windows, написанную на C++. RMMCRAT умеет профилировать хост, запускать PowerShell, доставлять удалённые пакеты, завершать работу, закрепляться в системе и регистрироваться на основе токенов.
Служба хранит учётные данные с помощью DPAPI, использует зашифрованные строки и динамическое разрешение API. Конфигурацию она получает из файлов, переменных окружения или встроенного PE-блоба.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



