Загрузка...

ShieldBreak – описание механизма эксплуатации для аналитика SOC

133 | 12.08.2026 22:33 | AI

ShieldBreak — локальная цепочка повышения привилегий до NT AUTHORITY\SYSTEM, заявленная автором как обход исправления CVE-2026-50656 (RoguePlanet) в Microsoft Defender. Для эксплуатации атакующему уже необходим запуск кода на узле, но административные права не требуются.

Как работает атака.

Подготовка управляемого файла.

Эксплойт создаёт рабочий каталог и регистрирует его как Cloud Files sync root. Внутри создаётся файл-placeholder BERLIN. Его содержимое возвращается по запросу через callback, поэтому атакующий может менять данные между операциями чтения.

Создание двойного разрешения пути.

Через Windows Object Manager формируются каталоги WD_SHADOW_* и WD_TARGET_* и символические ссылки WD_SCAN. Пока первая ссылка существует, переданный Defender путь ведёт к обычному файлу BERLIN. После её удаления та же строка разрешается уже через CLFS.

Получение вердикта Defender.

Эксплойт сам инициирует ресурсное сканирование через MpClient.dll. При первом чтении Cloud Files callback возвращает ZIP с EICAR. Defender обнаруживает тестовую угрозу и открывает процедуру очистки от имени SYSTEM. Состояние real-time protection для этой последовательности не принципиально, поскольку сканирование вызывается непосредственно.

Подмена назначения во время очистки.

После обнаружения угрозы PoC удаляет первую ссылку WD_SCAN, ожидает создания служебного файла CLFS и блокирует его через LockFileEx. Затем создаётся новая цепочка ссылок, ведущая через локальный административный SMB-ресурс к:

\\127.0.0.1\C$\Windows\System32\phoneinfo.dll

Замена содержимого.

Гидратация placeholder перезапускается. На последующих чтениях callback возвращает уже Warden.dll, а не архив с EICAR. В результате операция Defender, выполняемая с правами SYSTEM, записывает DLL атакующего в C:\Windows\System32.

Удержание файла.

PoC ожидает появления phoneinfo.dll:stream и отображает содержащийся там допустимый PE-файл как исполняемый образ. Это удерживает файловый объект открытым и мешает процедуре очистки удалить созданный файл.

Выполнение DLL от SYSTEM.

Эксплойт помещает подготовленный Report.wer в очередь Windows Error Reporting и запускает существующую задачу:

\Microsoft\Windows\Windows Error Reporting\QueueReporting .

Планировщик запускает wermgr.exe с системными привилегиями. Тот загружает phoneinfo.dll, после чего код Warden.dll исполняется как SYSTEM.

Получение системного процесса.

Полезная нагрузка подключается к named pipe SHIELDBREAK, получает системный токен процесса, переносит его в интерактивную сессию и запускает процесс с правами SYSTEM. Подключение к pipe одновременно служит PoC подтверждением успешной эксплуатации.

Где находится уязвимость.

Ключевая проблема — несогласованность между объектом, который Defender проверил, и объектом, над которым затем выполняется очистка.

Defender сначала обнаруживает угрозу по атакующему пути, но в процессе обработки продолжает работать с повторно разрешаемым именем. Между проверкой и использованием атакующий меняет значение пути. Это разновидность TOCTOU/link-following: проверяется один объект, а привилегированная операция выполняется уже над другим.

Cloud Files callback, CLFS, Object Manager и файловая блокировка не являются четырьмя независимыми уязвимостями. Они используются совместно, чтобы:

  • контролировать содержимое файла;
  • синхронизироваться с этапами Defender;
  • изменить назначение пути после обнаружения;
  • удержать созданную DLL до её загрузки.
  • создаёт C:\ShieldBreak_{GUID};
  • регистрирует Cloud Files sync root;
  • создаёт placeholder BERLIN;
  • инициирует сканирование Defender;
  • Defender обнаруживает EICAR;
  • создаются файлы CLFS;
  • обращение к \\127.0.0.1\C$\Windows\System32\phoneinfo.dll;
Чтобы прочитать полный текст, необходимо зарегистрироваться.
Регистрация

SOCpedia - платформа знаний

Здесь собраны материалы по практикам SOC и Blue Team: статьи, новости, книги и переводы.