2 puntos por GN⁺ 2025-01-01 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-01-01
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

    • Estoy intentando una configuración parecida en Linux, y como systemd-cryptsetup/cryptenroll es solo para LUKS, estoy tratando de cifrar directorios sensibles con fscrypt
    • El TPM es muy difícil cuando intentas implementar algo más allá de lo básico
    • Es un proyecto personal y planeo escribir sobre él cuando lo termine
  • 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

    • Si te roban una máquina con el disco duro cifrado, me pregunto si basta con simplemente encenderla
    • Supongo que el tráfico del bus SPI debería estar cifrado, pero parece que la máquina entregará la clave con demasiada facilidad
    • LUKS tiene una solicitud de contraseña para desbloquear la unidad
  • 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

    • Si el sistema operativo no se apaga limpiamente, el firmware borra la RAM y se detiene antes del siguiente arranque
    • Me pregunto si Windows no usa esto o si el sistema probado no lo implementaba
  • 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"

    • Es una pena que los OEM de uso masivo todavía permitan con tanta facilidad 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

    • Intel y AMD están trabajando para integrarlo en la CPU, y el objetivo son servidores con múltiples VM, no laptops
  • 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

    • Me pregunto si sería posible modificar la memoria como lo hace un dispositivo "Action Replay" de Gameboy
    • Me pregunto si se podría capturar el estado de la memoria insertando un dispositivo entre la RAM y la motherboard
    • No soy ingeniero eléctrico, así que la propuesta puede ser poco realista, pero parece que habría limitaciones de espacio físico y ancho de banda
  • Un Surface 5 Pro con disco cifrado con BitLocker pasa rápidamente a un BSOD durante el arranque

    • Me pregunto si esto podría funcionar en esa situación, y estoy esperando un exploit para extraer las fotos del disco