bad hibernation-rooted

Post on 10-Feb-2017

243 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Bad-HibernationRamón Pinuaga

¿Quién soy?

• Pentester desde hace más de 16 años para compañías como INNEVIS y S21SEC.

• Actualmente; analista de seguridad y manager del departamento de auditoria en INNEVIS.

• Especializado en técnicas de hacking y seguridad ofensiva.

• Ponente anteriormente en conferencias como Undercon o NoConName.

¿De qué va esta charla?

• Técnica para realizar ataques de Evil-Maid explotando el fichero de hibernación de Windows.

• La hibernación es un mecanismo que permite apagar el equipo sin perder el estado del sistema.

• Nos permite recuperar la memoria completa del equipo (y la información volátil que perderíamos con otras técnicas).

¿Evil-Maid?

¿En qué consiste un ataque Evil-maid?

• Ataque consistente en explotar equipos desatendidos.

• Requiere de acceso físico al equipo.• El nombre viene de que este tipo de ataques

son realizados habitualmente en hoteles por parte de personas que se hacen pasar por limpiadoras.

No solo para la NSA

Técnicas clásicas

• Las formas clásicas de realizar un ataque de Evil-Maid son:– Reiniciar el equipo desde un dispositivo externo (CD,

USB, Konboot, etc.).– Extraer el disco duro y montarlo en otro equipo.

• Una vez tenemos acceso al disco:– Copiamos información.– Reseteamos contraseñas.– Configuramos una puerta trasera.– Implantamos un RAT.

Problemas de las técnicas clásicas

• Pueden alertar al target de que su equipo ha sido manipulado.– Si el equipo no esta apagado.

• Al reiniciar, perdemos la información volátil.– Contraseñas en claro.– Llaves de cifrado.– Sesiones abiertas.

Extracción del disco duro

¿Cómo podemos conservar la información volátil?

• Extracción de memoria mediante DMA: Firewire, Thunderbolt, ExpressCard, etc.– Solo los equipos de gama alta suelen tener este

tipo de conectores.• Ataques ColdBoot.– Poco efectivos con memorias modernas.

• Hibernando el equipo y copiando el fichero de hibernación.

¿Qué es la hibernación de Windows?

• Hibernación o suspensión a disco: Mecanismo de Windows que permite apagar el equipo sin perder el estado del sistema.

• Esto se consigue guardando en un fichero (hiberfil.sys) el contenido de la memoria y ciertos datos que permiten reiniciar el equipo en el mismo estado.

• Desactivado por defecto a partir de Windows 7 (algunos fabricantes lo activan), pero se activa al llegar a nivel critico.

Detalles

• El fichero de hibernación se crea en: c:\hiberfil.sys (oculto).

• Windows mantiene abierto este fichero de forma que no puede ser leído mientras el sistema esta funcionando.

• El fichero de hibernación nunca se borra, solo se modifica su cabecera cuando ha sido usado para reiniciar.

• A partir de Windows 10 se puede configurar el grado de compresión.

Formato

• Existe poca documentación oficial sobre la organización de este archivo.

• El fichero hiberfil.sys contiene:– Una cabecera estándar: PO_MEMORY_IMAGE– Contexto y registros del kernel: KPROCESSOR_STATE– Array de bloques de datos codificados/comprimidos

en el formato propietario de Microsoft LZ Xpress: PO_MEMORY_RANGE_ARRAY.

¿Cómo hacemos un Evil-Maid con hibernación?

• Aprovechamos el fichero de hibernación para recuperar la información volátil del equipo.

• Si el equipo esta encendido pero bloqueado:– Hibernamos, copiamos y reiniciamos al estado

inicial (no quedan rastros lógicos de la manipulación).

• Si el equipo esta apagado: Tal vez podemos recuperar un fichero de hibernación antiguo.

Opción de hibernar con equipo bloqueado

¿Qué podemos lograr con esta técnica?

• Extraer información sobre el estado del equipo:– Conexiones abiertas.– Identificadores de sesión.

• Recuperar contraseñas locales en claro.– Usando mimikatz.

• Recuperar llaves de cifrado.– Como si lo hiciésemos de un volcado de memoria

normal.

Extraer información

• De forma manual o con Volatility.• Puede ser tan sencillo como hacer un

“strings”.• Pero Volatility es la opción profesional:– Permite trabajar directamente sobre el fichero

hiberfil.sys o convertirlo en otro formato.– vol.exe hibinfo -f hiberfil.sys

Volatility

Recuperar contraseñas locales

• Las contraseñas locales se almacenan en el registro en forma de hashes.

• Con las técnicas clásicas tendremos que crackearlas o resetearlas.

• Con esta técnica podemos recuperarlas de la memoria con Mimikatz.– Mimikatz no trabaja sobre ficheros de hibernación.– Tenemos que convertir hiberfil.sys en un formato

manejable por Mimikatz.

Paso 1: Obtener hiberfil.sys

• Aquí probablemente tendremos que usar las técnicas clásicas para obtener acceso al disco.

• Nos vale un acceso rápido y de solo lectura.• A veces podemos obtener este fichero por

otras fuentes: Backups, Vulnerabilidades de lectura remota de ficheros*, etc.

Paso 2: Volatility

• Mimikatz puede trabajar como plugin de Windbg.• Pero Windbg no soporta ficheros de hibernación.• Pero si volcados de crash dump (DMPs).• Podemos convertir el fichero de hibernación en

un DMP con Volatility.• Comando:– vol.exe raw2dmp -f hiberfil.sys -O hiberfil.dmp

Paso 3: Windbg

• Como cargar un DMP:– File > Open Crash Dump (ctrl-d)– .symfix– .reload

• Si es una imagen de 64bits– .load wow64exts– !wow64exts.sw

Paso 4: Mimikatz

• Una vez tenemos el volcado de memoria cargado:– .load c:\mimilib.dll– !process 0 0 lsass.exe– .process /r /p XXXXX– !mimikatz

DEMO

Extracción de llaves de cifrado

• Volatility soporta ficheros de hibernación y además de convertirlos a DMP podemos utilizar otros plugins para extraer llaves de cifrado y tokens o identificadores de sesión.

• Plugins interesantes:– Truecryptpassphrase – Truecryptmaster– Bitlocker (https://github.com/elceef/bitlocker)

Elcomsoft Forensic

Contramedidas

• Utilizar un sistema de FDE en arranque (comprobando que se cifra el fichero hiberfil.sys).

• Deshabilitar la opción de hibernación:– Powercfg.exe /h off

• No dejar el PC desatendido.

Conclusiones

• Hibernación: Funcionalidad por defecto de Windows con ciertos riesgos poco conocidos.

• Fáciles de mitigar si se conocen.• Aun así: “Fear de Evil-Maid!”

• Gracias por la atención:– https://twitter.com/rpinuaga

top related