Incident Response, Security and Forensics"

.

jueves, 5 de febrero de 2009

Forensics con Volatility

Hola lectores.

Hoy vamos a ver en un análisis forense como extraer las contraseñas de un equipo Windows XP SP2 al cual anteriormente se ha realizado una imagen completa de su disco, utilizando dd.

Hasta ahora hemos utilizado muchas herramientas, que permiten parsear la memoria y como no no podia ser menos hemos decidido utilizar otras muy conocida en el ambito forense informático. La herramienta que vamos a utilizar se llama VOLATILITY.

Volatility es un Framework con un conjunto de herramientas desarrolladas enteramente en Python con licencia GNU. Este Framework esta pensado para extraer de una imagen de un disco los datos volátiles que estaban en memoria RAM. Estas técnicas de extracción están pensadas para que no dependan del sistema operativo del investigador, es decir podemos utilizar Windows y/o Linux.

La distribución de este framework está disponible en:
https://www.volatilesystems.com/default/volatility

También la descarga de Python la podéis hacer desde:
http://www.python.org --> (Descargar para Windows)

Entre las características que podemos extraer están las siguientes:

- Tipo de sistema, fecha y hora
- Procesos que se estaban ejecutando
- Puertos abiertos
- Puertos conectados
- DLLs cargadas por proceso
- Ficheros cargados por procesos
- Claves del registro utilizadas en los procesos
- Modulos del Kernell
- Mapa fisico de offsets a direcciones virtuales
- Direccionamiento de memoria por proceso
- Extración de ejecutables

Todas estas carácteristicas són mas que suficientes para obtener evidencias. Ahora lo principal es disponer del entorno necesario para que funcione en Windows ya que es la plataforma que disponemos (también podría haber sido Linux, e incluso algo más sencillo para instalar), no obstante para ello necesitaremos:

Python y volatility tal y como dije anteriormente.(es recomendable poner en el path la ruta de python.exe)

Pycrypto. Este programa contiene las librerías que permite obtener los hashes de las contraseñas de los usuarios de la imágen Windows y se puede descargar desde:

http://www.voidspace.org.uk/python/modules.shtml

Una vez tenemos todo instalado podemos proceder a realizar el análisis.

NOTA: Todos los comandos están reflejados dentro de la ventana del simbolo del sistema

OBTENIENDO INFORMACION

Obtenemos el tipo de sistema, fecha y hora. Y en la siguiente pantalla los procesos que se estaban ejecutando.





También es muy importante averiguar donde estaba conectado y en la siguiente pantalla que ficheros tenían utilizando o en uso por el sistema y/o aplicaciones.





A continuación viene lo más importante, vamos a obtener una copia del registro que está en memoria y poder obtener los offset que contienen el fichero en el que se almacena el registro, para ello emplearemos los comandos 'hivescan' y 'hivelist'.

Este último nos mostrará los ficheros donde se almacenan las partes correspondientes del registro, exactamente en:

\Windows\system32\config\software
\Windows\system32\config\SAM
\Windows\system32\config\security



Una vez obtenida esta información procedemos a utilizar el comando 'hashdump' que permite extraer los hash de las cuentas creadas en la máquina



Lo ideal es pasarlo a fichero de texto e importarlo con alguna utilidad del tipo 'cain & abel' o 'samside' como en el siguiente ejemplo:




Ya solo es cuestión de tiempo en que la herramienta averigue las contraseñas.

4 comentarios:

Tiempo o ser un fiera y tener las rainbow tables generadas o bajadas para que sea casi instantaneo :)

Oye Pedro, ¿puedo mandarte un correo para hablar de unas cosillas?

Un saludo

Claro que si. Eso ni se pregunta. Cuando quieras.
Un saludo

Pedro!
Deberías echar un vistazo a esto si no lo has hecho ya claro...

http://dfrws.org/2008/proceedings/p26-dolan-gavitt.pdf

Llevo tiempo jugando con las tools y son... Impresionantes!!

http://kurtz.cs.wesleyan.edu/~bdolangavitt/memory/volreg.zip

http://moyix.blogspot.com/2009/01/memory-registry-tools.html

Deberíamos escribir una serie sobre esto... ;-)

Saludos!!

Juanito: Maestro, cuando tu digas me pongo a tus ordenes. Luego te llamo.