lunes, 19 de diciembre de 2016

Ataques Evil-Maid con Hibernación


He colgado la charla que di en la última RootedCon Valencia sobre la técnica de ataque Evil-Maid explotando el fichero de hibernación de Windows.

Esta técnica no es nueva (ni la he descubierto yo), pero esta poco documentada.

También he hablado de este tipo de ataques, de forma más general en el blog de Areopago21.

En este post voy a centrarme más en la parte práctica.

Resumiendo: Si conseguimos acceso físico a un equipo y este esta encendido (pero bloqueado) o suspendido. Podemos intentar recuperar la información volátil critica (identificadores de sesión, contraseñas en claro, llaves de cifrado) del fichero de hibernación.

Para obtener el fichero de hibernación, tendremos que extraerlo del disco duro. Bien arrancando desde un dispositivo externo (Linux para forense, Hirens bootcd, etc.) o bien sacando el disco duro del equipo. Si el disco está cifrado, se complica la cosa.

Este fichero está en la raíz del disco: c:\hiberfyl.sys. Desde el propio Windows el fichero está oculto por defecto y bloqueado de forma que no puede ser leído.

El fichero de hibernación  nunca se borra, solo se modifica su cabecera cuando ha sido usado para reiniciar. De forma que si el equipo alguna vez se ha hibernado, vamos a tener este fichero ya creado. Sino, tenemos que forzar al equipo a hibernarse.

Esto es posible aunque el equipo este bloqueado, si el usuario tiene activa la opción de hibernación:


Por desgracia, a partir de Windows 7, la opción de hibernación viene deshabilitada por defecto. Aunque algunos fabricantes de portátiles la activan.

Por suerte, existe otra forma de forzar el hibernado. Si la batería llega a nivel crítico el equipo se hiberna de forma automática. Configurado por defecto en todas las versiones de Windows incluso en Windows 10.


Una vez tenemos el fichero de hibernación ya podemos trabajar sobre él.

La herramienta básica para esta tarea es Volatility, con ella podemos entre otras cosas:
• Obtener información sobre el fichero de hibernación: vol.exe hibinfo -f hiberfil.sys
• Convertirlo a formato raw: vol.exe imagecopy -f hiberfil.sys -O hiberfil.bin
• Convertirlo a formado DMP (compatible con Windbg): vol.exe raw2dmp -f hiberfil.sys -O hiberfil.dmp
• Obtener datos de navegación: vol.exe iehistory -f hiberfil.sys
• Obtener hashes de contraseñas locales: vol.exe hashdump -f hiberfil.sys
• Obtener llaves de cifrado Truecrypt: vol.exe truecryptpassphrase -f hiberfil.sys

Ejemplo de uso de Volatility:


También tenemos múltiples plugins de la comunidad para otras tareas: mimikatz, bitlocker, bitcoin, etc.

Para la conversión también podemos utilizar las herramientas de Matt Suiche (recién actualizadas), antes conocidas como MoonSols Windows Memory Toolkit. Funcionan mejor que Volatility y soportan todas las versiones de Windows hasta Windows 10.

A pesar de que tenemos un plugin de Mimikatz para Volatility es bastante limitado así que es mucho mejor trabajar directamente con Mimikatz. Para ello tenemos que:
• Convertir el fichero hiberfil.sys a un formato manejable por Windbg (DMP):
  o vol.exe raw2dmp -f hiberfil.sys -O hiberfil.dmp –profile=Win7SP0x64
• Cargar el DMP en Windbg:
  o .symfix => Configura los repositorios de símbolos de Microsoft
  o .reload => Recarga los símbolos necesarios
  o .load wow64exts => Carga el modulo para hacer debug de procesos WOW64
  o !wow64exts.sw => Activa las extensiones WOW64
• Cargar el módulo de Mimikatz en Windbg:
  o .load c:\Users\rpinuaga\Desktop\bad-hibernation\demo\mimilib64.dll => Carga el módulo de Mimikatz
  o !process 0 0 lsass.exe => Busca el proceso de lsass (Local Security Authority Subsystem Service)
  o .process /r /p fffffa800424e910 => Configura el contexto al proceso de lsass
  o !mimikatz

Y listo, aquí tenemos el resultado:


Nota: Volatility solo soporta ficheros de hibernación hasta Windows 7 (A partir de Windows 8, su formato cambia un poco). La nueva herramienta de Matt Suiche en teoría si lo permite, pero la última vez que probé el fichero resultante de la conversión tampoco era reconocido por Volatility.

1 comentario :

BITT dijo...

¡Buen post!
El fenómeno de los Ataques Evil-Maid representa una amenaza potencial para la seguridad de nuestros sistemas informáticosAquí es donde el mantenimiento adecuado del software se vuelve crucial.