
Усиление защиты BitLocker TPM+PIN от CVE-2026-45585 (YellowKey)
Автоматизированное смягчение для обхода BitLocker через WinRE — полного патча пока нет
YellowKey — это публично раскрытый метод обхода BitLocker, который даёт злоумышленнику с физическим доступом неограниченную командную оболочку на защищённом BitLocker диске Windows 11 — без ключа восстановления, без PIN-кода и без каких-либо учётных данных.
Компонент в среде восстановления Windows (autofstx.exe) выполняет процедуру восстановления транзакционной NTFS, которая удаляет winpeshl.ini. Побочный эффект — запуск оболочки с полным доступом к расшифрованному тому. Злоумышленник активирует атаку, скопировав папку на USB-накопитель (или напрямую в EFI-раздел), перезагрузившись в WinRE и удерживая CTRL.
Переход с только TPM на TPM+PIN полностью блокирует атаку. При необходимости ввода PIN-кода при загрузке злоумышленник не сможет расшифровать диск независимо от того, как запущена оболочка WinRE — TPM не выдаст мастер-ключ тома без правильного PIN-кода.
BitLocker только с TPM разблокируется автоматически при любой загрузке на том же оборудовании. TPM+PIN требует секрет, известный только пользователю, закрывая брешь YellowKey.
Скрипт обрабатывает необходимые предварительные условия групповой политики, которые по умолчанию блокируют добавление защитника PIN через manage-bde, а затем безопасно переводит диск с режима только TPM на TPM+PIN за один запуск.
Запуск Add-BitLockerTPMPin.ps1 (администратор)
│
▼
[Проверка версии] ──→ корректно завершает работу на Windows 10 (не затронута)
│
▼
[Проверка статуса BitLocker] ──→ подтверждает, что шифрование активно на C:
│
▼
[Исправление групповой политики] ──→ устанавливает UseAdvancedStartup + UseTPMPIN + UseEnhancedPin
│ (обязательно — manage-bde отвергает TPM+PIN без них)
▼
[gpupdate /force] ──→ применяет политику немедленно без перезагрузки
│
▼
[manage-bde -protectors -add C: -TPMAndPIN] ──→ запрашивает PIN-код интерактивно
│
▼
[Список защитников] ──→ показывает все текущие защитники для проверки
│
▼
[Удаление защитника только TPM] ──→ опционально, запрашивается подтверждение
# Выполните две отдельные команды в повышенной командной строке PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force
# Все защищённые BitLocker диски (автоматическое обнаружение):
.\Add-BitLockerTPMPin.ps1
# Или укажите конкретный диск:
.\Add-BitLockerTPMPin.ps1 -Drive C
.\Add-BitLockerTPMPin.ps1 -Drive D
Вам будет предложено интерактивно установить PIN-код для каждого диска. Поддерживаются буквенно-цифровые PIN-коды (скрипт включает расширенные PIN-коды через реестр).
Примечание: Защитники TPM+PIN применяются только к системному диску (диску, который загружается через TPM). Диски с данными (D:, E: и т.д.) используют защитники паролем или ключом восстановления — скрипт автоматически обнаружит и пропустит их.
Найдены защищённые BitLocker диски:
C:\ Полностью зашифрован Защита: Вкл.
D:\ Полностью зашифрован Защита: Вкл.
Ключи групповой политики установлены. Обновление политики...
==============================
Диск: C:\
==============================
Добавление защитника TPM+PIN. Вам будет предложено ввести PIN-код.
PIN-код должен содержать не менее 6 символов. Поддерживается буквенно-цифровой.
Введите PIN-код для защиты тома:
Подтвердите PIN-код, введя его снова:
Ключевые защитники добавлены:
TPM и PIN:
ID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Текущие защитники на C:\:
...
Найден защитник только TPM: {YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}
Удалить защитник только TPM на C:\? Это оставит только TPM+PIN. (y/N): y
Защитник только TPM удалён.
==============================
Диск: D:\
==============================
На D:\ нет защитника TPM — TPM+PIN применяется только к системному диску. Пропускаем.
Готово. Проверьте с помощью: manage-bde -status <диск>
manage-bde -status C:
# Должно показывать: Key Protectors: TPM And PIN
# Protection Status: Protection On
Перед запуском убедитесь, что у вас есть ключ восстановления. Скрипт удаляет защитник только TPM только после подтверждения успешного добавления защитника TPM+PIN, но если машина перезагрузится во время выполнения или шаг manage-bde -add частично завершится неудачей, вам понадобится ключ восстановления для разблокировки диска.
Извлеките ключ восстановления сейчас:
# Вывести ключ восстановления на консоль (сохраните в надёжное место)
manage-bde -protectors -get C: -Type RecoveryPassword
Или найдите его в учётной записи Microsoft по адресу account.microsoft.com/devices/recoverykey.
Выбор PIN-кода важен. Короткий цифровой PIN-код обеспечивает слабую защиту от целенаправленных физических атак. Используйте не менее 8 символов. Скрипт включает буквенно-цифровые PIN-коды.
Скрипт устанавливает четыре значения реестра в HKLM:\SOFTWARE\Policies\Microsoft\FVE:
Это те же самые ключи, которые записывает групповая политика Windows (gpedit.msc). Установка их через реестр эквивалентна настройке политики через оснастку MMC.
Если вы предпочитаете выполнять шаги по отдельности:
# 1. Установить ключи групповой политики в реестре
$p = "HKLM:\SOFTWARE\Policies\Microsoft\FVE"
if (-not (Test-Path $p)) { New-Item -Path $p -Force }
Set-ItemProperty -Path $p -Name "UseAdvancedStartup" -Value 1 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPMPIN" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPM" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseEnhancedPin" -Value 1 -Type DWord -Force
gpupdate /force
# 2. Добавить защитник TPM+PIN
manage-bde -protectors -add C: -TPMAndPIN
# 3. Найти ID защитника только TPM
manage-bde -protectors -get C:
# 4. Удалить его (замените GUID на ID из шага 3)
manage-bde -protectors -delete C: -id {YOUR-TPM-ONLY-GUID}
# 5. Проверить
manage-bde -status C:
yellowkey-mitigation/
├── Add-BitLockerTPMPin.ps1 # Основной скрипт смягчения
└── README.md
Этот скрипт был разработан совместно с Claude (Anthropic). Вся логика была проверена и протестирована на Windows 11 автором.
MIT — Бесплатно для использования, изменения и распространения.
| Детали |
|---|
| CVE | CVE-2026-45585 |
| Оценка CVSS | 6.8 (Средняя) |
| Вектор CVSS | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-77 (Внедрение команд) |
| Вектор атаки | Требуется физический доступ |
| Опубликовано | 19 мая 2026 г. |
| Патч | Отсутствует — Microsoft выпустила только руководство по смягчению |
| Уведомление MSRC | msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585 |
| PoC | Общедоступен (Nightmare-Eclipse/YellowKey) |
| Затронутые версии | Windows 11 (24H2, 25H2, 26H1), Windows Server 2022/2025 |
| Не затронуты | Windows 10 |
| Ключ | Значение | Назначение |
|---|
UseAdvancedStartup | 1 | Включает политику «Требовать дополнительную аутентификацию при запуске» — без неё все ключи UseTPM* игнорируются |
UseTPMPIN | 2 | 0 = блокировать, 1 = требовать, 2 = разрешить TPM+PIN |
UseTPM | 2 | Разрешает только TPM наряду с PIN (предотвращает конфликты политик) |
UseEnhancedPin | 1 | Разрешает буквенно-цифровые символы в PIN-коде |