-
Introducción
- Este artículo explica cómo eludir el cifrado de BitLocker en Windows 11 (versión 24H2). Esto se logra extrayendo de la memoria la clave de cifrado de volumen completo (FVEK).
-
Antecedentes
- Si un atacante puede acceder físicamente al dispositivo, puede reiniciar de forma abrupta la computadora y volcar la RAM de la instancia de Windows ejecutada más recientemente para obtener información sensible.
- El contenido de la RAM se degrada rápidamente cuando se corta la energía, por lo que existen métodos para evitarlo, como enfriar físicamente la RAM o usar una fuente de alimentación externa.
- El arranque seguro es un estándar de seguridad que restringe qué se puede ejecutar al iniciar el dispositivo, pero existen formas de eludirlo.
-
Paso 1: crear un dispositivo USB booteable
- Se debe preparar un dispositivo de almacenamiento USB con mayor capacidad que la RAM del sistema objetivo.
- Se usa el script
flashimage.sh para crear y utilizar una aplicación booteable.
-
Paso 2: reinicio abrupto del sistema objetivo
- El objetivo es minimizar el tiempo en que la computadora permanece completamente apagada.
- Mientras Windows se está cargando, reiniciar el sistema antes de que aparezca la pantalla de inicio de sesión resulta efectivo.
-
Paso 3: arrancar desde el dispositivo USB
- Arrancar de inmediato desde el dispositivo USB con Memory-Dump-UEFI para llegar al shell de UEFI.
- Ejecutar
app.efi para generar el volcado de memoria.
-
Paso 4: análisis del volcado
- Debido al límite de tamaño de archivo de 4 GB del sistema de archivos FAT32, pueden generarse varios volcados.
- Se puede usar el programa
concatDumps para combinar varios volcados en uno solo.
- Se puede usar el programa
searchMem para buscar patrones específicos dentro del volcado.
-
Pool tags
- Los pool tags son identificadores de 4 caracteres que indican la ubicación del pool de memoria del kernel de Windows.
- El archivo
pooltag.txt incluye varios pool tags y su propósito.
-
Recuperación de la clave FVEK
- La clave FVEK puede encontrarse bajo el pool tag
dFVE, relacionado con el filtro de volcado por falla de cifrado de unidad BitLocker Drive Encryption de volumen completo.
- La clave también puede encontrarse bajo la etiqueta
None.
-
Siguientes pasos
- Se debe añadir el algoritmo utilizado con la clave obtenida.
- Se puede usar la herramienta
dislocker para desbloquear la unidad.
-
Nota final
- Para comprender la implementación de BitLocker, lo mejor es realizar depuración a nivel de kernel.
- Microsoft intenta destruir las claves, pero no logra destruirlas todas.
1 comentarios
Comentarios en Hacker News
BitLocker ofrece su mayor beneficio cuando se usa junto con TPM (PCR 7+11) y un PIN. Sin el PIN no se puede leer la FVEK, y si se introduce mal el PIN demasiadas veces, el TPM entra en modo de bloqueo por ataque de diccionario
No entiendo el modelo de seguridad de BitLocker. En la mayoría de las instalaciones, basta con presionar el botón de encendido para arrancar Windows
Un ataque específico queda completamente defendido por la especificación de mitigación de ataques de reinicio de plataforma para grupos de trabajo de clientes PC
Soy el autor del artículo. Si tienen preguntas, envíenme un mensaje. Fue un trabajo divertido y gracias por el interés
Hay una charla relacionada en 38C3 sobre el bypass de BitLocker en Windows 11
Existen máquinas "enterprise" en las que un adversario arbitrario con acceso físico no puede provocar externamente un "reinicio repentino"
BitLocker solo protege cuando la computadora está apagada, y debe configurarse para exigir una contraseña de arranque
Windows propone opciones de cifrado de memoria y compresión de memoria
Sobre un exploit que lee el volcado de memoria de la máquina objetivo, me pregunto si con acceso físico sería posible que un dispositivo "interposer" copie o modifique los datos externamente
Un Surface 5 Pro con disco cifrado con BitLocker pasa rápidamente a un BSOD durante el arranque