Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Bad-Hibernation
Ramón Pinuaga
¿Quién soy?
• Pentester desde hace más de 16 años para
compañías como INNEVIS y S21SEC.
• Actualmente; analista de segurid...
¿De qué va esta charla?
• Técnica para realizar ataques de Evil-Maid
explotando el fichero de hibernación de
Windows.
• La...
¿Evil-Maid?
¿En qué consiste un ataque Evil-maid?
• Ataque consistente en explotar equipos
desatendidos.
• Requiere de acceso físico a...
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 dispositiv...
Problemas de las técnicas clásicas
• Pueden alertar al target de que su equipo ha
sido manipulado.
– Si el equipo no esta ...
Extracción del disco duro
¿Cómo podemos conservar la
información volátil?
• Extracción de memoria mediante DMA:
Firewire, Thunderbolt, ExpressCard, ...
¿Qué es la hibernación de Windows?
• Hibernación o suspensión a disco: Mecanismo de
Windows que permite apagar el equipo s...
Detalles
• El fichero de hibernación se crea en:
c:hiberfil.sys (oculto).
• Windows mantiene abierto este fichero de forma...
Formato
• Existe poca documentación oficial sobre la
organización de este archivo.
• El fichero hiberfil.sys contiene:
– U...
¿Cómo hacemos un Evil-Maid con
hibernación?
• Aprovechamos el fichero de hibernación para
recuperar la información volátil...
Opción de hibernar con equipo
bloqueado
¿Qué podemos lograr con esta
técnica?
• Extraer información sobre el estado del
equipo:
– Conexiones abiertas.
– Identific...
Extraer información
• De forma manual o con Volatility.
• Puede ser tan sencillo como hacer un
“strings”.
• Pero Volatilit...
Volatility
Recuperar contraseñas locales
• Las contraseñas locales se almacenan en el
registro en forma de hashes.
• Con las técnicas...
Paso 1: Obtener hiberfil.sys
• Aquí probablemente tendremos que usar las
técnicas clásicas para obtener acceso al disco.
•...
Paso 2: Volatility
• Mimikatz puede trabajar como plugin de
Windbg.
• Pero Windbg no soporta ficheros de
hibernación.
• Pe...
Paso 3: Windbg
• Como cargar un DMP:
– File > Open Crash Dump (ctrl-d)
– .symfix
– .reload
• Si es una imagen de 64bits
– ...
Paso 4: Mimikatz
• Una vez tenemos el volcado de memoria
cargado:
– .load c:mimilib.dll
– !process 0 0 lsass.exe
– .proces...
DEMO
Extracción de llaves de cifrado
• Volatility soporta ficheros de hibernación y
además de convertirlos a DMP podemos
utiliz...
Elcomsoft Forensic
Contramedidas
• Utilizar un sistema de FDE en arranque
(comprobando que se cifra el fichero
hiberfil.sys).
• Deshabilitar ...
Conclusiones
• Hibernación: Funcionalidad por defecto de
Windows con ciertos riesgos poco conocidos.
• Fáciles de mitigar ...
Upcoming SlideShare
Loading in …5
×

Bad hibernation-rooted

572 views

Published on

Bad hibernation

Published in: Internet
  • Be the first to comment

Bad hibernation-rooted

  1. 1. Bad-Hibernation Ramón Pinuaga
  2. 2. ¿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.
  3. 3. ¿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).
  4. 4. ¿Evil-Maid?
  5. 5. ¿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.
  6. 6. No solo para la NSA
  7. 7. 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.
  8. 8. 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.
  9. 9. Extracción del disco duro
  10. 10. ¿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.
  11. 11. ¿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.
  12. 12. 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.
  13. 13. 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.
  14. 14. ¿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.
  15. 15. Opción de hibernar con equipo bloqueado
  16. 16. ¿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.
  17. 17. 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
  18. 18. Volatility
  19. 19. 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.
  20. 20. 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.
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. DEMO
  25. 25. 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)
  26. 26. Elcomsoft Forensic
  27. 27. 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.
  28. 28. 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

×