Analisis forense

30
Análisis Forense Roberto Lopez Santoyo

Transcript of Analisis forense

Page 1: Analisis forense

Análisis Forense

Roberto Lopez Santoyo

Page 2: Analisis forense

INDICE

Montando el Laboratorio y Clonado con DD ............. 3

Foremost: Como Recuperar Archivos Borrados ........... 7

Autopsy: Como analizar un disco duro ................. 9

Cómo funciona la papelera de Windows ................ 18

Volatility: Como analizar la memoria RAM de Windows . 21

Como ocultar un archivo ............................................................... 27

Page 3: Analisis forense

Montando el Laboratorio y Clonado con DD

La labor de un perito en informática forense es a partir de unos datos de entrada realizar

unas prácticas forenses para llegar a obtener una serie de pruebas/evidencias. Es

importante no confundir la evidencia con el indicio. Entre otras cosas lo más común es

mirar la forma en la que se ha accedido al sistema informático, que es lo que se ha

hecho en este, el alance de las actividades y si hay puertas traseras o malware. Como

incidentes más comunes tenemos accesos no autorizados, malware, interrupción de

servicio y utilización no autorizada de un servicio.

Cada evidencia que vas encontrando debes hay que identificarla y numerarla. Para llevar

a cabo unas buenas prácticas, siempre habrá que hacer 2 copias del disco duro original

a analizar. La primera copia siempre la tendremos de reserva, y trabajaremos con la

segunda copia. Si esta segunda se estropea, aun tenemos la primera copia. Entonces

tendremos que hacer otra copia de la primera copia, para que no sea necesario tocar el

disco duro original y poder trabajar siempre sobre una copia, a su vez teniendo otra

copia de repuesto.

Siempre habrá que analizar la información en función de su volatilidad, es decir,

analizaremos antes la memoria de la RAM que la información de un DVD, ya que este

puede conservar su contenido durante años. Cuando vayamos a analizar un PC que esté

encendido deberemos de utilizar herramientas de línea de comandos ya que son más

ligeras y se modifica menos la memoria RAM. Debemos utilizar herramientas que utilicen

sus propias APIs para detectar procesos ocultos y conexiones ocultas, puesto que

muchas veces el malware avanzado es capaz de modificar el retorno de las llamadas a

las APIs de Windows y no veríamos nada extraño con las herramientas propias de

Windows que utilizan las APIs nativas.

Como resumen se puede decir que la labor del informático forense será de Adquirir,

Examinar, Analizar y Reportar. Si no dispones de una clonadora siempre podrás utilizar

la herramienta DD para realizar una copia del disco entero.

Para esta prueba vamos a utilizar dos discos duros virtuales (VHD) y los vamos a montar

en la distribución forense CAINE que arrancaremos desde una maquina virtual.

Para montarte el laboratorio en casa, primero creamos una maquina virtual con la ISO de

CAINE, y antes de encenderla iremos a su configuración (botón derecho ->

configuración) y aquí vamos a la pestaña de almacenamiento. Una vez aquí añadiremos

dos discos duros virtuales (VHD). El primero será el disco duro que queramos analizar, el

segundo será otro en donde realizaremos la copia de seguridad que será la que

analicemos (nunca se analiza el disco duro original). Como he comentado antes

deberíamos hacer dos copias del original, en este caso haré solo una puesto que la

segunda se haría igual.

Page 4: Analisis forense

Una vez ya tenemos la maquina virtual con los 3 discos duros puestos, procederemos a

encenderla.. Lo primera será cambiar la distribución de teclado para ponerla en español.

Pinchamos en el icono del teclado y escribimos “es” en la terminal que sale, y al darle a

enter se habrá cambiado el idioma del teclado.

Page 5: Analisis forense

Despues abriremos una terminal y con “ls /dev/sd” podremos ver los discos duros que

tenemos en la maquina (sda será el propio de la distribución CAINE, sdb es el primero

que hemos añadido en la configuración de almacenamiento “paraCopiar.vhd” y sdc es el

segundo que hemos añadido “copia.vhd”). Lo primero que haremos será obtener un hash

del disco duro sdb, para luego poder compararlo con el hash que hagamos al disco duro

que contenga el clonado, si estos dos hashes no coinciden quiere decir que la copia no

se ha realizado correctamente y habrá que volver a realizar la copia. Para tener más

garantías de que la copia está bien hecha hay que sacar dos hashes del disco origen,

otros dos del disco destino y comprobar que coinciden ambos.

Despues con la herramienta DD haremos un borrado seguro del disco duro en el que se

va a realizar la copia (para asegurarnos que no tiene datos de otro analisis anterior) lo

que haremos será llenarlo de ceros. Para esto tenemos en linux “/dev/zero”, que lo

pondremos como origen en la herramienta DD y en el destino pondremos el disco duro

donde queremos realizar la copia. Utilizaremos un block size (bs) de 1mega para que no

tarde mucho la copia (el bs es el tamaño del bloque que coge la herramienta DD para ir

copiando bloque a bloque). Una vez tenemos el disco destino lleno de ceros, habrá que

hacer la copia del disco original que en este caso es sdb, al disco de destino que

tenemos a ceros. Por utlimo se mira el hash del disco sdc (la copia) a ver si coincide con

el que obtuvimos anteriormente de sdb. En la siguiente imagen puedes ver todo el

procedimiento:

Page 6: Analisis forense

Habíamos visto que sdb tiene una partición que es sdb1. Es decir que sdc debería de

tener también la misma partición que sería sdc1 después de la copia. Lo que pasa que la

maquina todavía no la ha reconocido, y para que esto suceda habrá que llamar a la

herramienta fdisk e introducir la opción “w”. Y ya vemos como si que reconoce la

maquina la partición de nuestro disco duro copia.

Por ultimo vamos a explicar como montar una partición para que puedas examinar el

contenido del disco duro virtual que hemos clonado. En la foto he hecho la prueba con el

sdb, pero sería exactamente igual para la copia sdc. Primero tendremos que crear una

carpeta en donde montaremos el disco duro. A continuación el comando “mount” le

indicaremos que partición queremos montar y en que carpeta queremos montarla. De

esta forma cuando entremos a la carpeta podremos ver el contenido del disco duro. Para

desmontar la carpeta solo tendremos que escribir el comando “umount” seguido del

nombre de la carpeta.

Page 7: Analisis forense

Foremost: Como Recuperar Archivos Borrados

Vamos a ver como se utiliza la herramienta Foremost que es capaz de detectar tipos de

ficheros por su cabecera (no por su extensión que puede estar cambiada para engañar y

ocultar información) y para encontrar ficheros borrados. Montaremos la partición sdb1

para borrar un fichero y ver como podemos recuperarlo luego.

Una vez hemos borrado el fichero que es una foto y hemos desmontado la partición,

procederemos a realizar un clonado del disco sdb al disco sdc. Como siempre

realizaremos el análisis en el disco clonado que será sdc.

Para utilizar la herramienta Foremost le pondremos la opción

-s: quiere decir cuantos bytes va a leer de la cabecera de cada fichero

-t: será un filtro en el que indicaremos el tipo de fichero que queremos buscar

-i: el disco en el que queremos realizar la búsqueda

-o: la carpeta en la que queremos que nos guarde los resultados encontrados y un

informe sobre estos

Page 8: Analisis forense

Al ejecutar la herramienta nos genera un archivo con nombre audit.txt, que es el informe

de los resultados. En estos resultados podemos ver que nos ha rescatado 5 imagenes.

De esto obtenemos 2 conclusiones:

1. Hemos recuperado la foto que habíamos borrado en el disco original antes de hacer la

copia.

2. En el disco original solo había 4 ficheros con extensión .jpeg, esto quiere decir que

había uno de ellos que era una foto pero que le habian cambiado o quitado la extensión

para ocultar la foto

Como veis es bien sencilla de utilizar esta herramienta para Linux para recuperar

vuestros ficheros borrados.

Page 9: Analisis forense

Autopsy: Como analizar un disco duro

Como una imagen vale más que mil palabras, voy a hacer una explicación en imágenes

que creo que se va a entender mejor. Haremos la prueba en Kali. Fijaros que en cada

imagen está el ratón sobre el botón que hemos pulsado. Lo primero será arrancar el

autopsy.

En Linux se accede a la aplicación de Autopsy desde el navegador ya que la arranca

como servicio.

Page 10: Analisis forense

Creamos un caso nuevo.

Añadimos un nombre al equipo que vamos a investigar.

Page 11: Analisis forense

Añadimos la imagen que queremos analizar.

Escribiremos la ruta del disco duro que tenemos en formato .dd y le indicamos que es

una partición, si fuese un disco entero pincharíamos en la opción “disk”. A la hora de

importar tenemos 3 métodos. Los 2 más utilizados son el primero, que trabaja

directamente sobre la copia que le pasemos (si tenemos las 2 copias hechas del original

como dije en el primer post de la serie, esta es la mejor opción) y el segundo que trabaja

la copia que realiza la propia herramienta.

Page 12: Analisis forense

Aquí podemos pedirle que nos calcule el hash MD5 del disco a analizar o ponerle

nosotros uno para verificar que se ha realizado la copia correctamente. En nuestro caso

el hash del original y el de la copia lo hemos comprobado anteriormente por nuestra

cuenta. Vemos como nos ha reconocido que se trata de un sistema de ficheros NTFS y

asume como punto de montaje C:

Page 13: Analisis forense

Ya hemos terminado de preparar nuestra imagen y entonces procedemos a analizarla.

La primera de las pestañas que tiene la herramienta es la de analizar los ficheros. Aquí

nos aparecen también los archivos borrados. Hay una carpeta que se llama

$OrphanFiles que es donde se guarda todo lo que se elimina.

La segunda pestaña es para buscar cadenas en ASCII y Unicode en toda la imagen.

Page 14: Analisis forense

La tercera pestaña es para que te ordene y clasifique todos los ficheros de la imagen por

su tipo.

Page 15: Analisis forense

La cuarta pestaña es para ver detalles de la imagen como el tipo de archivos o la versión

del sistema operativo (siempre que sea posible) entre otras cosas.

La ultima pestaña es para buscar el cluster que te interese a partir de su número.

Page 16: Analisis forense

Esta imagen es en realidad un pequeño reto para aprender a utilizar la herramienta

autopsy, así que voy a resolverlo para que lo veáis.

Como hemos comentado anteriormente en la carpeta $OrphanFiles podemos encontrar

ficheros borrados. Si pinchamos en el primero y seleccionamos que nos muestro el

ASCII del fichero podremos ver que hay un numero en hexadecimal.

Seguimos explorando y encontramos un .doc que al descargarlo vemos que tiene una

contraseña.

Page 17: Analisis forense

Podemos pensar que el numero hexadecimal que hemos encontrado antes es en

realidad una contraseña y lo transformamos de Hexadecimal a ASCII.

Despues lo introducimos como contraseña al .doc y vemos que era la contraseña que

protegía el fichero.

Pues ya sabéis utilizar la herramienta forense Autopsy y habéis obtenido una noción

básica sobre como resolver un reto forense.

Page 18: Analisis forense

Cómo funciona la papelera de Windows

Vamos a ver como funciona la papelera de Windows. Funciona de forma distinta en XP,

que en las versiones posteriores (Vista, 7 y 8). Veremos los dos tipos de funcionamiento.

Hay que recordar que cada usuario solo puede acceder a su “basura”, es decir, que para

poder ver los ficheros borrados del resto de usuarios debes de ser administrador en la

maquina. Para realizar esta prueba vamos a mandar un fichero de texto a la papelera

que contiene la cadena de texto “buenas tardes”.

Primero vamos a ver como funciona la papelera de Windows XP. La papelera es la

carpeta RECYCLER que se situa en la raiz de C. Una vez dentro de esta carpeta si

listamos su contenido con “dir” podemos ver que no muestra nada. Para que se muestre

su contenido tendremos que invocar el comando “dir” con la opción “/a”. Para cada

archivo borrado se genera una carpeta, en el nombre de la carpeta aparece el

identificador de Windows del usuario que lo ha borrado, en este caso será el 500. Si

accedemos dentro de la carpeta y listamos el contenido vemos que hay un fichero que

se llama Dc7.txt nada más.

Page 19: Analisis forense

Tendremos de nuevo que listar el contenido de la carpeta con la opción “/a”. Entonces

podemos ver que también aparece un fichero con el nombre “INFO2″, donde se guardan

los nombres originales de los ficheros y la información asociada a este como puede ser

su ruta original antes de ser borrado. Si mostramos el contenido del archivo Dc7.txt con

el comando “more” podemos ver su contenido que era “buenas tardes” como hemos

dicho anteriormente.

Si mostramos el fichero INFO2 con el mismo comando “more”, podemos ver que en su

contenido aparece la ruta original del fichero borrado y su nombre original (“poc.txt” era

el nombre original).

Page 20: Analisis forense

Ahora vamos a ver como funciona en Windows Vista, 7 y 8.

La carpeta de la papelera se llama $Recycle.Bin y tambien está en la raiz de C. De la

misma manera que antes, para listar los ficheros de esta hay que hacer con “dir /a”.

Podemos ver que el nombre de las carpetas que almacenan cada fichero borrado tiene

el mismo formato que en Windows XP. La diferencia es que aquí la información dentro

de cada carpeta se guarda en ficheros distintos. Tendremos 2 ficheros con el mismo

nombre ambos salvo la segunda letra, uno tendrá la I como segunda letra (que será el

que almacene la ruta original del fichero borrado) y el otro tendrá la R como segunda

letra (que será el que almacene el contenido del fichero borrado). Así que si mostramos

el contenido del fichero $RVE905H.txt podremos ver su contenido que era como en el

caso anterior “buenas tardes”.

Page 21: Analisis forense

Y si hacemos un “more $IVE905H.txt” para mostar el contenido del fichero que almacena

la ruta original del fichero borrado y su nombre original podemos ver como se nos

muestra.

Pues ya sabeis como funciona la papelera de los Windows por dentro.

Page 22: Analisis forense

Volatility: Como analizar la memoria RAM de Windows

Vamos a ver como utilizar una de las herramientas más potentes para analizar memoria

RAM. Es una herramienta en donde la gente va aportando los distintos plugins que tiene

la herramienta. Se usa para analizar memoria RAM de Windows. Para obtener la RAM

de Windows podemos hacerlo con esta herramienta que explico en este post Sacar

passwords de la RAM, aunque si fuese para un proceso judicial, sería recomendable

hacer la copia de la memoria con una herramienta menos pesada que alterase menos la

RAM.

Para utilizar la herramienta en Linux habrá que llamarla por linea de comandos

introduciendo el fichero de la memoria con el comando “-f” y a continuación llamar al

plugin que queramos utilizar.

Pslist: Lista los procesos que había activos en el momento.

Page 23: Analisis forense

Consoles: Te muestra un historico de la terminal. En la parte de abajo de la foto aparece

primero los comandos que se introdujeron, y después aparece la consola con los

comandos introducidos y la respuesta de la máquina.

Connections: Listado de las conexiones que estaban abiertas.

Page 24: Analisis forense

Sockets: Listado de los sockets que estaban abiertos.

Pstree: Imprime la lista de procesos en forma de arbol.

Page 25: Analisis forense

Svcscan: Muestra los servicios que estaban activos.

Page 26: Analisis forense

Hashdump: Imprime los hashes (LM/NTLM) de la memoria. Para utilizar esta

herramienta es necesario ejecutar antes del plugin Hivelist para obtener las posiciones

de memoria de SYSTEM y SAM. Si nos fijamos en el principio de la foto, si ejecutamos el

plugin “hashdump” sin argumentos de entrada, nos mostará un error y nos pide la

posicion de memoria de SYSTEM y de SAM. Para saber los argumentos de entada de

estos plugins que necesitan argumentos solo tienes que ver su ayuda: “vol -h

hashdump”. Entonces podemos ver como en la foto se ha seleccionado la posición de

memoria de la SAM para pasarselo al plugin “hashdump”.

Pues estos son solo algunos de los plugins que tiene esta potente herramienta de

análisis de RAM. Si muestras la ayuda “vol -h” podrás ver todos los plugins que trae

incorporados.

Page 27: Analisis forense

Como ocultar un archivo

Vamos a ver como podemos ocultar ficheros dentro de otros en Windows gracias a un

fallo en el diseño del sistema de archivos NTFS.

Primero crearemos crearemos un fichero de texto llamado flujos.txt en el que

introduciremos el contenido “flujo1″. Lo que vamos a hacer será ocultar un fichero de

texto llamado flujos2.txt (y le meteremos de contenido “flujo2″) dentro de flujos.txt. Para

hacer esto lo que haremos será lo siguiente:

echo flujo2 > flujos.txt:flujos2.txt

De esta forma cuando abrimos el fichero flujos.txt con el bloc de notas de windows

(notepad) solo veremos el contenido “flujo1″, pero también podemos abrir nuestro fichero

que acabamos de ocultar de la siguiente manera:

start notepad flujos.txt:flujos2.txt

Y vemos como aparece el contenido que habíamos ocultado.

En la siguiente imagen podéis ver como se ha realizado la prueba.

Ahora vamos a realizar la misma prueba, pero lo que vamos a esconder es una imagen.

Procederemos de la misma forma que antes pero cambiando el texto por una foto, y el

tipo de fichero a ocultar por una imagen:

type “Puesta de sol.jpg” > flujos.txt:imagen.jpg

Page 28: Analisis forense

Podemos comprobar como podemos abrir este fichero oculto con la apliación paint

(mspaint) de Windows.

Cuando queramos buscar la foto que está oculta, no la encontraremos. Si listamos el

contenido de la carpeta Escritorio que es donde está oculta la foto, dentro de nuestro

archivo flujos.txt, podemos ver como solo se nos lista el fichero de texto flujos.txt, y no

hay ni rastro de la foto. En Windows XP no es posible detectarlo con las herramietnas

propias de Windows, pero vamos a ver como en posteriores versiones de Windows, sí

que será posible identificar estos ficheros ocultos con un nuevo comando que sacaron

que es “/r”.

Page 29: Analisis forense

Si repetimos el mismo procedimiento que acabamos de utilizar en un Windows 7

obtendríamos el mismo resultado. El fichero quedaría oculto. Pero como acabo de decir

a partir de Vista implementaron el comando “/r” de “dir” para poder identificar estos

ficheros ocultos. Y como podemos ver en la siguiente foto, si hacemos un dir no veremos

el fichero oculto, pero si hacemos

dir /r

Podemos ver como si que podemos identificar el fichero oculto.

Page 30: Analisis forense

Pues esta es una manera de ocultar ficheros en Windows.