Отчеты о целевых атаках (APT)

PuzzleMaker атакует, используя цепочку эксплойтов нулевого дня под Chrome

Этой весной, 14 и 15 апреля 2021 года, технологии «Лаборатории Касперского» зафиксировали волну целевых атак на несколько компаний. Тщательный анализ показал, что в них использовалась цепочка эксплойтов нулевого дня для Google Chrome и Microsoft Windows. Несмотря на то что нам не удалось получить эксплойт, который использовали для удаленного исполнения кода в браузере Chrome, мы смогли найти и проанализировать эксплойт повышения привилегий, который использовался для побега из песочницы и получения системных привилегий.

Эксплойт повышения привилегий был написан для работы с последними и наиболее распространенными сборками Windows 10 (RS5 Build 17763, 19H1 Build 18362, 19H2 Build 18363, 20H1 Build 19041, 20H2 Build 19042). Он использует две уязвимости в ядре ОС Microsoft Windows. Уже 20 апреля 2021 года мы сообщили о них разработчикам ОС, и компания присвоила уязвимости раскрытия информации идентификатор CVE-2021-31955, а уязвимости повышения привилегий — CVE-2021-31956. Обе были исправлены 8 июня 2021 года в рамках июньского «вторника обновлений».

Эксплойт удаленного исполнения кода

Все выявленные атаки проводились через веб-браузер Chrome. К сожалению, нам не удалось получить файл JavaScript с полным кодом эксплойта, но временные рамки атак и предшествующие им события позволяют нам подозревать одну конкретную уязвимость.

С 6 по 8 апреля 2021 года проходил Pwn2Own — соревнование по взлому компьютеров, в котором веб-браузер Google Chrome был одной из целей. Согласно веб-сайту организатора мероприятия, ZDI (Zero Day Initiative), одна из участвующих команд смогла продемонстрировать успешную эксплуатацию процесса рендеринга Chrome с помощью ошибки Typer Mismatch.

Вскоре, 12 апреля 2021 года, разработчики Chromium закоммитили два исправления ошибок (заявки 1196683 и 1195777), связанных с функциональностью Typer, в open-source-репозиторий JavaScript-движка V8 (используется веб-браузерами Chrome и Chromium). Один из этих патчей (1196683) был предназначен для исправления уязвимости, которая использовалась во время Pwn2Own. Оба патча были закоммичены вместе с регрессионными тестами, то есть файлами JavaScript для воспроизведения этих уязвимостей. Позже в тот же день пользователь Twitter под псевдонимом @r4j0x00 опубликовал на GitHub работающий эксплойт удаленного исполнения кода, нацеленный на последнюю версию веб-браузера Chrome. Этот эксплойт использовал уязвимость из заявки 1196683 для выполнения шелл-кода в контексте процесса рендеринга Chrome.

Скриншот твита с эксплойтом нулевого дня для Chrome (12 апреля 2021 г.)

Опубликованный код не содержал эксплойта для побега из песочницы и потому был предназначен только для работы в сценарии, когда веб-браузер запускается с параметром командной строки —no-sandbox.

Уже 13 апреля 2021 года компания Google выпустила обновление Chrome 89.0.4389.128 для Windows, Mac и Linux с исправлением двух уязвимостей, в том числе использованной во время Pwn2Own CVE-2021-21220.

У некоторых из наших клиентов, атакованных 14 и 15 апреля, браузер Chrome был уже обновлен до версии 89.0.4389.128, поэтому мы считаем, что злоумышленники не использовали CVE-2021-21220 в своих атаках.

14 апреля 2021 года компания Google выпустила обновление Chrome 90.0.4430.72 для Windows, Mac и Linux с исправлением 37 уязвимостей. В тот же день был опубликован новый эксплойт для Chrome.

Скриншот репозитория GitHub с эксплойтом нулевого дня для Chrome (14 апреля 2021 г.)

Новинка использовала уязвимость из заявки 1195777 и работала с только что выпущенным Chrome 90.0.4430.72. Новая уязвимость получила идентификатор CVE-2021-21224 и была исправлена всего несколько дней спустя, 20 апреля 2021 года.

Мы подозреваем, что злоумышленники также могли использовать опубликованный файл JavaScript с регрессионным тестом для разработки эксплойта (или получить его у кого-то еще) и, вероятно, использовали CVE-2021-21224 в своих атаках.

Эксплойт повышения привилегий

CVE-2021-31955 — это уязвимость раскрытия информации в ntoskrnl.exe. Она связана с функцией ОС Windows под названием SuperFetch, которая появилась в Windows Vista и направлена на сокращение времени загрузки программного обеспечения за счет предварительной загрузки часто используемых приложений в оперативную память. Для целей SuperFetch функция NtQuerySystemInformation реализует специальный класс системной информации SystemSuperfetchInformation. Этот класс системной информации включает более десятка различных классов информации SuperFetch. Уязвимость заключается в том, что данные, возвращаемые функцией NtQuerySystemInformation для информационного класса SuperFetch SuperfetchPrivSourceQuery, содержат адреса ядра структуры EPROCESS для текущих выполняемых процессов.

Примечательно, что до того, как мы заметили, а Microsoft исправила эту уязвимость, ее можно было в течение нескольких лет наблюдать в коде, доступном на GitHub.

CVE-2021-31955 можно наблюдать в исходном коде утилиты MemInfo

Другая уязвимость, CVE-2021-31956, связана с переполнением буфера кучи в драйвере ntfs.sys. Функция NtfsQueryEaUserEaList обрабатывает список расширенных атрибутов для файла и сохраняет полученные значения в буфер. Эта функция доступна посредством системного вызова ntoskrnl, который, помимо прочего, позволяет контролировать размер выходного буфера. Если размер расширенного атрибута не выравнен, функция вычислит количество байт, необходимое для выравнивания, и следующий расширенный атрибут будет сохранен с 32-битным выравниванием. Функция содержит код, который проверяет, что выходной буфер достаточно велик для расширенного атрибута вместе с выравниванием, но в коде отсутствует проверка на возможное целочисленное переполнение. В результате может произойти переполнение буфера кучи.

Псевдокод для уязвимого кода в функции NtfsQueryEaUserEaList

Эксплойт использует CVE-2021-31956 вместе с Windows Notification Facility (WNF) для создания примитива произвольного чтения и записи в память. Мы опубликуем больше информации об этой технике в будущем.

Поскольку эксплойт использует CVE-2021-31955 для получения адреса ядра структуры EPROCESS, он мог бы применять обычную технику постэксплуатации для кражи SYSTEM-токена. Однако вместо этого эксплойт использует нераспространенную технику PreviousMode. Мы видели ее ранее во фреймворке CHAINSHOT и даже сделали презентацию о ней на CanSecWest / BlueHat в 2019 году. С помощью этой техники эксплойт внедряет модуль вредоносного ПО в системный процесс и исполняет его.

Вредоносные модули

Помимо ранее упомянутых эксплойтов, полная цепочка атаки включает четыре дополнительных модуля вредоносного ПО, которые можно назвать по их функциям:

  • Стейджер
  • Дроппер
  • Сервис
  • Удаленный шелл

Стейджер используется для уведомления об успешной эксплуатации. Он также загружает и запускает более сложный модуль, дроппер вредоносного ПО, с удаленного сервера. Каждый стейджер доставляется жертве с персонализированным блоком конфигурации, который включает адрес C&C, идентификатор сеанса, ключи для расшифровки следующей стадии вредоносного ПО и другую информацию.

Все образцы стейджеров, которые мы обнаружили, были настроены на использование для загрузки зашифрованного дроппера с одного и того же адреса hxxps://p{удалено}/metrika_upload/index.php.

Мы предполагаем, что JavaScript-эксплойт для удаленного исполнения кода мог размещаться на том же веб-сайте, который выглядит как легитимный новостной портал, но мы не обнаружили никаких признаков классической атаки типа watering hole. Анализ состава жертв говорит об очень целенаправленной доставке эксплойтов.

Дроппер используется для установки двух исполняемых файлов, которые притворяются легитимными файлами ОС Microsoft Windows. Первый файл (%SYSTEM%\WmiPrvMon.exe) регистрируется как служба и используется для запуска второго (%SYSTEM%\wmimon.dll), который представляет собой удаленный шелл и может рассматриваться как основная полезная нагрузка атаки. Мы не смогли найти сходства между этим вредоносным ПО и другими известными нам образцами.

Удаленный шелл содержит жестко запрограммированный адрес C&C-сервера (media-seoengine[.]com). Все коммуникации между C&C и клиентом авторизованы и зашифрованы. Удаленный шелл может загружать и выгружать файлы, создавать процессы, уходить в сон на заданное время и удалять себя со скомпрометированной машины.

Ни один из проанализированных нами артефактов не имеет прочной связи с известными злоумышленниками. Единственное сходство, которое мы наблюдали, это использование той же, что и в случае CHAINSHOT, техники PreviousMode, однако последняя широко известна и ее могут использовать разные группы. Группе, стоящей за этими атаками, мы дали название PuzzleMaker.

Продукты «Лаборатории Касперского» детектируют эксплойт и вредоносные модули с вердиктами:

  • PDM:Exploit.Win32.Generic
  • PDM:Trojan.Win32.Generic
  • UDS:DangerousObject.Multi.Generic

Продукты «Лаборатории Касперского» обнаружили эти атаки с помощью технологии Behavioral Detection Engine и компонента Exploit Prevention. Стоит отметить, что за последние несколько лет мы внедрили в наши продукты множество технологий защиты от эксплойтов. С их помощью удалось обнаружить большое количество атак с применением уязвимостей нулевого дня, что раз за разом подтверждает эффективность этих разработок. Мы будем и дальше укреплять защиту наших пользователей, делая интернет безопаснее для всех. Для этого мы продолжим совершенствовать наши технологии и сотрудничать со сторонними разработчиками для исправления уязвимостей.

Более подробная информация об этих атаках и стоящей за ними группировке доступна клиентам сервиса Kaspersky Intelligence Reporting. Чтобы ее получить, обращайтесь по адресу intelreports@kaspersky.com.

«Лаборатория Касперского» благодарит компанию Microsoft за оперативный анализ отчета и выпуск исправлений.

IoCs

media-seoengine[.]com

%SYSTEM%\WmiPrvMon.exe

MD5 09A5055DB44FC1C9E3ADD608EFFF038C
SHA-1 BFFA4462901B74DBFBFFAA3A3DB27DAA61211412
SHA-256 982F7C4700C75B81833D5D59AD29147C392B20C760FE36B200B541A0F841C8A9

%SYSTEM%\wmimon.dll

MD5 D6B850C950379D5EE0F254F7164833E8
SHA-1 E63ED3B56A5F9A1EA5C92D3D2444196EA13BE94B
SHA-256 8A17279BA26C8FBE6966EA3300FDEFB1ADAE1B3ED68F76A7FC81413BD8C1A5F6

PuzzleMaker атакует, используя цепочку эксплойтов нулевого дня под Chrome

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике