Análisis forense de sistemas Windows. Obtención de $MFT de manera alternativa

¡Muy buenas a todos!

Este post  (que va a ser muy breve ya os lo adelanto) va a enlazar con el anterior, en el cual os hablaba de la importancia de la $MFT (Master File Table o tabla maestra de archivos)  y como trabajar hasta obtener un timeline de un equipo con sistema operativo windows 7 Pro,  que poder usar para investigaciones forenses, entre otras cosas.

Os hablaba también de trabajar con la suite de análisis forense The Sleuthkit, pues bien, hoy os voy a mostrar una manera muy sencilla de extraer la $MFT de una imagen clonada y posteriormente parsearla a formato .csv para analizarla desde Excel, Splunk, Calc de Libreoffice… etc.

Primero debemos averiguar la posición del offset de inicio de Windows, para ello, usaremos la herramienta mmls.

mmls
Uso de mmls para detectar offset

 En la línea número 06, en la tercera columna  tenemos el offset (0004202496), una vez localizado, vamos a extraer la $MFT.

Para ello usamos la herramienta icat con la siguiente orden:

sudo icat -i raw -f ntfs -o 0004202496 /Volumes/WD/FORENSE/windows7.001 0 > /Users/DiegoADMIN/Desktop/extraida.mft

 

icat

Donde con sudo nos hacemos root, con  -i raw indicamos el tipo de imagen que es (en este caso raw), con -f ntfs se le indica que es u sistema de archivos NTFS, con -o 0004202496 le decimos el offset de inicio de windows, a continuación ponemos la ruta donde se guarda la imagen, el 0 del final es donde le indicamos que comience a coger desde el offset 0, es decir el inicio. Posteriormente lo redireccionamos a la ubicación donde queramos guardar el archivo resultante y listo (En este caso el Escritorio, con nombre extraída.mft), solo queda esperar…

 

du -h

Ya la tenemos en donde queremos. Ahora podemos parsearla y pasarla a un archivo .csv. En este punto hay muchísimas herramientas que lo pueden hacer con interfaz gráfica, MFTParser por ejemplo, o  por linea de comandos. De estas a mi me gusta mucho un script en python que se llama analyzeMFT.

Lo podemos instalar con el sufrido e injustamente no reconocido pip:

pip install analyzeMFT

O te bajas el ejecutable de github y lo usas desde su carpeta descomprimido…

analyzemft

Donde -f es la ubicación de la MFT extraída anteriormente -c es para escribir el formato de tiempo en .csv  -e es para poner el tiempo del timeline  en formato excel y -o es la salida del archivo en formato .csv (en este caso en el Escritorio con nombre timeline.csv.

Luego se importa desde Excel como dato y …

Excel

Como se aprecia es un archivo .csv potente, de modo que le llevará rato cargar. Paciencia…

Tamaño timeline

Y esto es todo por hoy, un breve tip que nos muestra que en nuestro trabajo, SIEMPRE hay alternativas y que debemos estar SIEMPRE en un eterno aprendizaje, quizá por eso sea tan apasionante.

¡Hasta la próxima!

Presentación y primer post

Con un cierto retraso por motivos de fuerza mayor y abrumado ante la responsabilidad y confianza que mi “hermano” y gran amigo Paco ha depositado en mi, comienzo este nuevo proyecto.

¿Quién soy? Mi nombre es Diego (@itzala74) en twitter y me dedico a labores de análisis forense  y auditorias de seguridad como perito informático. Compagino ambas labores como buenamente mejor puedo. Amante de las nuevas tecnologías y del mundo Unix en particular (aunque sin despreciar otras tecnologías, a fin de cuentas son herramientas). Maquero y amante de Arch Linux. Estudiante cuando el tiempo (¡ese escaso bien!) lo permite, de python y reciente descubridor de toda la potencia de Powershell (aunque donde esté mi bash…).

¿Qué voy a hacer por aquí? Pues intentar compartir mis escasos conocimientos con quien quiera leerme e intentar mejorar este mundo para todos. Iré enseñando poco a poco técnicas de investigación  forense, algo de hacking y hardering de sistemas en general, aunque de eso otro amigo que espero se pase en breve por aquí sabe mucho mas que yo… En cualquier caso, espero no aburrir demasiado y poder aportar mi granito de arena.

 

¿De que vamos a hablar hoy? Pues hoy voy a empezar con algo suave y fácil que nos dará pie a posteriores posts para ir profundizando sobre ello.

Hoy voy a hablar de la Tabla Maestra de Archivos o $MFT . ¿Qué es la MFT?

La tabla maestra de archivos es el primer archivo de un volumen de tipo NTFS (New Technology File System o sistema de archivos que viene usándose en Windows NT desde las versiones Windows 2000). Básicamente, constituye un directorio centralizado de todos los ficheros del disco y de si misma, haciendo referencia continuamente a ellos mientras el sistema localiza información, la lee y la escribe en el disco.

La tabla maestra de archivos (o $MFT) es la que contiene todos y cada uno de los archivos que componen un volumen,  es decir, cuando el sistema operativo consulta el contenido de un archivo, se dirige a la $MFT para obtener información del mismo, como por ejemplo tamaño, propiedades, atributos, localización, nombres de archivos… etc. La $MFT es, para que nos hagamos una idea mas visual,  como una base de datos que almacena todo la información que necesita a la hora de acceder a un archivo.

Captura de pantalla 2016-05-16 a las 21.13.42

Esta es una representación (muy simplificada eso si) de un típico volumen Windows. Se aprecia claramente el lugar que ocupa y como mas o menos, por la mitad del volumen hay una copia de esa tabla. Quiero indicar también que la  $MFT puede estar en diferentes zonas del disco, es interesante también  indicar que por cada archivo o carpeta crea un registro de 1kbyte, 1024 bytes. Tener esto en cuenta, es especialmente útil para cuando se ha formateado un dispositivo  o la $MFT está dañada.

Todo esto, ademas es muy interesante y práctico, ya que en caso de corrupción o daño de la primera tabla, podremos reconstruirla con la información que obtengamos de la segunda copia (o mirror, como la denomina Microsoft).

También es una fuente de información muy importante, usada para investigaciones forenses donde se usa para extraer todo tipo de evidencias. Cuando se esta realizando una investigación, uno de los pasos para encontrar pruebas digitales, es realizar búsquedas por palabras claves y revisando los resultados muchas veces se encuentran en estas áreas o carpetas recuperadas. Podemos averiguar saber fechas de encendido y apagado de equipos, creación, modificación y destrucción de archivos, instalación de programas, desinstalación… Resumiendo, un timeline muy completo de toda la vida de ese equipo desde que se instaló windows con   mucha información que como perito investigador podremos aprovechar.

Después de esta pequeña introducción, que nos servirá como base para entender lo que vendrá después así como su importancia, vamos a centrarnos en las técnicas forenses en si mismas.

Una práctica que quiero intentar inculcar  desde el principio, es la de no  usar herramientas que nos oculten el proceso al personal técnico  e intentar usar herramientas mas manuales, el motivo es muy simple, las herramientas automatizan mucho trabajo, pero corremos el riesgo de perder de vista lo que corre por debajo y eso es un lujo que como investigadores no podemos permitirnos.

En este caso, voy a mostrar como extraer y parsear la $MFT desde nuestra copia del disco clonado, usaremos para ello la suite Sleuthkit. ¿Qués es The Sleuthkit?

Es una colección de herramientas de análisis forense de volumen de sistema y archivos. Las herramientas del Sistema de Archivos  nos permiten examinar el sistema de archivos de un equipo a investigar, de una manera no intrusiva y altamente eficaz. Las herramientas de volumen de sistema permiten examinar la disposición de los discos y otros medios. The Sleuth Kit soporta particiones DOS, particiones BSD (etiquetas de disco), particiones Mac, partes Sun (índice de volumenes)y disco GPT.  Enlace a la página oficial aqui 

Captura de pantalla 2016-05-16 a las 23.01.51

PARSEADO MFT CON SLEUTHKIT

Partimos de una imagen forense de un ordenador, en esta demo una imagen de un ordenador con windows 7 pro de 64 bits. Podemos hacer las adquisición usando dd, dfcldd, dc3dd, guymager, la herramienta con la que os sintáis mas a gusto… No es la intención de este post (de momento) profundizar en ese tema, mas adelante ya lo tocaremos ya que también es importante. De momento vamos a por lo fácil

Vamos a usar una de las herramientas de esta competa suite, la utilidad fls y mmls

Se usa la utilidad mmls para averiguar entre otras cosas el offset de inicio de windows, tan fácil como esto…

Captura de pantalla 2016-05-16 a las 23.14.10

La zona marcada en azul es el offset de del disco duro.

Después se parsea el disco duro y se pasa todo a un archivo de texto con formato .txt

Captura de pantalla 2016-05-16 a las 23.07.50

fls -r -m “/” -i raw -o 0004202496 /Volumes/WD/windows7.001 > body.txt

Donde -r es para que sea búsqueda recursiva, -m “/” para que busque desde la raiz, -i raw es para indicar que el archivo a analizar es una imagen en formato raw, -o para indicarle el offset de inicio del volumen de windows  (este ya averiguado antes), a continuación indicamos la ruta de la imagen y posteriormente lo redireccionamos a un archivo de texto (en este caso body.txt)

Después tenemos un archivo de texto de un cierto tamaño…

Captura de pantalla 2016-05-16 a las 23.21.06

Para terminar usamos la utilidad mactime para convertir ese archivo de texto a un archivo con extensión .csv que podremos ver luego con Excel por ejemplo.

Captura de pantalla 2016-05-16 a las 23.23.13

 

Captura de pantalla 2016-05-16 a las 23.24.12

¡Voilá! Aquí está el resultado. Aquí tenemos un timeline de toda la vida de ese ordenador y podemos importarlo a Excel y empezar a analizarlo poco a poco.

Abrimos Excel => Importar Datos desde texto => Seleccionamos el archivo .csv y…

Captura de pantalla 2016-05-16 a las 23.28.39

Captura de pantalla 2016-05-16 a las 23.28.50
Captura de pantalla 2016-05-16 a las 23.28.58

Y como resultado final…

Captura de pantalla 2016-05-16 a las 23.36.02Aquí tenemos un timeline donde podemos buscar por fechas, archivos, podemos usar splunk   para hacer búsquedas por parámetros, resumiendo un sinfín de posibilidades.

 

De momento lo voy a dejar aquí, por hoy ya basta, en próximos posts veremos como extraer la $MFT con otra utilidad de la suite (icat)  y como parsearla con un poco de la magia  de  python  hasta convertirla en un archivo con extensión .csv para analizar.  Buscaremos archivos dentro del disco clonado, buscaremos y extraeremos archivos borrados, podemos crear scripts que nos automaticen los procesos y nos filtren y muestren los resultados… etc.  Hay todo un mundo ahí fuera sin interfaz gráfica amigos y funciona muy bien.  Poco a poco iremos entrando en este fascinante mundillo que os enganchará y a la vez, os hará mejores profesionales.

¡Hasta la próxima!