На физическом пентесте прошлым летом мы потратили четыре часа, чтобы вытащить Volume Master Key из корпоративного ноутбука с TPM-only BitLocker: вскрыли корпус, подпаяли логический анализатор (Saleae Logic Pro - мой рабочий вариант) к шине LPC, дождались загрузки и перехватили ключ. В мае 2026 года ребята из Intrinsec выпустили BitUnlocker и показали, как получить тот же результат за пять минут - одной USB-флешкой, без вскрытия корпуса, без пайки. Ключевая уязвимость - CVE-2025-48804 (CVSS 6.8, вектор
AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), пропатченная Microsoft в июле 2025 года. Патч закрывает конкретную дыру, но корневая проблема на месте: Secure Boot до сих пор доверяет устаревшему сертификату Windows PCA 2011, и атакующий спокойно грузит уязвимую версию boot manager - система пропускает без вопросов.BitLocker и TPM: почему дефолтная конфигурация уязвима
BitLocker шифрует том ключом FVEK (Full Volume Encryption Key), который обёрнут в Volume Master Key (VMK). VMK запечатан в TPM и привязан к состоянию платформы через регистры PCR. При каждой загрузке TPM измеряет цепочку: UEFI firmware → boot manager → загрузчик ОС. Измерения совпали с эталонными - TPM распечатывает VMK, BitLocker разблокирует том прозрачно для пользователя. Подробнее - в нашем статье о living off the land атаки windows.Угрозовая модель BitLocker прямо учитывает физического атакующего: полный физический доступ, но без учётных данных. По данным исследовательской группы Microsoft STORM (Black Hat USA 2025, DEF CON 33), BitLocker - одна из немногих фич Windows, где физическая атака входит в threat model. Звучит солидно. Пока не посмотришь на дефолтную конфигурацию.
Microsoft сделала TPM-only режим дефолтным. Включаешь BitLocker через GUI или групповые политики без дополнительных настроек - pre-boot PIN не запрашивается. TPM отдаёт VMK автоматически, если цепочка загрузки валидна с точки зрения подписей и PCR-измерений. Для пользователя удобно - ноутбук грузится без дополнительных паролей. Для атакующего с физическим доступом задача сводится к одному: заставить TPM поверить, что цепочка загрузки легитимна.
А вот тут самое интересное. TPM не проверяет, какой именно версии загрузчик перед ним. TPM проверяет подпись. Подпись валидна - ключ выдан. Загрузчик может быть старым, дырявым, с известными уязвимостями - TPM это не волнует. Именно здесь включается Downgrade Attack (T1562.010).
WinRE - атакующая поверхность, которую создала сама Microsoft
Windows Recovery Environment (WinRE) - среда восстановления для ситуаций, когда основная система не загружается. Любой с физическим доступом попадает в WinRE: зажать Shift при перезагрузке с экрана логина. Когда Microsoft добавляла поддержку BitLocker, архитектуру WinRE пришлось перестроить - и эти изменения открыли новые атакующие поверхности.Первое - WinRE.wim переехал на незашифрованный раздел. Образ среды восстановления лежал на системном томе, который теперь зашифрован BitLocker. Чтобы WinRE работала при проблемах с шифрованием, файл перенесли на отдельный Recovery-раздел без шифрования. Результат: любой с физическим доступом может прочитать и модифицировать WinRE.wim.
Второе - механизм Trusted WIM Boot. Для защиты WinRE.wim от подмены Microsoft добавила проверку хеша: boot manager сравнивает хеш образа с эталонным. Совпадает - том автоматически разблокируется. Не совпадает - остаётся заблокированным. Идея корректная, но дьявол в деталях: уязвимость кроется в том, как именно boot manager парсит WIM-файл и обрабатывает данные.
Третье - Volume Re-Lock. Потенциально опасные инструменты восстановления (командная строка, например) при запуске заново блокируют том, чтобы атакующий не получил доступ через WinRE. Но это работает только при загрузке легитимной WinRE - если атакующий загрузил собственный код, перезапирать нечего.
CVE-2025-48804 эксплуатирует первое и второе изменения. CWE-349 (Acceptance of Extraneous Untrusted Data With Trusted Data): атакующий подаёт boot manager легитимный WIM-файл для прохождения проверки целостности, но присоединяет вредоносную нагрузку. Система верифицирует чистую часть - и слепо запускает код атакующего.
CVE-2025-48804 и BitUnlocker: downgrade-атака за 5 минут
Fingerprinting цели перед атакой
Прежде чем тащить на объект USB-флешку с payload - нужно понять, сработает ли вектор. На физическом пентесте fingerprinting ограничен тем, что удаётся узнать заранее или при кратковременном доступе.
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Место BitUnlocker в kill chain и сравнение векторов обхода BitLocker
В kill chain BitUnlocker покрывает переход от физического доступа к credential access:- Physical Access - подключение USB, изменение порядка загрузки
- Defense Evasion - Downgrade Attack (T1562.010), обход Trusted WIM Boot
- Direct Volume Access (T1006) - чтение содержимого расшифрованного тома
- Credential Access - извлечение
SAM/SYSTEMдля offline-атаки на хеши (T1003), DPAPI master keys, сохранённых учётных данных, закрытых ключей (T1552.004)
hashcat/john. Если ноутбук принадлежит доменному пользователю - это entry point в корпоративную AD.Обход BitLocker - не один метод, а семейство техник. Выбор зависит от конфигурации цели:
| Условие на цели | Вектор | Время | Разборка корпуса | Блокируется PIN | Блокируется UEFI CA 2023 |
|---|---|---|---|---|---|
| TPM-only, PCA 2011 доверен | BitUnlocker (downgrade) | ~5 мин | Нет | Да | Да |
| TPM-only, PCA 2011 отозван | TPM sniffing по LPC/SPI | 1-4 ч | Да | Да | Нет |
| TPM+PIN | Cold boot / DMA | 15-30 мин | Частично | Частично | Нет |
| Нет физического доступа | Неприменимо | - | - | - | - |
BitUnlocker - оптимальный вектор для типичного корпоративного ноутбука: TPM-only без PIN, KB5025885 не завершён. Это большинство реальных развёртываний. TPM-only - дефолт Microsoft, а миграция сертификатов - тот процесс, который организации откладывают до последнего.
TPM sniffing остаётся актуальным, когда PCA 2011 уже отозван. Требует вскрытия корпуса и подключения логического анализатора к контактам TPM на шине LPC или SPI. Дольше и технически сложнее, но на уровне шины перехватывает VMK напрямую - версия сертификата тут роли не играет.
Cold boot через дамп ОЗУ - подход, описанный, например, в инструменте Memory-Dump-UEFI. Основан на остаточном хранении данных в RAM после отключения питания. В дампе ищут FVEK по pool tag: в Windows 7 -
FVEc, в Windows 8.1/10 - Cngb (модуль ksecdd.sys). Работает против любой конфигурации, но результат не гарантирован - содержимое RAM деградирует после потери питания.Защита: какой шаг в атаке блокирует каждая мера
Не абстрактный чеклист - привязка каждой меры к конкретному шагу цепочки BitUnlocker.Pre-boot PIN - блокирует шаг 5. TPM не распечатает VMK без ввода PIN, даже если загрузчик подписан валидным сертификатом. Включается через
manage-bde -protectors -add C: -TPMAndPIN. Для массового развёртывания - GPO: Computer Configuration → Administrative Templates → Windows Components → BitLocker Drive Encryption → Operating System Drives → Require additional authentication at startup. Это единственная мера, которая закрывает и downgrade, и TPM sniffing: перехваченный на шине VMK без PIN бесполезен.KB5025885 и миграция на UEFI CA 2023 - блокирует шаг 3. После завершения миграции Secure Boot отклоняет загрузчики с подписью PCA 2011. Старый
bootmgfw.efi не проходит проверку подписи. Миграция идёт в несколько этапов, последний требует обновления DBX (Secure Boot Forbidden Signature Database) для отзыва PCA 2011. Проверка статуса:
Код:
# PowerShell от администратора
Confirm-SecureBootUEFI
$sb = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot"
$sb.AvailableUpdates
# Если AvailableUpdates = 0 - миграция завершена, PCA 2011 отозван
Отключение загрузки с внешних носителей - блокирует шаг 2. В BIOS/UEFI Setup: External Device Boot = Disabled. В связке с паролем BIOS существенно усложняет атаку.
Kernel DMA Protection - блокирует альтернативные векторы. На BitUnlocker не влияет, но закрывает атаки через PCILeech / Thunderbolt DMA. Проверка:
msinfo32 → Kernel DMA Protection = On.Чеклист для отчёта о физическом пентесте
Код:
1. [ ] Pre-boot PIN включён: manage-bde -protectors -get C: | findstr TPMAndPIN
2. [ ] KB5025885 применён, миграция на UEFI CA 2023 завершена
3. [ ] Пароль BIOS/UEFI установлен
4. [ ] Загрузка с внешних носителей отключена
5. [ ] Secure Boot активен с актуальным DBX
6. [ ] Kernel DMA Protection включена
7. [ ] BitLocker Status: manage-bde -status C: - Key Protectors = TPMAndPIN
Большинство корпоративных развёртываний BitLocker работают в TPM-only - Microsoft сделала это дефолтом, и мало кто меняет. В каждом втором физическом пентесте, где BitLocker включён, проблема не в криптографии AES-256, а в конфигурации: ключ отдаётся TPM автоматически любому, кто загрузит корректно подписанный загрузчик. CVE-2025-48804 - не аномалия, а следствие системной проблемы. Microsoft не может отозвать PCA 2011, потому что это заблокирует загрузку на огромном количестве машин, где KB5025885 ещё не применён. Миграция на UEFI CA 2023 идёт больше года и далека от завершения. Пока PCA 2011 в списке доверенных - downgrade-атаки будут работать независимо от того, сколько патчей Microsoft выпустит для конкретных CVE в загрузчиках. Единственная мера, которая закрывает весь класс pre-boot атак - pre-boot PIN. Не пароль BIOS, не отключение USB, не DMA-защита. Шестизначный код, добавляющий три секунды к каждой загрузке. И пока организации массово жертвуют этими тремя секундами ради «удобства пользователей», физические пентесты корпоративных ноутбуков будут заканчиваться одинаково: VMK извлечён, том расшифрован, хеши собраны. Если хочется отработать криптографическую цепочку от перехвата ключа до полного доступа на живом стенде - на HackerLab.pro есть задачи в категории crypto, где примитивы нужно не просто знать, а собрать в рабочий эксплойт.