Saludos BugBu5t3r5
Hace un par de días Hecky y yo platicábamos acerca del futuro del cómputo
forense, los dos llegamos a la conclusión de que debido a tecnologías como SSD
y las capacidades de los discos la forma tradicional de hacer cómputo forense ha
cambiado, el futuro de las metodologías, procesos y herramientas pronto
giraran en torno al análisis de los componentes volátiles, sé que este punto es
discutible y muchos examinadores tienen sus dudas en cuanto a la adquisición y análisis
de memoria, se preguntan si será admisible en la corte o cuestionan el impacto
que muchas herramientas tienen sobre la integridad de la evidencia.
Sin embargo estoy convencido que el análisis de memoria volátil es una de las áreas en donde podemos encontrar más elementos de evidencia. Es por eso que decidí hacer de mi primer post una lista de las herramientas que están disponibles para poder obtener memoria, ojala que al leer este post si aún tienes dudas de si debes tomar la memoria en tus casos, pierdas el miedo y lo hagas!
Sin embargo estoy convencido que el análisis de memoria volátil es una de las áreas en donde podemos encontrar más elementos de evidencia. Es por eso que decidí hacer de mi primer post una lista de las herramientas que están disponibles para poder obtener memoria, ojala que al leer este post si aún tienes dudas de si debes tomar la memoria en tus casos, pierdas el miedo y lo hagas!
Empecemos por establecer cuáles son los PLUS de obtener la memoria volátil:
- Todo lo que se encuentra dentro de nuestros OS en algún momento interactúa con RAM. Nos da la oportunidad de identificar malware en su estado vivo (incluyendo rootkits).
- Podemos obtener: contraseñas, llaves de cifrado (si el contendor está montado y obtención de llave de cifrado de una imagen de memoria por ejemplo con Passware), caches, clipboards.
- Archivos abiertos.
- Configuraciones de hardware y software (recuerden que algunas de algunos hives de Windows Registry son volátiles).
- Información de red (sockets, IP´s, URL´s)
- Procesos.
- Obtención de evidencia a pesar de la utilización de técnicas anti forenses (inprivate browsing, chats cifrados, etc.)
- Actividad de internet.
- Obtención remota de la memoria.
- Obtener una copia de la MFT desde la memoria.
- Obtención de una copia de la memoria RAM de un sistema post mortem desde el archivo hiberfile.sys
Como pueden ver las ventajas son muchas y las herramientas para
poder obtener una imagen de la memoria también abundan. Estas son algunas de las
herramientas que están disponibles, ¿Lo mejor? Son libres:
FTK Imager
Download: http://www.accessdata.com/support/product-downloads
Comencemos con una herramienta ya conocida por la mayoría de los que estamos en este negocio; Access Data proporciona una versión portable (74.7 MB) de su gratuito FTK Imager Lite el cual nos permite obtener una imagen de la memoria mediante point and click:
Una vez que dimos click en la opción de “capturar memoria” en la
siguiente ventana aparecerán todas las opciones, son bastante claras, damos una
ruta y un nombre y ¡Listo!
Una opción extra que se nos presenta y que en lo personal yo incluyo es que el dump incluya al archivo pagefile.sys ya que hay un mundo de información que se puede parcear dentro de este archivo.
Una opción extra que se nos presenta y que en lo personal yo incluyo es que el dump incluya al archivo pagefile.sys ya que hay un mundo de información que se puede parcear dentro de este archivo.
Todas las opciones listas y cuestión de dar click en Capturar
Memoria y el proceso comenzaran de forma automática.
DumpIt
Hace no mucho Moonsols nos sorprendió poniendo de forma gratuita
una de sus aplicaciones del Windows Memory Toolkit, DumpIt esta herramienta es
una fusión de win32dd y win63dd lo que la hace en mi opinión una de las herramientas más
sencillas de utilizar.
Para realizar un volcado de memoria basta poner una sola letra y listo. Uno de los contras de la sencillez de esta herramienta es que no tienes mucha libertad de configuración. Pero si vas empezando en esto del análisis a la memoria y aun no te tienes mucha confianza DumpIt es la herramienta que quieres utilizar,
Es ideal también para ponerla dentro de un USB (202 KB) y aquí viene otra parte que tal vez es uno de sus puntos en contra, la imagen en formato raw se escribirá en donde el DumpIt.exe resida así que checa bien que lleves una USB de suficiente espacio para que toda la memoria que vayas a obtener pueda ser adquirida.
Para realizar un volcado de memoria basta poner una sola letra y listo. Uno de los contras de la sencillez de esta herramienta es que no tienes mucha libertad de configuración. Pero si vas empezando en esto del análisis a la memoria y aun no te tienes mucha confianza DumpIt es la herramienta que quieres utilizar,
Es ideal también para ponerla dentro de un USB (202 KB) y aquí viene otra parte que tal vez es uno de sus puntos en contra, la imagen en formato raw se escribirá en donde el DumpIt.exe resida así que checa bien que lleves una USB de suficiente espacio para que toda la memoria que vayas a obtener pueda ser adquirida.
Mandiant Redline
Veamos una herramienta mucho más configurable y más poderosa, Mandiant Redline nos permite crear un “recolector” de memoria el cual podemos configurar dependiendo de las necesidades de nuestros casos, en mi laboratorio tenemos más de un recolector disponible.
Redline nos permite también realizar análisis de memoria en vivo, pero eso lo veremos en otro post, por ahora nos concentraremos en cómo crear un recolector.
Redline nos ofrece la opción de crear dos tipos de recolectores:
- Un recolector standard el cual nos permite obtener la información necesaria para llevar a cabo un análisis enfocado en la memoria.
- Un recolector integral el cual de forma predeterminada tiene seleccionadas casi todas las opciones de la información que Redline puede obtener, la única opción que no viene incluida es la de obtener strings, el seleccionar esta opción incrementara considerablemente el tiempo de que tomara la herramienta para volcar la memoria.
Es mi sugerencia que puedan tener más de un recolector listo para
los diferentes incidentes que pudieran enfrentar.
Una vez que han seleccionado el tipo de recolector verán la
siguiente pantalla:
En esta pantalla tienen la oportunidad de seleccionar "Adquirir
Imagen de Memoria", esto es porque el recolector de Redline nos generara una
carpeta con el nombre de "Sessions\AnalysisSession1" y dentro un archivo con extensión ".mans" el cual solo podrá ser abierto en Redline pero si quisiéramos revisar
nuestra memoria en algún otro software como Volatility o Rekall necesitaríamos una
imagen en crudo.
Podemos ver las opciones a configurar en nuestro recolector al
dar click en "Edit your script", en la imagen vemos las opciones para un
recolector integral y no voy a poner una imagen de cada una de las pestañas
disponibles es solo para que sepan que aquí puede ser configurado que queremos
que Redline obtenga al ejecutar el recolector.
Por último en esta ventana hay
una opción en la esquina superior derecha que dice "Show Advanced Parameters" esta opción la he utilizado cuando voy a escanear el universo de sistemas en mi
red por un proceso que ya sé que es malicioso y quiero verificar si se
encuentra presente en algún otro sistema, ya que esta opción te permite
especificar cosas como el PID y el Process Name.
Una vez configurado el recolector le damos una ruta y se generara
una carpeta con el siguiente contenido:
De lo que nos da Redline como resultado final cabe resaltar que se
nos da un recolector tanto para x86 así como para x64.
Winpmem
Aquí tenemos una herramienta hecha por Michael Cohen, Winpmem,
esta herramienta no nos permite tanta configuración
como Redline pero si ofrece mayor velocidad en cuanto a la adquisición de la
memoria y un par opciones extras que la hacen una herramienta muy interesante,
Rekall no ofrece solamente una herramienta de adquisición de memoria, es todo un
framework para poder analizar los volcados que realicemos...Es como Volatility, sin
embargo en este post NO entraremos en detalles del análisis de los volcados.
Personalmente me es necesario trabajar más con esta herramienta que promete mucho ya que entre sus opciones nos permite crear un ELF coredump para que podamos mandar por la red el volcado y hacer remapping.
Personalmente me es necesario trabajar más con esta herramienta que promete mucho ya que entre sus opciones nos permite crear un ELF coredump para que podamos mandar por la red el volcado y hacer remapping.
Por ultimo...
¿Qué hay de la memoria volátil de una máquina virtual? ¿Cómo podemos adquirir esa memoria?
Una técnica practica seria suspender la máquina virtual y forzar una copia de la memoria.
Sin embargo hay productos como VirtualBox que únicamente presenta la memoria que está activa y no el total de memoria asignada a la máquina virtual, en este caso y como último recurso podrían ejecutar alguna de las herramientas ya mencionadas. Algo que también es importante recordar es que software como VMware nos permite realizar snapshots y cada uno de estos snapshots contiene su propia copia de memoria, estos archivos de memoria virtual pueden ser analizados por ejemplo con Volatility el cual tiene un módulo que reconocerá las diferentes extensiones de productos de virtualización.
¿Qué hay de la memoria volátil de una máquina virtual? ¿Cómo podemos adquirir esa memoria?
Una técnica practica seria suspender la máquina virtual y forzar una copia de la memoria.
Sin embargo hay productos como VirtualBox que únicamente presenta la memoria que está activa y no el total de memoria asignada a la máquina virtual, en este caso y como último recurso podrían ejecutar alguna de las herramientas ya mencionadas. Algo que también es importante recordar es que software como VMware nos permite realizar snapshots y cada uno de estos snapshots contiene su propia copia de memoria, estos archivos de memoria virtual pueden ser analizados por ejemplo con Volatility el cual tiene un módulo que reconocerá las diferentes extensiones de productos de virtualización.
Leyendo hace un tiempo un News Bites de SANS
hablaban precisamente de esto, de cómo obtener memoria de máquinas virtuales,
en el post compartieron las rutas para encontrar los archivos de memoria de las
diferentes plataformas de virtualización:
Sé que hay muchas herramientas más que adquieren memoria sin embargo
solo puedo hablar de las herramientas con las que he trabajado y he probado en
diferentes ambientes. recuerden que como forensicators no podemos casarnos con una sola herramienta, tenemos que ser competentes utilizando diferentes herramientas en diferentes situaciones.
Espero les haya gustado este primer post. Empezamos con esto que
es básico y pronto empezaremos ya a entrar en materia.
Muchas gracias por leernos y éxito BugBu5t3rS.
Muchas gracias por leernos y éxito BugBu5t3rS.
-Bu5t3r-
Excelente información Bu5t3R5
ResponderBorrarSolo para adicionar a la entrada:
.- La suite de rekall ofrece binarios para obtener la memoria RAM en otros OS.
.- Para móviles existe LiME
.- Así mismo debemos tener algunas consideraciones al sacar información volátil antes y después..Pero creo eso lo trataremos en otro post.
Saludos ;)