Специалисты подразделения Google Threat Intelligence Group и компании Mandiant раскрыли детали масштабной кампании шпионажа, в рамках которой с середины 2024 года эксплуатировалась критическая уязвимость в программном обеспечении Dell RecoverPoint for Virtual Machines. Уязвимость, получившая идентификатор CVE-2026-22769 и максимальный балл 10.0 по шкале CVSSv3.1, позволила группе, отслеживаемой как UNC6201, получать полный контроль над устройствами, перемещаться по сетям жертв, закрепляться в системах и развертывать вредоносное ПО, включая новые инструменты. Исследователи отмечают техническую изощренность атакующих, которые, скомпрометировав устройство Dell, применяли инновационные методы для скрытного доступа к виртуальной инфраструктуре на базе VMware, включая создание так называемых «призрачных сетевых интерфейсов» и использование фаервола iptables для авторизации по одному пакету.
Описание
Фокус на периферийных устройствах и уязвимость с дефолтными паролями
Исследование началось с анализа инцидентов, в ходе которых на устройствах Dell RecoverPoint for Virtual Machines были обнаружены следы активности вредоносных программ BRICKSTORM и GRIMBOLT. Устройства этого класса используются для защиты и аварийного восстановления виртуальных машин. Расследование показало, что начальным вектором атаки, вероятно, стало использование известной группе UNC6201 тактики - нацеливание на периферийные устройства, такие как VPN-концентраторы. Однако непосредственный доступ к целевым системам Dell был получен благодаря критической уязвимости CVE-2026-22769.
Суть уязвимости заключалась в наличии жестко заданных (hard-coded) учетных данных по умолчанию для пользователя "admin" в конфигурационном файле Apache Tomcat Manager ("/home/kos/tomcat9/tomcat-users.xml"), входящего в состав ПО Dell. Этот менеджер используется для развертывания компонентов RecoverPoint. Обладая этими учетными данными, злоумышленник мог пройти аутентификацию в веб-интерфейсе Tomcat Manager, загрузить вредоносный файл формата WAR (Web Application Archive) через эндпоинт "/manager/text/deploy" и выполнять команды с привилегиями root на самом устройстве. Загружаемый WAR-файл содержал веб-оболочку SLAYSTYLE, предоставляющую удаленный доступ к системе.
Эволюция вредоносного арсенала: от BRICKSTORM к GRIMBOLT
На скомпрометированных устройствах эксперты Mandiant изначально обнаружили вредоносную программу BRICKSTORM, известную по предыдущим кампаниям кибершпионажа. Однако в сентябре 2025 года произошла заметная смена инструментария - BRICKSTORM был заменен на новый бэкдор, получивший название GRIMBOLT. Эта замена может быть как частью планового цикла обновления инструментов злоумышленниками, так и реакцией на активное расследование инцидентов со стороны индустрии.
GRIMBOLT представляет собой значительный эволюционный шаг с точки зрения ремесла разработки вредоносного ПО (tradecraft). Написанный на C# и упакованный утилитой UPX, этот бэкдор был скомпилирован с использованием технологии Native Ahead-of-Time (AOT) компиляции. В отличие от традиционных .NET-приложений, которые компилируются «на лету» (Just-In-Time, JIT) во время выполнения, Native AOT компилирует код непосредственно в машинные инструкции на этапе сборки. Этот подход, официально представленный в .NET в 2022 году, преследует несколько целей: повышение производительности на устройствах с ограниченными ресурсами, устранение зависимостей от внешних библиотек .NET и, что особенно важно, усложнение статического анализа. Традиционные C#-сборки содержат богатые метаданные на промежуточном языке (Common Intermediate Language, CIL), которые сильно помогают аналитикам. Native AOT удаляет эти метаданные, превращая код в «плоский» бинарный файл, похожий на программу, написанную на C или C++.
Функционально GRIMBOLT, как и его предшественник, предоставляет возможность удаленной командной оболочки и использует ту же инфраструктуру командования и управления (Command and Control, C2). Для обеспечения устойчивости (persistence) на устройстве Dell злоумышленники модифицировали легитимный скрипт "convert_hosts.sh", добавив в него путь к бэкдору. Поскольку этот скрипт выполняется при каждой загрузке устройства через "rc.local", GRIMBOLT гарантированно запускался при каждом перезапуске системы.
Продвижение вглубь: новые тактики в среде VMware
Получив контроль над устройством Dell RecoverPoint, которое по определению интегрировано в виртуальную инфраструктуру, группа UNC6201 использовала его как плацдарм для атаки на среду VMware. Исследователи Mandiant подтвердили ранее известные векторы атак на vCenter и ESXi, а также обнаружили ранее не документированные тактики.
Одной из таких тактик стало создание «призрачных сетевых интерфейсов» (Ghost NICs). Злоумышленники создавали новые временные сетевые порты на существующих виртуальных машинах, работающих на сервере ESXi. Используя эти порты, они затем осуществляли перемещение (pivoting) к различным внутренним ресурсам и сервисам, работающим по модели SaaS (программное обеспечение как услуга), которые использовались атакованными организациями.
Еще одной инновационной техникой стало использование фаервола "iptables" для организации скрытного доступа по схеме Single Packet Authorization (SPA, авторизация по одному пакету). Анализируя скомпрометированный vCenter, эксперты восстановили команды, выполненные через веб-оболочку SLAYSTYLE. Настройки "iptables" работали по следующему алгоритму: сначала система мониторила входящий трафик на порт 443 в поиске пакета с определенной HEX-строкой. Источник такого пакета добавлялся в «белый список». Если IP-адрес из этого списка затем пытался подключиться к порту 10443, соединение разрешалось. После установки первоначального одобренного соединения на порт 10443 любой последующий трафик с этого IP-адреса на порт 443 в течение 300 секунд (5 минут) автоматически и незаметно перенаправлялся на порт 10443. Это создавало скрытый, авторизованный канал связи, крайне сложный для обнаружения стандартными средствами мониторинга сети.
Рекомендации по защите и расследованию
Компания Dell уже выпустила обновления, устраняющие уязвимость CVE-2026-22769. Крайне важно всем пользователям Dell RecoverPoint for Virtual Machines незамедлительно обратиться к официальному бюллетеню безопасности производителя и установить патчи.
Для специалистов по информационной безопасности и реагированию на инциденты Mandiant предлагает ряд рекомендаций по расследованию. При анализе дисковых образов скомпрометированных устройств Dell RecoverPoint следует обратить особое внимание на несколько ключевых артефактов.
- Веб-логи Tomcat Manager, находящиеся в файле "/home/kos/auditlog/fapi_cl_audit_log.log". Любые запросы к "/manager", особенно запросы "PUT" к "/manager/text/deploy", должны рассматриваться как подозрительные.
- Загруженные WAR-файлы обычно хранятся в "/var/lib/tomcat9", а скомпилированные артефакты - в "/var/cache/tomcat9/Catalina".
- Необходимо изучить логи приложений Tomcat в "/var/log/tomcat9/", обращая внимание на события "deployWAR" и связанные с ними исключения. Наконец, для поиска признаков закрепления в системе следует проверить файл "/home/kos/kbox/src/installation/distribution/convert_hosts.sh" на предмет внесения несанкционированных изменений и добавления путей к посторонним исполняемым файлам.
Данная кампания наглядно демонстрирует, как уязвимости в программном обеспечении для управления и защиты инфраструктуры могут быть использованы высококвалифицированными группами для глубокого проникновения в корпоративные сети. Своевременное обновление, отказ от учетных данных по умолчанию и тщательный мониторинг активности на критически важных периферийных устройствах остаются ключевыми мерами противодействия подобным сложным угрозам.
Индикаторы компрометации
IPv4
- 149.248.11.71
WebSockets Secure
- wss://149.248.11.71/rest/apisession
SHA256
- 2388ed7aee0b6b392778e8f9e98871c06499f476c9e7eae6ca0916f827fe65df
- 24a11a26a2586f4fba7bfe89df2e21a0809ad85069e442da98c37c4add369a0c
- 320a0b5d4900697e125cebb5ff03dee7368f8f087db1c1570b0b62f5a986d759
- 45313a6745803a7f57ff35f5397fdf117eaec008a76417e6e2ac8a6280f7d830
- 90b760ed1d0dcb3ef0f2b6d6195c9d852bcb65eca293578982a8c4b64f51b035
- 92fb4ad6dee9362d0596fda7bbcfe1ba353f812ea801d1870e37bfc6376e624a
- aa688682d44f0c6b0ed7f30b981a609100107f2d414a3a6e5808671b112d1878
- dfb37247d12351ef9708cb6631ce2d7017897503657c6b882a711c0da8a9a591
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | rule G_APT_BackdoorToehold_GRIMBOLT_1 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $s1 = { 40 00 00 00 41 18 00 00 00 4B 21 20 C2 2C 08 23 02 } $s2 = { B3 C3 BB 41 0D ?? ?? ?? 00 81 02 0C ?? ?? ?? 00 } $s3 = { 39 08 01 49 30 A0 52 30 00 00 00 DB 40 09 00 02 00 80 65 BC 98 } $s4 = { 2F 00 72 00 6F 00 75 00 74 00 65 79 23 E8 03 0E 00 00 00 2F 00 70 00 72 00 6F 00 63 00 2F 00 73 00 65 00 6C 00 66 00 2F 00 65 00 78 00 65 } condition: (uint32(0) == 0x464c457f) //linux and all of ($s*) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | rule G_Hunting_BackdoorToehold_GRIMBOLT_1 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $s1 = "[!] Error : Plexor is nul" ascii wide $s2 = "port must within 0~6553" ascii wide $s3 = "[*] Disposing.." ascii wide $s4 = "[!] Connection error. Kill Pty" ascii wide $s5 = "[!] Unkown message type" ascii wide $s6 = "[!] Bad dat" ascii wide condition: ( (uint16(0) == 0x5a4d and uint32(uint32(0x3C)) == 0x00004550) or uint32(0) == 0x464c457f or uint32(0) == 0xfeedface or uint32(0) == 0xcefaedfe or uint32(0) == 0xfeedfacf or uint32(0) == 0xcffaedfe or uint32(0) == 0xcafebabe or uint32(0) == 0xbebafeca or uint32(0) == 0xcafebabf or uint32(0) == 0xbfbafeca ) and any of them } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | rule G_APT_BackdoorWebshell_SLAYSTYLE_4 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $str1 = "<%@page import=\"java.io" ascii wide $str2 = "Base64.getDecoder().decode(c.substring(1)" ascii wide $str3 = "{\"/bin/sh\",\"-c\"" ascii wide $str4 = "Runtime.getRuntime().exec(" ascii wide $str5 = "ByteArrayOutputStream();" ascii wide $str6 = ".printStackTrace(" ascii wide condition: $str1 at 0 and all of them } |