Volatility Framework Installer

Estándar

Hola a tod@s!!

Hace tiempo que salió al público el estupendo trabajo de muchos investigadores que dio como resultado la herramienta Volafility Framework.

Los que me conocéis, sabéis que yo llevo dando por saco con el tema de la memoria RAM desde hace bastante tiempo. Gracias a Dios, que conforme más tiempo pasa, más información sobre este tema hay.

Yo mismo he dado algún que otro Webcast en Microsoft sobre este mismo tema, he hablado en las FIST, y en algún que otro Asegur@IT.

El Framework está escrito en su totalidad en Python. En su día, para hacer funcionar la herramienta, tanto en Windows como en Linux o MAC, tan sólo hacía falta instalar Python y vualá! Ya teníamos el Framework en funcionamiento.

Hoy día la cosa ha cambiado bastante. Existen multitud de Plugins que hacen de la herramienta una tool muy poderosa para analizar por completo la memoria RAM, pudiendo ahorrar costes en tiempo en un análisis forense corporativo o por proyecto. E incluso por diversión!!

El problema para gente que está empezando en esto, es que a día de hoy existen tantos plugins y dependencias, que instalar la herramienta desde cero, y dotarla de una funcionalidad aceptable, puede conllevar una inversión de tiempo importante.

Esto lo pensó en su día Jamie Levy (aka Gleeda), colaboradora habitual en el desarrollo de Volatility Framework, y desarrolló, entre otros impresionantes plugins, uno con la posibilidad de descargar todos los plugins de un tirón. El script para la versión 1.4 de la herramienta, e instalación bajo Linux, lo tenéis disponible aquí.

Yo he realizado mi particular script (en batch! con dos cojones!! jaja) para la total instalación de Volatility Framework, junto con todas sus dependencias. Entre las “capacidades” del Script de instalación se encuentran los siguientes puntos:

  • Descarga e instalación de Python, MinGW
  • Descarga e instalación de YARA (Gracias Hispasec!!), PYGame, PIL (Python Image Library), Distorm3
  • Descarga e instalación de Volatility Framework 1.3 (Versión estable)
  • Descarga e instalación de Plugins válidos para la versión 1.3
  • Compilación automática e instalación de diversos plugins
  • Procesado de Logs de todo lo que se descarga
  • Procesado de HASH (MD5 y SHA1) de todo lo que se descarga
  • Inclusión de rutas en PATH para dotar de máxima funcionalidad
  • Inclusión de shell de comandos con el botón derecho del ratón para facilitar el análisis (Open cmd Here)

Ahora mismo, el script es totalmente funcional para instalarlo en Windows XP/Vista/7, y, como hoy en el FTSAI nos vamos a “pelear” con la memoria y todos sus componentes, me ha parecido buena idea colgarlo por aquí.

En su día, hablando con Lympex de opensec.es, éste me pasó una versión que desarrolló para Linux, la cual todavía no he puesto en el proyecto, debido a que tiene que actualizarse. Me ha prometido que cuando la tenga funcional la colgará en el proyecto.

El proyecto está alojado en Google, y ahora sí…. No tienes excusa para seguir ampliando conocimientos en materia Forense, porque documentación hay, y facilidades también!!

http://code.google.com/p/volatility-installer/

Esta semana he empezado a realizar el mismo script en PowerShell, debido a que como batch tiene muchas restricciones, he tenido que “tirar” de herramientas de terceros, como 7zip, wget y HashMyFiles para hacerla totalmente funcional. El script es muy sencillo de utilizar y no requiere parámetros. Sólo doble clic, y a jugar….

Nota: Tanto Python, como las dependencias, junto con MinGW, se instalan de manera interactiva con el usuario. Las instalaciones son del entorno Next–>Next, menos MinGW, que necesitaremos marcar las opciones de MAKE, más el compilador. Este paso de “interacción” es necesario, ya que de manera desatendida no se compilan bien algunas bibliotecas en Python bajo Windows.

Doy por supuesto (y por invitado!) que colaboraciones y ayudas, serán muy, pero que muy bien recibidas…..

Update.- Chema, de opensec, ya me ha pasado el script de instalación y está subido al proyecto. Su script soporta la instalación de Volatility Framework en los sistemas Arch, Debian y FreeBSD!

Buen fin de semana a tod@s!!

Anuncios

Análisis memoria RAM. Búsqueda de procesos I

Estándar

En todo análisis forense, se debe atender a un orden de volatilidad. Los datos contenidos en la memoria RAM y el archivo de paginación están en los primeros puestos de este orden. Por esto mismo, es por lo que muchas empresas que se dedican al forense informático, en muchas de sus variantes, deciden prescindir de investigar lo que hay en RAM, para dedicarse a otra información menos volátil, como por ejemplo el contenido del disco duro. El problema viene cuando sólo tenemos como pruebas un volcado de memoria (DUMP) o un archivo de paginación (pagefile.sys).

En este artículo y en el siguiente, haré mención a las herramientas que tenemos a día de hoy para analizar un volcado de memoria RAM (DUMP).

A día de hoy, pienso que la memoria RAM es de vital importancia en una investigación, ya que entre otras cosas, podremos encontrarnos con lo siguiente:

  • Procesos en ejecución
  • Procesos en fase de terminación
  • Conexiones activas (TCP-UDP)
  • Ficheros mapeados (Drivers, Ejecutables, Ficheros)
  • Objetos en caché (HTML,JavaScript,Passwords)
  • Elementos ocultos (Rootkits)

Como en toda investigación, la información que podamos recopilar depende de muchos factores, tales como el sistema operativo, el TimeLive de la máquina y lógicamente, el tamaño de la memoria RAM. Pongamos como ejemplo a Windows Vista y Windows XP. Windows Vista maneja de forma diferente los datos en memoria RAM. Utiliza mucho el acceso a RAM, para no cargar tanto al disco duro, ya que el acceso a memoria RAM es mucho más rápido que el acceso a disco. Windows XP no carga tanto la RAM, y en cambio utiliza mucho más el archivo de paginación.

Dependiendo del sistema operativo tendremos más o menos herramientas para realizar búsquedas. En este artículo mostraré una para Windows 2000, y que se llama memparser.

Memparser es una herramienta creada a raíz de un reto forense y desarrollada por Chris Betz. Antes de desarrollar la herramienta en cuestión, tuvo que debuggear un kernel de un Windows 2000 SP4 para buscar similitudes, identificar estructuras, y analizar el código resultante del debugging.

Cada proceso en Windows 2000 es representado por un bloque ejecutivo de proceso (Executive Process). Cada bloque representa a un proceso y contiene estructuras y datos relacionados con ese objeto. En la memoria también residen los hilos que crean estos procesos (ETHREAD), tokens de acceso, Kernel Process (KPROCESS), el cual tiene información sobre el tanto por ciento del kernel utilizado por cada proceso, etc…

La herramienta en cuestión busca lo siguiente:

  • EPROCESS
  • Objetos de Kernel
  • Drivers
  • Contenido de memoria

De todas las herramientas que hay, esta es la más completa de todas, ya que podremos desde listar los procesos que hay en un volcado de memoria, hasta por ejemplo sacar el contenido de la memoria del ejecutable, y con el que podremos, por ejemplo, buscar posibles restos de malware.

En sucesivos artículos, repasaremos las diferentes opciones que tenemos para otros sistemas operativos.

Enlaces

Memparser (SourceForge)

Inside Microsoft Windows 2000 Third Edition

Análisis de memoria RAM. Recogida de evidencias

Estándar

El análisis forense en sistemas informáticos, engloba muchos tipos de recogida de información para su posterior tratado. Entre ellos tenemos los siguientes:

  • Análisis de aplicaciones
  • Análisis de BBDD
  • Análisis de ficheros
  • Análisis de red
  • Análisis de memoria RAM
  • Análisis de SWAP, paginación
  • Análisis de discos físicos
  • Análisis Mobile
  • Análisis de impresoras
  • etc…

En accesos a disco nos podemos encontrar con muchísima información, como pueden ser documentos, información relevante al usuario en aspectos de navegación, passwords, logs de aplicaciones, logs de seguimiento, etc…

Pero en análisis forenses se echan de menos los datos que pudiesen contener la memoria RAM. En todo análisis forense se sigue un orden a la hora de recoger información, siempre atendiendo el orden de volatilidad. Un ejemplo de ello lo tenéis en el RFC 3227 de buenas prácticas a la hora de recoger información.

No voy a entrar en el debate sobre si es complicado o no la recogida de este tipo de información (RAM y derivados), y sobre si es admisible o no en un juicio. Eso se lo vamos a dejar a uno de los monstruos en esto. Juan Luis García (MVP Security) lo explica muy bien en su blog.

Lo que si veremos es qué podemos encontrarnos en RAM, y como podremos identificar, por ejemplo, aplicaciones maliciosas como rootkits inyectados directamente en memoria, restos de troyanos, direcciones IP, conexiones TCP/UDP registradas en máquina, passwords, etc…, junto con las herramientas que hoy día disponemos.

Puede que a lo mejor no se incluyan este tipo de pruebas en un juicio, pero de seguro nos ayudarán a entender mejor qué había en la máquina, y eso ya de por sí es un adelanto.

En sucesivos post comentaremos las formas de recogida de información de RAM y las posibilidades de cada una de ellas, tanto en su forma como en contenido.

Me voy a centrar básicamente en la recogida de información en base a adquisición de evidencias por software, que aunque menos seguro, la recogida es mucho más fácil y disponible para los usuarios.

Así que empecemos por el principio! 

Método I. Realizar un volcado de la RAM accediendo directamente al objeto de la memoria \Device\PhysicalMemory

Algunas aplicaciones pueden utilizar este objeto para acceder a la memoria física. En nuestro caso es el mismo. Necesitamos una herramienta que nos proporcione acceso a este objeto para poder realizar un volcado de la misma. Una herramienta indispensable para este tipo de volcados es utilizar la herramienta dd. Como esta serie de artículos tratan sobre Windows y el análisis de memoria del mismo, utilizaré una versión de esta herramienta, compilada para sistemas Windows y compilada para ser utilizadas en escenarios forense. Un buen conjunto de herramientas forense para la adquisición de evidencias lo tenemos en la página de George Garner, y su nombre es el siguiente. Forensics Acquisition Utilities.

dd Forensics

Aunque la imagen resultante podemos extraerla a otro disco duro, lo más correcto sería pasarla a través de la red, a otra ubicación que estuviese aislada de la zona 0.

Si queréis o necesitáis ver los objetos que tiene un sistema operativo Windows, podéis utilizar la herramienta WinObj de Sysinternals.

La herramienta dd la podemos combinar con NetCat o Crypcat (en su formato cifrado) para pasar la información a través de la red. Las opciones más comunes que se utilizan con la herramienta dd y en su versión para forense son las siguientes:

  • md5sum.- Calcula la firma digital para dar fe de la integridad de los datos
  • Log.- Por si queremos guardar un Log de la extracción
  • verifymd5.- Verificar la integridad de la imagen con el md5 obtenido

Para realizar este tipo de capturas, ya existen aplicaciones que automáticamente recogen este tipo de información. Un ejemplo de ésta herramienta es Helix. Herramienta basada en Knoppix y customizada para su uso en análisis forense, esta herramienta viene con una suite bastante amplia de herramientas para el tratamiento y análisis de información, lo que facilita y mucho las labores de recogida de información. El análisis y tratado de éstos, es otra historia aparte…

Helix

 

A partir de la versión Windows 2003 SP1, el acceso en modo usuario a este objeto del sistema, ya no es permitido, por lo que este tipo de herramientas ya no nos servirán para realizar volcados de memoria. Si necesitamos realizar un volcado de memoria en sistemas Windows después de la versión 2003 SP1 en adelante (Incluyento a Windows Vista y Windows Server 2008), tendremos que utilizar herramientas comerciales como las KntTools, de GMG Systems, o esperar a la próxima release del LiveCD Helix.  

En esta primera parte hemos visto los pasos necesarios para realizar un volcado de la RAM a través de los objetos de Windows. En artículos posteriores veremos otras situaciones que se nos pueden dar y sus posibilidades.

Enlaces:

Device/PhysicalMemory Object

Forensic RAM Dumping

Saludos!