[Firefox Forensics] Analizando las huellas de Firefox

La informática forense es la segunda rama de la informática que más me gusta, después de la seguridad, y se nota que poco a poco empieza a haber más en internet acerca de ella (sobre todo, más documentos en español).

Esta entrada la quiero dedicar exclusivamente a un programa llamado Firefox 3 Extractor, que nos permite, a partir de los datos que se guardan del navegador, obtener de forma ordenada esos datos.

El programa (Descarga) consta de dos ficheros: el ejecutable y una libreria para que funcione. Ambos ficheros se han de copiar en la carpeta donde tenemos los datos que extraerá, que en Windows 7 y Vista suele ser:

C:\Users\[ususario]\AppData\Roaming\Mozilla\Firefox\Porfiles\[perfil]

Nada más iniciarlo nos pide unos cuantos datos de configuración rápida:
-Formato de la hora (Inglés o Americano)
-Offset UTC en minutos (para los tiempos): España por ejemplo tiene UTC+1 (+2 en verano), así que pondriamos 180.
-Referencia del Caso
-Nombre del Caso
-Investigador

Tras esta miniconfiguración, nos desplega un menú:

Recalcaría las opciones que me parecen más útiles, como puede ser la B y la D.
La A es igual que la B, salvo que en la opción B nos decodifica las fechas y tiempo, por lo que puede ser más cómodo. Sin embargo, de elegir la A, las fechas y tiempos nos aparecerán codificados en una cadena de 16 dígitos que luego podemos decodificar usando la opción E.

Por otra parte, la opción C y D hacen lo mismo, pero en lugar de exportarlo en formato CSV (que es muy cómodo si después pensamos tratarlo de alguna manera) la opción D lo exporta en formato HTML, legible para cualquier navegador y fácilmente entendible y visible.

Analizando las cookies exportadas
cookies.sqlite moz_cookies
El formato que tiene el fichero generado para ver las cookies ordenadas (en CSV, opción B) tiene la siguiente estructura:
ID, nombre, valor, host, ruta, expiración, ultimo acceso, si es segura, si es HttpOnly (estos dos ultimos valores son indicados mediante 0 o 1).

Este fichero nos puede ser muy útil si buscamos una cookie crítica, es decir, la que usa una página para autenticarnos, como puede ser auth_token en el caso de twitter. Simplemente usariamos Ctrl+B y buscariamos “auth_token”, y nos aparecería. Si tuvieramos que hacer este proceso para comprobar todas las cookies de los sitios que queremos saber, nos podria dar algo (sobre todo si es un log antiguo), así que lo más cómodo, teniendo un archivo CSV, es usar algún programa que nos haga el archivo CSV más legible, como puede ser Calc (el Excel del OpenOffice).

Ahora, tendremos más legible la zona de hosts, que es la que nos interesa.

Analizando los sitios
places.sqlite moz_bookmarks
En este CSV que contiene información acerca de los marcadores (o favoritos), son interesantes los campos de: Id, tipo, padre, posición, titulo, fecha de creación, última modificación.
El tipo será 1, 2 o 3, dependiendo de si es un enlace, una carpeta, o una barra respectivamente.
En el contenido de “padre” pondrá la ID a la que pertenece el enlace. Por ejemplo, si tenemos una carpeta de ID 3, y dentro tenemos un enlace, en este nos aparecerá que tiene como padre el 3.
La posición es el lugar en el que se encuentra respecto a los demás enlaces dentro de su carpeta.
Los tres siguientes campos, su propio nombre lo indica. Destacar que no aparece el enlace (que pena).

places.sqlite moz_places
Aquí realmente no me funcionan bien todos los campos (sobre todo los últimos, aunque igual es porque no tengo que se grabe nada salvo las cookies).
Los campos que destacaria aquí son los de URL, y Título, ya que a partir del título de la web (que anteriormente incluso teniamos en los marcadores) tenemos la URL.

Tutorial addon/complemento iMacros de Firefox

Índice:

Dos tipos de referencia: Posición y Tags
Comandos del navegador
Bucles
Conclusión

Hace poco, mientras escribía un post acerca de cómo llenar la base de datos de cuentas basura en una plataforma de registro sin captcha como Prestashop (link) me daba cuenta de lo poderosa que es esta herramienta (incluso más de lo que yo me imaginaba) y como tal, se merece una entrada a modo de tutorial de los comandos y usos básicos e interesantes.

Introducción
iMacros nos permite automatizar tareas en el navegador, como hacer click en determinado sitio, visitar cierta página, introducir texto en alguna caja de texto, y realmente cualquier cosa que podamos realizar desde el navegador en cualquier página web de forma automatizada, incluso permite la realización de bucles.

Dos tipos de referencia: Posición y Tags
Para realizar estas tareas automáticas, tenemos dos tipos de referencias que a la hora de grabar, pueden marcar cierta diferencia, y es bueno conocer ambas para saber cual nos conviene usar en cada momento.

  • Posición:

Esta forma de referencia se basa simplemente en la posición (X,Y) como si de una gráfica de dos dimensiones se tratara. Esto redirige el ratón a cierta posición para realizar un click.

CLICK X=40 Y=61 (hace click en esa posición)
CLICK X=984 Y=14 CONTENT=hola (hace click en esa posición y escribe "hola")

Nota: la posición 0,0 empieza arriba a la izquierda

  • Tags (HTML):

Esta forma de referencia se basa en los tags HTML. Este método permite también clickear, pero se complica mucho más, ya que para clickear en un sitio por ejemplo, realiza lo siguiente:

TAG POS=1 TYPE=SPAN ATTR=TXT:Entradasrecientes

Es mucho más complicado de programar que por posición X,Y pero a la hora de grabar es igual de sencillo.

Primer ejemplo: Búsqueda en el buscador
Para entender mejor ambas formas de referenciar, realizaremos una búsqueda en el buscador de la página, realizando asi de ambas formas lo mismo.

  • Posición:


URL GOTO=http://delanover.com/ (vamos a la página)
CLICK X=932 Y=130 CONTENT=hola (clickeamos en el cuadro de texto, y escribimos "hola"
CLICK X=1028 Y=132 (clickeamos en esa posición, que es la del botón de buscar)

  • Tags (HTML):


URL GOTO=http://delanover.com/
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://delanover.com/ ATTR=ID:searchQuery CONTENT=hola (hace referencia al contenido dela caja de texto)
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://delanover.com/ ATTR=VALUE:Encontrar (hace referencia al botón de buscar)

Comandos del navegador
Explicaremos ahora los comandos que hacen referencia al navegador en sí, y no al contenido.

-Para ir a una página (cuadro de direcciones), lo realizaremos mediante:

URL GOTO=http://delanover.com/

-Abrir y cerrar pestañas:

TAB OPEN
..
TAB CLOSE

-Para moverse entre pestañas:

TAB T=1
TAB T=2
..

Nota: Son posiciones relativas. Si nos encontramos en la pestaña tercera, TAB T=2 será la cuarta, y así sucesivamente.

-Esperar X segundos:

WAIT SECONDS=3

-Descargar algo:

[lineas de descarga]
ONDOWNLOAD FOLDER=C:\Users\lipman\Downloads FILE=Firefox.exe WAIT=NO
[lineas de descarga]

Seleccionamos la ruta, el nombre, y si queremos esperar a que termine la descarga para terminar el iMacros. Con el nombre cuidad con las extensiones, pero si queremos dejar el nombre por defecto de la descarga, simplemente dejar un *.

Segundo ejemplo: Descargar Firefox
El segundo ejemplo consistirá en abrir 3 pestañas, en la primera pondremos la página para la descarga de firefox, en la segunda no pondremos nada, y en la tercera pondremos esta página. Esperaremos unos segundos, iremos a la primera pestaña, y descargaremos firefox.

TAB T=1 (vamos a la pestaña 1)
URL GOTO=http://www.mozilla.com/es-ES/download/?product=firefox-4.0rc1&os=win〈=es-ES (vamos a esa página)
TAB OPEN
TAB OPEN (abrimos 2 pestañas)
TAB T=3 (hacemos referencia a la tercera)
URL GOTO=http://delanover.com (vamos a esa página)
WAIT SECONDS=3 (esperamos 3 segundos)
TAB T=1 (vamos a la primera pestaña)
ONDOWNLOAD FOLDER=C:\Users\lipman\Downloads FILE=* WAIT=NO (seleccionamos las propiedades de la descarga)
TAG POS=1 TYPE=A ATTR=HREF:http://download.mozilla.org/?product=firefox-4.0rc1&os=win〈=es-ES&&TXT:hazclicaquí (clickeamos en la descarga, método de referencia: tags)

Bucles
Puesto que esta herramienta trata de automatizar una tarea, lo ideal es realizar con este complemente tareas repetitivas, como anteriormente realizábamos rellenando la base de datos con cuentas basuras. Para esto nos serviremos de la variable {{!loop}}

Este apartado lo entenderemos mejor con un ejemplo: supongamos que queremos visitar las páginas www.1.com, www.2.com… y así sucesivamente. Para ello realizariamos:

URL GOTO=www.{{!loop}}.com

en donde {{!loop}} vale cada vez un número más incrementado, que realmente es el número de bucle que se está realizando. Le dariamos a “Ejecutar bucle” desde 1 hasta donde queramos.

Conclusión
Personalmente no soy partidario de instalar cualquier addon de Firefox a la ligera, puesto que más de una vez ha habido sorpresitas indeseadas para los no precavidos. Sin embargo, creo que este complemento es ideal para todos aquellos que trasteamos muchas cosas con el navegador (junto con firebug y firecookie). Al contrario que estos dos últimos, este addon es muy probable que tenga mucho menor uso, por lo que yo recomendaria desactivarlo siempre que no se use.

Saludos, lipman