Análisis Forense en Windows. Montado, navegación y búsqueda a través de una imagen clonada

¡Muy buenos días a todos! Poco a poco estamos comenzando a tener una serie de conocimientos sobre análisis forense de entornos Windows. Esto nos va a permitir empezar a movernos con cierta soltura por estas movedizas y no suficientemente conocidas tierras del análisis forense. En este post voy a explicar de un modo muy sencillo como:

  1. Montar una imagen forense en el punto que deseemos de nuestro equipo de trabajo.
  2. Una vez montado, nos va a permitir movernos por todo/as las capetas y directorios de nuestra imagen forense, tan fácilmente como si lo hiciéramos por nuestro sistema de ficheros propio.
  3. Podremos movernos como deseemos, tanto por linea de comandos, como a través de nuestro explorador (si gustamos de apreciar la interfaz gráfica) .
  4. ¿Para que hacerlo? Bueno, podemos buscar ciertos registros o datos de un modo muy visual,  esto luego nos puede ayudar para explicar los pasos realizados a personas menos preparadas de una manera mas sencilla de asimilar.

Quisiera dejar claro un par de aclaraciones antes de continuar:

  1. Hay herramientas “automágicas” que hacen esto de manera automática y totalmente transparente para el usuario, funcionan muy bien y son totalmente recomendables y absolutamente fiables (este punto debe quedar claro). Por poner un ejemplo y para su uso en entornos Windows me viene a la cabeza la herramienta FTK Imager Lite.
  2. ¿Por qué hacerlo de esta manera? Muy sencillo, porque una vez que se explica no es tan complicado (lo vas a poder ver en breve) y porque la herramientas “automágicas” están muy bien, pero se puede llegar a perder de vista lo que ocurre por debajo si se usan de continuo. Al realizarlo como se va a explicar, somos conscientes en todo momento de lo que está pasando, sabemos donde estamos, que hacemos y porque lo hacemos. Una vez se llega a este punto con total normalidad, podremos empezar a trabajar con la tranquilidad que da el conocer el terreno que estamos pisando y esto, amigos lectores, no hará mejores y mas fiables profesionales.
  3. Cualquier herramienta que se utilice, en cualquier entorno que se utilice, puede llegar a ser perfectamente válida, tan solo debemos pensar antes de utilizarla que queremos, si esta herramienta nos lo puede dar y si entendemos lo que esta haciendo. Si la respuesta a estas tres presuntas es si, adelante. Nosotros somos personal técnico, los programas y sistemas que utilicemos para trabajar son eso, herramientas de trabajo,nada mas. En mi caso me desenvuelvo muy bien  en entornos Unix, me gusta mucho Unix, pero si tengo que trabajar en entornos Windows, no me supone mayor problema.

En el siguiente ejemplo, vamos a montar nuestra ya familiar imagen de Windows 7 pro de 64 Bits y a continuación navegaremos por su interior, tanto por consola como por interfaz gráfica (usando nuestro explorador de archivos).

Como máquina de trabajo, usaremos una distro Ubuntu (versión 16.04) a la que tan solo le hemos instalado unos iconos mas a mi gusto, un tema mas claro y nuestra ya conocida suite sleuthkit.

version

Comenzamos…

Abrimos una terminal y nos movemos al directorio Escritorio (podría ser perfectamente cualquier otro, /tmp por ejemplo, en este caso, por ser mas visual se creará en el Escritorio).

Creación Punto de montaje
Creación Punto de montaje

Este será nuestro punto de montaje de la imagen.

El segundo paso es tan sencillo como localizar el offset de inicio de Windows, para ello usamos la herramienta mmls

mmlsUna vez localizado el offset de Windows en el disco duro, se debe calcular el sector donde se inicia la partición por la cantidad de bytes asignada a cada sector (que en este caso son 512), por tanto…

calc

Una vez calculada la cifra, usaremos el comando mount

Con el comando mount realizaremos el montado de la imagen en la carpeta creada anteriormente en el Escritorio como punto de montaje (monta).

mount

sudo mount -o loop,offset=2151677952,ro,noexec,show_sys_files,streams_interface=windows ‘/media/itzala/WD/FORENSE/windows7.001’ /home/itzala/Desktop/monta/

Ahora se pasa a desglosar cada una de las opciones selecionadas de este comando:

Con la  opción -o utilizan  las siguientes opciones separadas por comas unas de  otras:

  1. Opción ro para realizar el montado en modo de solo lectura,no se podrá efectuar ningún cambio sobre la imagen (fundamental para un análisis forense)
  2. Con la opción noexec no se  permite la ejecución de binarios ejecutables en el sistema de archivos montado
  3. Opción loop para realizar el montado sobre el dispositivo
  4. Con la opción show_sys_files se muestran los archivos meta del volumen (ntfs en este caso)
  5. Se usa streams_interface=windows para utilizar flujos de datos alternos (ADS)
  6. Con offset=2151677952 le indicamos el inicio de la partición que nos interesa (en el caso de tratarse de  una unidad física) para realizar el montado a partir del byte ahí indicado.
  7. Indicamos el path de ma imagen a montar (en este caso /media/itzala/WD/FORENSE/windows7.001)
  8. Por último le indicamos el punto de montaje (/home/itzala/Desktop/monta)
  9. ¡Y ya está montado en donde le indicamos! ¿No ha sido tan difícil verdad?

interior-monta

Ya lo tenemos montado y lo podemos ver tanto desde nuestro explorador de archivos como en el caso de la imagen anterior (podemos incluso ver la copia de la $MFT que hablábamos en posts anteriores)…

terminal1

Nos colocamos con el terminal en en punto donde hemos montado la imagen y nos podemos mover sin ningún problema por todo el sistema de ficheros vía terminal…

interior_

Como se aprecia en las dos imágenes anteriores nos podemos mover sin modificar nada de la evidencia tanto por interfaz gráfica como vía terminal.

Resumiendo, de un modo muy sencillo hemos montado y accedido con total seguridad a una imagen forense y nos hemos movido con total libertad por su estructura de ficheros.  No es nada difícil y una vez se controla esto, podemos usar cualquier herramienta ya que, al conocer lo que va por debajo, no tenemos ninguna limitación. Podremos automatizar procesos con scripts con una velocidad pasmosa y llegar hasta donde nosotros deseemos.

Recuerda amigo lector, en nuestro mundo el límite es nuestra imaginación y nuestra capacidad de renovación.

¡Hasta la próxima!

 

P.D: Para que se vea que en este mundo hay opciones para todo y para mostrar las posibilidades de Linux, aquí esta una imagen de FTK Imager Lite corriendo en Ubuntu gracias a la magia de Wine.

Desktop

Análisis forense en Windows. Búsqueda selectiva de tipos de archivos en imágenes forenses, búsqueda, extracción y análisis a través de inodos

¡Muy buenas a todos! Después de los anteriores posts, voy a pasar a mostrar otras de las muchas y amplias herramientas que nos ofrece la maravillosa suite Sleuthkit.

Vamos a buscar dentro de nuestra imagen clonada de un windows 7 pro de 64 bits una serie de archivos que nuestro cliente desea encontrar. Para ello utilizaremos la herramienta fls para realizar una búsqueda de un tipo en concreto de archivos (en este caso serán archivos con extensión .doc), aunque podrían ser de cualquier otro tipo como txt, xls, docx, mp3…etc. Vamos a ello:

mmls

Una vez tenemos el offset de windows encontrado  con la estupenda herramienta mmls ( offset en la imagen marcado de azul), ahora vamos a lanzar una búsqueda sobre la  imagen:

busqueda-doc

Donde fls es la herramienta -r es búsqueda recursiva, -F le indica que buscamos un archivo,  -o 0004202496 el ya clásico offset de windows y después la ruta de la imagen. Hasta aquí nos sale una fuente de información enorme, para filtrarla lanzamos esa información contra un pipe (|) y le pasamos un grep con la extensión de archivo que queremos encontrar, en este caso un .doc.

Sigue siendo mucha información para buscar por terminal, de modo que volvemos a lanzar la orden anterior y redirigimos la salida hacia un archivo de texto, que en un alarde de originalidad, llamaremos doc.txt.

texto_redirigido

Ahora lo dejamos trabajar y cuando termina, abrimos en archivo con cualquier editor de texto, posteriormente con ese mismo editor podemos buscar con el parámetro que deseemos o, si se desea, podemos pasar ese archivo de texto por la herramienta mactime para pasarlo a formato .csv y analizarlo  usando Excel (por ofrecer otra posibilidad).

Como ejemplo, podemos buscar un documento que se llame Abreviado.doc, podemos usar el Bloc de notas, podemos usar Excel, o si somos muy pro y queremos empezar a despegarnos de las interfaces gráficas que tanto mal han hecho podemos escribir…

grep

Y ahí lo tenemos. Ya tenemos el archivo localizado, ahora lo vamos a extraer, ¿cómo? Muy sencillo de nuevo con la herramienta icat,  tenemos localizado el inodo del archivo, en este ejemplo 103679, ya tenemos toda la información que necesitamos, vamos a ello.

extración

Y ya está extraído.

Extraído

Por temas de privacidad y porque realmente el contenido en este caso es lo de menos, no se va a mostrar su contenido, pero se puede apreciar claramente que el archivo está y tiene su tamaño, pequeño es cierto, pero a efectos de prueba nos sirve perfectamente.

Localizar archivos borrados es un juego de niños con esta herramienta, tan fácil como hacerlo así:

borrados

Podemos lanzar un grep para filtrar la salida buscando el  tipo de archivo:

borrados_filtrado

Y así tendríamos todos los archivos .doc borrados, así de simple, con añadir -d nos buscaría los archivos borrados.

Y retomando el archivo extraído…

Una vez esta extraído, podemos seguir extrayendo información de  el. Podríamos usar exiftool una vez extraído, pero si nos interesara buscar información antes de extraerlo, una vez hemos focalizado el “objetivo”, lo podemos analizar antes para intentar ver si es el que  nos interesa. ¿De qué manera? Con la herramienta istat. Veamos

istat

En esta orden istat es la herramienta, -i raw es el tipo de imagen, -f  le indicamos que el file system es ntfs, -o …(a estas alturas explicar esto ya como que sobra ¿no crees?, le añadimos la ruta de la imagen y al final escribimos el inodo del archivo  (que aquí es 103678). Y esto es todo lo que muestra

 

istat-output

Increíble toda la información que nos muestra, cuando se ha creado, cuando se ha accedido, los inodos que lo componen, su entrada en el MFT… Una enorme cantidad de información que podemos aprovechar.

Podemos usar esta poderosa herramienta para hacer búsquedas por fechas de acceso, por fechas de creación, por fechas de modificación… Resumiendo, múltiples posibilidades que nos pueden permitir que, con las herramientas de esta maravillosa suite, un poco de imaginación y unas líneas de scripting podamos realizar poderosas investigaciones con muy poco esfuerzo.

¡Ahora a practicar!

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!

Pengowin – recopilación de herramientas de seguridad para windows

Hace unos dias, tras leer el post en Security by default de Lorenzo Martinez aka @lawwait sobre PengoWin una recopilación de herramientas de seguridad para windows, me pico la curiosidad por descargarla y ver que tal era, tras unos días de echarle un vistazo, solo puedo decir que @banchiero (Oscar Banchiero) ha realizado un gran trabajo, recopilando más de 200 apps sobre distintas áreas de la seguridad informática:pengowin

Teniendo en cuenta que es la primera versión de esta recopilación, hay que reconocer el excelente trabajo realizado y la seleccion de herramientas es más que apropiada, aunque hay  que reconocer que se echan de menos otras que espero que en próximas versiones aparezcan.

Desde aquí doy las gracias a @banchiero y os recomiendo que os bajéis esta pedazo de recopilación que seguro que a más de uno le facilitará vuestro trabajo.