
Хабр, привет!
На связи Александр Бек, аналитик-исследователь угроз кибербезопасности R‑Vision. В первой части мы разобрали три PoC от Nightmare Eclipse — YellowKey, GreenPlasma и MiniPlasma. Это были совершенно разные техники: обход BitLocker через WinRE, низкоуровневый примитив на стыке CTF и Windows Object Managerи цепочка локального повышения привилегий (LPE), основанная на взаимодействии Cloud Files с Windows Error Reporting.
Тогда стало понятно, что защищаться от этих техник приходится по-разному. В одних случаях телеметрии практически нет, в других — можно строить вполне рабочие детекты по реестру, процессам и файловой системе.
В этой статье мы разберем оставшиеся пять PoC. Среди них — четыре уязвимости в Microsoft Defender (три LPE и одна DoS), а также еще один вариант обхода BitLocker через WinRE. Что особенно важно, три из этих техник уже были замечены в реальных атаках. Также мы сосредоточимся не только на механике эксплуатации, но и на том, какие артефакты оставляют эксплойты в системе, какие изменения происходят на устройствах Windows и на что стоит обратить внимание SOC- и threat hunting-командам при поиске следов компрометации.
Что произошло и почему это важно
Коротко напомним хронику.
Nightmare Eclipse (ранее известный как Chaotic Eclipse) — независимый исследователь, который с апреля по июнь 2026 года выкладывал PoC для Windows, минуя все стандартные процедуры согласованного раскрытия. У него явный конфликт с Microsoft, и в итоге технические детали с рабочими эксплойтами оказывались в открытом доступе до официальных патчей или до того, как защитники успевали подготовить нормальные детекты. Сам исследователь пояснил, что он действует так же нечестно, как и Microsoft Security Response Center (MSRC) поступает с отчетами по уязвимостям от независимых "белых хакеров". Кстати, даты пополнения репозиториев тоже выглядят по-особенному: некоторые источники говорят, что Nightmare Eclipse намеренно публикует PoC сразу после Patch Tuesday, подчёркивая конфликт с вендором.
Сегодня разбираем оставшиеся пять PoC: BlueHammer, RedSun, UnDefend, RoguePlanet и GreatXML. Они сильно отличаются и по векторам, и по возможностям обнаружения. Где-то мы снова увидим знакомые приёмы (VSS, oplock, Cloud Files), а где-то столкнёмся с новыми техниками — вроде RPC-интерфейса Defender или «ослепления» антивируса через блокировку файлов.
И вот что важно: BlueHammer, RedSun и UnDefend уже наблюдались в реальных атаках или попытках эксплуатации. Исследователи Huntress рассказали о случае использования BlueHammer в целевых вторжениях, а RedSun и Undefend встречались в пост-эксплуатационных сценариях, что также было подсвечено на портале CISA KEV ( BlueHammer , RedSun , UnDefend ).
Общая таблица по эксплоитам
Как и в прошлой статье, начнём с краткой сводки для тех, кому нужно сразу понять суть.
Практический результат
LPE / Microsoft Defender
SYSTEM shell через TOCTOU + RPC-вызовы
LPE / Microsoft Defender
SYSTEM shell через Cloud Files + directory junction
DoS / Microsoft Defender
Блокировка обновлений / отключение Defender
BitLocker bypass / WinRE
Доступ к расшифрованному тому из WinRE через unattend.xml
LPE / Microsoft Defender
SYSTEM shell через race condition при монтировании ISO
Полные идентификаторы CVE и особенности детектирования рассмотрим далее при разборе каждого PoC.
Четыре уязвимости в Microsoft Defender совсем не похожи на «экзотику» на уровне YellowKey, а скорее выглядят как прямое оружие для захвата системы. Три из них (BlueHammer, RedSun и RoguePlanet) дают полноценный SYSTEM shell, а UnDefend позволяет ослепить защиту. GreatXML тоже несет серьёзную угрозу, особенно в условиях физического доступа.
В рамках этой статьи мы разберем механику работы каждого публичного эксплоита и постараемся выявить артефакты, которые можно получить при помощи сбора событий Windows и какие из них сгодятся для детектирования.
BlueHammer ( CVE‑2026‑33825 ) — LPE-уязвимость в Microsoft Defender, основанная на TOCTOU race condition в механизме обновления сигнатур. Используя RPC и объектные символические ссылки атакующий заставляет Defender записать подконтрольный файл в системную папку или открыть доступ к SAM, получая привилегии SYSTEM.
1. Проверка и загрузка обновлений Defender
Сразу после запуска эксплойт через Windows Update API проверяет наличие обновлений сигнатур, скачивает CAB-файл с официального сервера и извлекает легитимные файлы сигнатур.
2. Создание теневой копии (VSS) для доступа к SAM
Во временной директории создаётся EICAR-файл , чтобы инициировать сканирование Defender. Затем устанавливается batch oplock на библиотеку RstrtMgr.dll . Когда Defender открывает этот DLL во время сканирования, его работа блокируется. Отдельный поток отслеживает появление новых объектов HarddiskVolumeShadowCopy . Как только Defender заморожен, система создаёт VSS , и путь перехватывается.
3. RPC-вызов к Defender с подменой пути
Эксплойт подключается к RPC-конечной точке Defender и вызывает процедуру ServerMpUpdateEngineSignature , передавая в качестве пути заранее подготовленную объектную символическую ссылку :
4. Гонка и перенаправление на VSS
Defender начинает обновление: создаёт новую папку в C:\ProgramData\Microsoft\Windows Defender\Definition Updates\ и копирует туда файлы. Эксплойт отслеживает создание директории. Как только папка появляется, он устанавливает batch oplock на файл обновления в своей папке и ждёт, пока Defender попытается его прочитать. В момент блокировки он переназначает объектную ссылку на путь:
после чего открывает файл SAM через CreateFileTransacted .
5. Извлечение и подмена паролей
Используя offline registry API ( offreg.h ), эксплойт читает структуры учётных записей и расшифровывает NTLM-хеши , используя данные SYSTEM/LSA для расшифровки SAM . Для каждого пользователя (кроме текущего и WDAGUtilityAccount ) он меняет пароль на заранее известный через SamiChangePasswordUser . Если пользователь входит в группу администраторов, создаётся служба со случайным GUID-именем , которая запускает поддельный процесс с привилегиями SYSTEM . После завершения работы исходный хеш восстанавливается.
Создание EICAR-файла в %TEMP%
Sysmon 11
Создание папки в Definition Updates
Sysmon 11, Windows Event 4663
Доступ к SAM через VSSВ
GLOBALROOT\Device\HarddiskVolumeShadowCopy*\Windows\System32\Config\SAM
Windows Event 4663
Серия событий смены/сброса пароля учётных записей
Windows Security 4723, 4724
Создание временной службы
Windows Event 4697, 7045
Если подозреваете эксплуатацию, в первую очередь смотрите на события доступа к SAM через VSS и на создание директорий в папке Defender Definition Updates не от процессов самого Защитника.
RedSun ( CVE‑2026‑41091 ) — LPE-уязвимость в Microsoft Malware Protection Engine. Она эксплуатирует некорректную обработку облачных файлов ( Cloud Files placeholders ) в связке с directory junctions от имени Defender. Атакующий создаёт cloud-файл с вредоносным содержимым, заставляет Defender его просканировать, а затем через junction (точку соединения) перенаправляет запись на системный файл C:\Windows\System32\TieringEngineService.exe. В результате Defender в контексте SYSTEM создаёт условия для перезаписи этого файла, после чего эксплойт самостоятельно копирует свой исполняемый файл в System32, а служба Storage Tiers Management запускает его с правами SYSTEM.
1. Подготовка рабочего каталога и EICAR-файла
Эксплойт создаёт уникальный каталог в %TEMP% (например, %TEMP%\RS-{GUID} ) и помещает в него файл TieringEngineService.exe , содержащий EICAR-строку . Затем файл открывается для чтения, что инициирует сканирование Microsoft Defender .
2. Создание Shadow Copy и захват oplock
Запускается поток, который отслеживает появление новых объектов HarddiskVolumeShadowCopy в \Device . Как только Defender начинает обрабатывать EICAR-файл, система создаёт теневую копию тома (VSS) . Поток перехватывает путь к VSS, открывает в ней тот же TieringEngineService.exe и устанавливает batch oplock . Работа Defender блокируется.
3. Создание облачного placeholder-файла
Эксплойт регистрирует рабочий каталог как sync root с помощью CfRegisterSyncRoot под именем провайдера SERIOUSLYMSFT . Затем создаётся placeholder-файл TieringEngineService.exe через CfCreatePlaceholders . Defender воспринимает его как облачную заглушку, после чего оригинальный EICAR-файл удаляется.
4. Переименование каталога и создание directory junction
Эксплойт переименовывает рабочий каталог во временное имя (с суффиксом .TMP ), после чего создаёт новый каталог с исходным именем. В нём создаётся пустой файл TieringEngineService.exe с атрибутом FILE_ATTRIBUTE_READONLY , на который устанавливается oplock . Затем файл переименовывается и удаляется, а на каталог устанавливается directory junction , указывающий на:
5. Гонка и перезапись системного файла
Эксплойт в цикле пытается открыть C:\Windows\System32\TieringEngineService.exe на запись через NtCreateFile . Defender обращается к пути, который благодаря directory junction перенаправляется в System32 . PoC добивается получения дескриптора с правом записи и копирует payload .
В результате обращение к
незаметно перенаправляется на
Работая с привилегиями SYSTEM , Defender перезаписывает системный файл подконтрольным содержимым, после чего эксплойт копирует свой исполняемый файл в C:\Windows\System32\TieringEngineService.exe , закрепляя полезную нагрузку.
6. Запуск подменённой службы
Эксплойт вызывает функцию LaunchTierManagementEng() , которая создаёт COM-объект с CLSID {50d185b9-fff3-4656-92c7-e4018da4361d} . Это приводит к запуску службы TieringEngineService.exe с привилегиями SYSTEM .
7. Запуск консоли от имени SYSTEM
Через именованный канал REDSUN (название может отличаться в зависимости от форка PoC) эксплойт получает идентификатор сессии интерактивного пользователя и запускает conhost.exe с привилегиями SYSTEM в этой сессии.
Создание каталога %TEMP%\RS-{GUID}
Sysmon 11
Создание EICAR-файла TieringEngineService.exe в %TEMP%
Sysmon 11
Загрузка cldapi.dll процессом из временного пути
Sysmon 7
Изменение / создание C:\Windows\System32\TieringEngineService.exe
Sysmon 11, Windows Event 4663
Запуск TieringEngineService.exe от SYSTEM
Sysmon 1, Windows Event 4688
Запуск conhost.exe от SYSTEM в интерактивной сессии
Sysmon 1, Windows Event 4688
Ниже приведён пример корреляционного фильтра на VRL , который выявляет создание файла TieringEngineService.exe во временной директории — одного из характерных артефактов работы RedSun.
Корреляционный фильтр, построенный выше, ожидает одно из самых первых событий, вызванных RedSun, а также поскольку это лишь подготовка почвы для эксплуатации, поймать вовремя работу PoC получится вне зависимости от исхода его выполнения. Даже если, например, из-за новой версии Defender эксплуатация не удастся, мы все равно узнаем, что была ее попытка.
UnDefend ( CVE‑2026‑45498 )— DoS-уязвимость в Microsoft Defender Antimalware Platform, связанная с отсутствием защиты критически важных файлов от монопольной блокировки.Эксплойт позволяет нарушить работу Defender, блокируя доступ к его служебным файлам, и поддерживает два режима работы:
Passive (блокировка обновлений): блокирует файлы в папке Backup и новые файлы обновлений при их появлении — Defender не может завершить обновление сигнатур.
Passive (блокировка обновлений): блокирует файлы в папке Backup и новые файлы обновлений при их появлении — Defender не может завершить обновление сигнатур.
Aggressive (отключение защиты): при остановке службы WinDefend (например, при крупном платформенном обновлении) блокирует основной движок mpavbase.vdm, из-за чего Defender не может перезапуститься и остаётся выключенным.
Aggressive (отключение защиты): при остановке службы WinDefend (например, при крупном платформенном обновлении) блокирует основной движок mpavbase.vdm, из-за чего Defender не может перезапуститься и остаётся выключенным.
1. Блокировка файлов резервного копирования
Эксплойт открывает файлы mpavbase.lkg и mpavbase.vdm в каталоге
%ProgramData%\Microsoft\Windows Defender\Definition Updates\Backup\
и устанавливает на них монопольную блокировку через LockFileEx . В результате резервные копии становятся недоступны и не могут использоваться при сбое обновления.
2. Регистрация callback на остановку службы WinDefend (агрессивный режим)
Эксплойт вызывает NotifyServiceStatusChangeW с событием SERVICE_NOTIFY_STOPPED для службы WinDefend , чтобы отслеживать её остановку.
3. Мониторинг каталога Definition Updates (пассивный режим)
С помощью ReadDirectoryChangesW эксплойт отслеживает каталог Definition Updates . При появлении новых файлов они сразу открываются с монопольной блокировкой , из-за чего Defender не может читать или записывать их.
4. Блокировка engine-файла при остановке Defender (агрессивный режим)
Когда служба WinDefend останавливается (например, во время обновления платформы), срабатывает зарегистрированный callback. Эксплойт открывает файл mpavbase.vdm с монопольной блокировкой . В результате Defender не может завершить перезапуск и остаётся отключённым до перезагрузки системы или снятия блокировки.
5. Дополнительная блокировка MRT
Отдельный поток отслеживает каталог
C:\Windows\System32\MRT
и блокирует любые изменяемые файлы, препятствуя обновлению Microsoft Malicious Software Removal Tool (MRT) .
Результат:
Пассивный режим: Defender с устаревшими сигнатурами, не обновляется, не видит новые угрозы.
Пассивный режим: Defender с устаревшими сигнатурами, не обновляется, не видит новые угрозы.
Агрессивный режим: может оставить Defender в состоянии engine unavailable до перезагрузки/снятия блокировки/успешного обновления.
Агрессивный режим: может оставить Defender в состоянии engine unavailable до перезагрузки/снятия блокировки/успешного обновления.
Открытие mpavbase.lkg / mpavbase.vdm в Backup с монопольной блокировкой
Windows Event 4663
Открытие файлов в C:\Windows\System32\MRT с монопольной блокировкой
Windows Event 4663
UnDefend — тихий DoS-эксплойт, он не повышает привилегии, но создаёт опасное окно для последующих атак. Чтобы его обнаружить, имеет смысл отслеживать подозрительное открытие mpavbase.lkg и mpavbase.vdm, а также изменения в Definition Updates не от процессов АВПО.
GreatXML — второй после YellowKey обход BitLocker через Windows Recovery Environment (WinRE). Для этой техники на момент публикации CVE не присвоен . Атакующий копирует специально подготовленный unattend.xml в корень recovery-раздела. При загрузке в WinRE система обрабатывает этот XML и вместо штатного восстановления открывает командную строку с доступом к уже разблокированному тому BitLocker.
Ключевое условие для сценария без предварительного входа в систему: Microsoft Defender Offline Scan уже должен был запускаться хотя бы раз . Это создаёт нужную структуру recovery-раздела. Если этого не было, атакующему потребуется самому инициировать или воссоздать состояние Defender Offline Scan, что обычно требует дополнительного доступа.
Атакующий получает физический доступ к диску (или возможность смонтировать recovery-раздел).
Атакующий получает физический доступ к диску (или возможность смонтировать recovery-раздел).
Копирует подготовленный unattend.xml в корень recovery-раздела и размещает/подменяет связанные файлы в структуре Recovery, включая Recovery\WindowsRE\ReAgent.xml.
Копирует подготовленный unattend.xml в корень recovery-раздела и размещает/подменяет связанные файлы в структуре Recovery, включая Recovery\WindowsRE\ReAgent.xml.
Инициирует перезагрузку в WinRE (например, через меню восстановления).
Инициирует перезагрузку в WinRE (например, через меню восстановления).
WinRE обрабатывает unattend.xml, выполняет команды и открывает командную строку.
WinRE обрабатывает unattend.xml, выполняет команды и открывает командную строку.
На системах с TPM-only BitLocker том уже разблокирован — доступ к файловой системе получен.
На системах с TPM-only BitLocker том уже разблокирован — доступ к файловой системе получен.
Результат: Командная строка с доступом к расшифрованным данным. Можно копировать файлы, менять настройки или ставить вредоносное ПО с привилегиями SYSTEM в среде восстановления.
GreatXML оставляет в телеметрии Windows крайне мало следов, потому что эксплуатация происходит до старта ОС. Но можно посмотреть на косвенные признаки:
Нестандартный unattend.xml в recovery-разделе
Файл появляется в корне recovery-раздела (обычно скрытый раздел, доступный только при загрузке WinRE)
Обязательное условие для эксплуатации GreatXML
GreatXML сложно детектировать событиями. Основной упор — на организационные меры и физическую безопасность. В отличие от YellowKey, здесь нужен хотя бы один запуск Defender Offline Scan, создающий необходимые файлы и директории, что немного сужает круг уязвимых систем.
RoguePlanet ( CVE-2026-50656 )— LPE-уязвимость в Microsoft Defender, основанная на TOCTOU race condition при обработке файлов во время очистки (cleanup). Атакующий подсовывает Defender файл-приманку, инициирует сканирование и очистку, а затем во время этой операции меняет файловую топологию через junction (точку соединения) и использует альтернативные потоки данных (ADS) и теневые копии (VSS) для точной синхронизации. Defender, работая в контексте SYSTEM, продолжает работать с именем, которое уже проверил, но реальный объект за этим именем становится другим. В результате подменённый файл запускается через штатную задачу Windows Error Reporting от SYSTEM.
1. Подготовка рабочего каталога и структуры
Эксплойт создаёт рабочий каталог с поддельным системным путём вида:
Также создаётся промежуточный каталог wdtest_temp , который используется в race condition .
После этого монтируется встроенный ISO-образ (без назначения буквы диска), из которого извлекается легитимный файл wermgr.exe , используемый в качестве приманки для Microsoft Defender . К файлу добавляется альтернативный поток данных (ADS) :WDFOO , который впоследствии используется для синхронизации через VSS .
2. Инициация сканирования и очистки
Через библиотеку Mpclient.dll эксплойт вызывает функции MpScanStart , MpScanResult , MpCleanOpen и MpCleanStart . В результате Microsoft Defender получает файл-приманку и начинает его обработку с привилегиями SYSTEM .
3. Гонка: переключение файловой топологии с использованием VSS и ADS
Для синхронизации этапов очистки эксплойт использует теневые копии (VSS) . Он открывает файл через HarddiskVolumeShadowCopy* по пути, содержащему альтернативный поток данных (ADS) :
и устанавливает на него batch oplock , чтобы зафиксировать момент обращения Defender к файлу.
Параллельно эксплойт изменяет объект, на который указывает путь
Для этого поочерёдно используются смонтированный ISO-образ , временный каталог , directory junction на C:\Windows , а также переименование каталогов . В результате Defender продолжает работать с уже известным именем файла, тогда как пользовательский процесс незаметно подменяет объект, на который это имя ссылается.
4. Запуск подменённого файла через Windows Error Reporting
После успешной подмены эксплойт запускает штатную задачу
В результате Windows Error Reporting (WER) запускает процесс
от имени NT AUTHORITY\SYSTEM с родительским процессом svchost.exe .
5. Получение SYSTEM shell в интерактивной сессии
Если процесс уже выполняется с привилегиями SYSTEM , эксплойт подключается к именованному каналу
получает идентификатор пользовательской сессии, дублирует SYSTEM-токен и запускает conhost.exe . В результате атакующий получает полноценную командную строку с привилегиями SYSTEM .
Создание каталога %TEMP%\RP_*
Sysmon 11
Создание %TEMP%\RP_*\System32\wermgr.exe
Sysmon 11
Создание промежуточного каталога wdtest_temp
Sysmon 11
Загрузка Mpclient.dll пользовательским процессом
Sysmon 7
Запуск wermgr.exe -upload от SYSTEM
Sysmon 1, Security 4688
Запуск conhost.exe от SYSTEM
Sysmon 1, Security 4688
Ниже приведён пример корреляционного фильтра на языке VRL , который выявляет создание поддельного wermgr.exe и обращение к альтернативному потоку данных ADS :WDFOO .
RoguePlanet интересен тем, как использует Defender: пользовательский процесс подсовывает файл, сам инициирует очистку, а затем во время очистки меняет файловые ссылки так, чтобы привилегированная операция сработала уже на другом объекте. Классический TOCTOU, но с нестандартным применением — вместо того чтобы ждать, пока Defender сам просканирует файл, эксплойт принудительно вызывает сканирование через Mpclient.dll. Ключевыми точками для детектирования являются создание ADS :WDFOO, использование VSS, монтирование ISO и установка junction. Уязвимость была исправлена со стороны вендора в рамках обновления движка Microsoft Malware Protection Engine до версии 1.1.26060.3008.
Активность Microsoft Defender часто воспринимается как заведомо легитимная, поэтому события, связанные с его работой, нередко остаются вне поля зрения специалистов по мониторингу. Однако рассмотренные PoC показывают, что механизмы самого антивируса могут становиться частью цепочки атаки: использоваться для повышения привилегий, обхода защитных механизмов или нарушения работы средства защиты.
Именно поэтому события, связанные с работой Defender, стоит рассматривать не только как системную активность, но и как потенциальные индикаторы компрометации. Мониторинг нетипичных операций, контроль целостности критических файлов и корреляция событий, связанных с обновлением и работой антивируса, позволяют обнаружить подобные атаки на ранних этапах.
В этом небольшом цикле статей мы разобрали все публичные PoC, доступные на момент публикации и представленные исследователем Nightmare Eclipse. Однако, судя по его анонсам, исследования в этой области продолжаются, а значит, вполне вероятно появление новых способов эксплуатации Microsoft Defender. Поэтому механизмы защиты и правила обнаружения подобных техник также должны регулярно обновляться.
BlueHammer: https://git.projectnightcrawler.dev/NightmareEclipse/BlueHammer
BlueHammer: https://git.projectnightcrawler.dev/NightmareEclipse/BlueHammer
RedSun: https://git.projectnightcrawler.dev/NightmareEclipse/RedSun
RedSun: https://git.projectnightcrawler.dev/NightmareEclipse/RedSun
UnDefend: https://git.projectnightcrawler.dev/NightmareEclipse/UnDefend
UnDefend: https://git.projectnightcrawler.dev/NightmareEclipse/UnDefend
GreatXML: https://git.projectnightcrawler.dev/NightmareEclipse/GreatXML
GreatXML: https://git.projectnightcrawler.dev/NightmareEclipse/GreatXML
RoguePlanet: https://git.projectnightcrawler.dev/NightmareEclipse/RoguePlanet
RoguePlanet: https://git.projectnightcrawler.dev/NightmareEclipse/RoguePlanet
Huntress: «Nightmare-Eclipse Tooling Seen in Real-World Intrusion»
Huntress: «Nightmare-Eclipse Tooling Seen in Real-World Intrusion»
BleepingComputer: «Microsoft Defender 'RoguePlanet' zero-day grants SYSTEM privileges»
BleepingComputer: «Microsoft Defender 'RoguePlanet' zero-day grants SYSTEM privileges»
SecurityWeek: «Microsoft Tries to Calm Legal Threat Fears After Zero-Day Disclosure Backlash»
SecurityWeek: «Microsoft Tries to Calm Legal Threat Fears After Zero-Day Disclosure Backlash»
The Hacker News: «Microsoft Warns of Two Actively Exploited Defender Vulnerabilities»
The Hacker News: «Microsoft Warns of Two Actively Exploited Defender Vulnerabilities»
ThreatLocker: «GreatXML: Exploiting the WinRE trust boundary behind BitLocker»
ThreatLocker: «GreatXML: Exploiting the WinRE trust boundary behind BitLocker»