Исследование

Драйвер Windows CLFS и пять эксплойтов операторов шифровальщиков (№ 3, октябрь 2022 г.)

Это четвертая часть нашей статьи о файловой системе CLFS и пяти уязвимостях этого компонента ОС Windows, встречавшихся в кампаниях шифровальщиков на протяжении года. Если вы еще не ознакомились с предыдущими частями, прочтите сначала их.

Вы можете перейти к нужному разделу из содержания или по ссылкам в конце этой части.

Эксплойт № 3, октябрь 2022 г.

На портале обновлений безопасности Microsoft отсутствуют упоминания об уязвимостях CLFS за октябрь 2022 года, тем не менее в это время драйвер был переписан и получил новые функции CClfsBaseFile::Validate*.

Драйвер CLFS в сентябре и в октябре 2022 года

Драйвер CLFS в сентябре и в октябре 2022 года

Обнаруженный нами эксплойт был написан тем же автором, который создал эксплойт нулевого дня для CVE-2022-37969. Он работает с сентябрьским исправлением и не работает с октябрьским, но только после выпуска октябрьского исправления мы стали видеть его в атаках. Вероятно, ранее это был эксплойт нулевого дня, который злоумышленники применяли с осторожностью, но после выпуска исправления стали пользоваться им в открытую.

Эксплойт создает новый файл BLF и изменяет в нем всего шесть значений. Эти модификации представлены ниже.

Драйвер CLFS в сентябре и в октябре 2022 года

Драйвер CLFS в сентябре и в октябре 2022 года

Первая модификация затрагивает значение поля CLFS_BASE_RECORD_HEADER->cbSymbolZone в блоке GENERAL. Остальные создают поддельную структуру CLFS_CONTAINER_CONTEXT.

Как уже упоминалось при обсуждении внутреннего устройства файловой системы CLFS в первой части нашей статьи, поле cbSymbolZone используется в качестве ближайшего свободного относительного адреса, в котором можно создать новый символ. Уязвимость состоит в том, что относительный адрес cbSymbolZone теперь указывает на середину существующей структуры CLFS_CLIENT_CONTEXT, и это не проверяется. Вот к чему это приводит:

  1. При открытии файла BLF драйвер закэширует некоторые значения из структуры CLFS_CLIENT_CONTEXT (так же, как при эксплойте № 1 — CVE-2022-24521).
  2. Эксплойт вызывает функцию AddLogContainer, и драйвер создает новый символ CLFS_CONTAINER_CONTEXT, который будет записан по модифицированному относительному адресу cbSymbolZone.
  3. Теперь CLFS_CLIENT_CONTEXT и CLFS_CONTAINER_CONTEXT накладываются друг на друга (так же, как при эксплойте № 1 — CVE-2022-24521).
  4. Функция CClfsLogFcbPhysical::FlushMetadata восстанавливает закэшированные значения для клиента и перезаписывает указатель класса CClfsContainer.
Наложение новой структуры CLFS_CONTAINER_CONTEXT на существующую структуру CLFS_CLIENT_CONTEXT

Наложение новой структуры CLFS_CONTAINER_CONTEXT на существующую структуру CLFS_CLIENT_CONTEXT

Как видите, этот эксплойт практически идентичен эксплойту № 1 (CVE-2022-24521). То же касается и остальной части выполнения эксплойта.

Перейдите по ссылке, чтобы ознакомиться со следующей частью:

Драйвер Windows CLFS и пять эксплойтов операторов шифровальщиков (№ 3, октябрь 2022 г.)

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

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

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

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

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

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