Администраторы виртуальных сред вновь оказались под прицелом злоумышленников, использующих доверенный цифровой сертификат для обхода защиты. Недавно обнаруженная кампания нацелена на пользователей утилиты RVTools, популярного средства для управления средами VMware. Под видом обычного обновления распространяется сложный удаленный агент (RAT), способный собирать данные об Active Directory, закрепляться в системе и выполнять команды оператора. Особую тревогу вызывает то, что установочный пакет MSI был подписан легитимным сертификатом Sectigo, выданным на подставную компанию, что позволило атаке миновать стандартные средства контроля Windows SmartScreen и антивирусные фильтры.
Описание
RVTools является незаменимым инструментом для администраторов VMware в крупных организациях. С его помощью специалисты получают детальную информацию о виртуальной инфраструктуре, включая параметры хостов, хранилищ и сетей. Поскольку утилиту обычно запускают сотрудники с высокими привилегиями в домене, злоумышленники сознательно выбрали её в качестве приманки. Успеху кампании способствовало и использование подписи кода - на момент доставки сертификат был полностью действителен, что не вызывало подозрений ни у встроенного механизма SmartScreen, ни у большинства корпоративных решений защиты конечных точек. Хотя сертификат уже отозван, эта мера слабо помогает, если в организации не настроена обязательная проверка статуса сертификата в реальном времени (OCSP) или по спискам отзыва (CRL) при каждом запуске.
Аналитики обнаружили подозрительный файл при просмотре срабатываний на платформе VirusTotal. Образец с низким уровнем детектирования привлёк внимание необычно чистой подписью, что противоречило его подозрительной структуре. Дополнительную информацию предоставили сообщения в социальной сети X (бывший Twitter) от пользователя @g0njxa, который подтвердил, что тот же файл распространяется как поддельный установщик RVTools. Дальнейшее исследование вскрыло продуманную многозвенную цепочку заражения, включающую скрипты-загрузчики, переносное окружение Python и криптографически защищённый канал связи с командным центром (C2).
Сам установщик MSI использует штатную функцию установки Windows - пользовательские действия (Custom Actions). Внутри бинарной таблицы установочного пакета хранится скрытый VBScript-файл, который при запуске инсталляции активируется системой. Этот скрипт сильно обфусцирован: весь код представлен в виде последовательности десятичных чисел, которые преобразуются в символы функцией Chr(). Такая упаковка позволяет обойти статический анализ - сканеры безопасности не видят в исходном файле таких подозрительных строк, как "Invoke-WebRequest" или адреса загрузки. После раскодирования VBScript запускает скрытый экземпляр PowerShell, который скачивает из Dropbox архив размером около 30 мегабайт, извлекает его в папку %AppData% и запускает вредоносные Python-скрипты.
Скачанный архив winp.zip представляет собой полноценное портативное окружение WinPython. Внутри него упакованы не только исполняемые файлы Python, но и такие легитимные инструменты, как VS Code, Spyder и Jupyter Lab. Такая маскировка позволяет вредоносным компонентам - collector.py и manager.py - затеряться среди множества доверенных бинарных файлов. Для обычной проверки файловой системы всё выглядит как типичная рабочая станция разработчика или администратора. После завершения установки установщик принудительно предлагает перезагрузить систему, якобы для очистки временных файлов. На самом деле перезагрузка активирует записи в реестре и запланированные задачи, обеспечивающие закрепление (persistence) и запуск фоновых агентов.
На этапе разведки запускается скрипт collector.py. Он выполняет глубокий сбор информации о системе и сети: получает имя хоста, учётные данные пользователя, список процессов, служб и активных сетевых соединений. Особое внимание уделяется контексту Active Directory. Скрипт выполняет PowerShell-запрос к встроенному классу [adsisearcher], чтобы подсчитать количество объектов компьютеров в домене. Таким образом злоумышленник сразу получает представление о масштабе организации и плотности инфраструктуры. Все собранные данные сохраняются в файл configA.json в папке %TEMP%. Для идентификации цели используется уникальный восьмисимвольный идентификатор, получаемый хешированием MAC-адреса и имени хоста. Это позволяет отслеживать жертву даже при смене IP-адреса.
После подготовительного этапа в дело вступает скрипт manager.py - основной модуль закрепления и связи с командным центром. Он реализует шифрование RC4 для защиты передаваемых данных. Сначала скрипт читает configA.json, затем применяет случайную соль, шифрует содержимое ключом RC4 и сжимает с помощью zlib. Зашифрованные данные отправляются на один из пяти жёстко закодированных IP-адресов командного сервера методом POST. Передача повторяется каждые 300 секунд (5 минут). В случае недоступности основного канала скрипт автоматически переключается на следующий сервер с ускоренным интервалом опроса в 10 секунд. Помимо эксфильтрации, модуль ожидает команды от оператора: запуск исполняемых файлов (EXE, DLL, MSI), выполнение скриптов Python или PowerShell, изменение интервалов проверки, переустановку ключей автозапуска и даже самоликвидацию с удалением всех следов.
Для закрепления в системе используются два параллельных механизма: запись в раздел реестра HKCU\…\Run и создание ежедневной запланированной задачи, выполняющейся с системными привилегиями. Таким образом, даже после перезагрузки вредонос восстанавливает активность.
Последствия такой атаки для организации, использующей VMware в масштабе, могут быть катастрофическими. Если злоумышленник получает доступ к учётной записи администратора виртуальной инфраструктуры, он фактически захватывает управление всеми виртуальными машинами и данными. Поддельный установщик RVTools - это не единичный инцидент, а продуманная операция, нацеленная на наиболее привилегированных пользователей. Данная кампания ещё раз демонстрирует, что даже легитимная цифровая подпись и портативное окружение разработчика могут быть использованы для маскировки вредоносной активности. Организациям следует усилить контроль за запуском подписанных установщиков, особенно тех, которые требуют прав администратора, и обязательно проверять статус сертификатов в момент выполнения, а не только на этапе доставки.
Индикаторы компрометации
MD5
- 01a115c6f6ba3837234202a1e0d28bdc
- 64bda120cb447e0c03f451190022a57b
- 71085940124ad3c035a181acadc10362
- 9192d18a955a9d03e2c70b60aac1784a