################################################################## [ Índice ] ################################################################### 1.- Introducción. 2.- Instalar dependencias y consejos para su uso en sistemas Microsoft Windows. 3.- Sintaxis. 4.- Opciones. 5.- Ejemplos de uso. ############################################################### [ Introducción ] ################################################################ La aplicación dumpzilla está desarrollada en Python 3.x y tiene como finalidad extraer toda la información de interés forense de los navegadores Firefox, Iceweasel y Seamonkey para su posterior análisis. Al haberse desarrollado de forma compatible con la rama 3.x de Python, puede no funcionar correctamente en versiones antiguas de Python, sobre todo al encontrarse con determinados caracteres. Corre bajo sistemas Unix y windows 32/64 bits. La aplicación funciona bajo linea de comandos y por lo tanto el volcado de información puede ser retomado mediante tuberías por herramientas como grep, awk, cut, sed,... Dumpzilla permite visualizar los siguientes apartados, personalizar las busquedas y extraer determinados contenidos. - Cookies + DOM Storage (HTML 5). - Preferencias del usuario (Permisos de dominios, configuración de proxys,...). - Descargas realizadas. - Uso de formularios web (Busquedas, correos electrónicos, comentarios,..). - Historial. - Marcadores. - Visualización / Extracción de la Cache HTML5 (Offline cache). - Visualización / Extracción de los "thumbnails" de sitios visitados. - Addons / Extensiones y las rutas o urls que han utilizado. - Passwords guardados en el navegador. - Certificados SSL añadidos como excepciones. - Datos de sesiones (Webs, URLs de referencia y texto usado en los formularios). - Visualizar la navegación del usuario en tiempo real, Url usada en cada pestaña / ventana y uso de formularios. Dumpzilla mostrará el hash SHA256 de cada fichero utilizado para extraer la información y al final de la extracción, un resumen con los totales. Apartados que no pueden ser filtrados por fechas: DOM Storage, Permisos / Preferencias, Addons, Extensions, Passwords/Exceptions, Thumbnails y Session Para completar el analisis forense del navegador se recomiendo usar una aplicación de extracción de datos de la cache, como por ejemplo MozCache. MozCache: : http://mozcache.sourceforge.net/ ##################################################### [ Instalar dependencias y consejos ] ###################################################### Dependencias: ============ - Python 3.x (Repositorios o http://www.python.org/download/) - Sistemas Unix con locales en UTF-8 / Sistema Micorosoft Windows - Python Magic Module: https://github.com/ahupp/python-magic El módulo "Magic" no es obligatorio, pero si se quiere usar la opción de extracción de la cache offline sin tenerlo instalado, esta fallará. Instalar el módulo Magic en Windows: =================================== 1.- Instalar "Magic Module": https://github.com/ahupp/python-magic (# python3.3 setup.py install) 2.- Descargar "GnuWin32 File utility" (Binaries y Dependencies): http://gnuwin32.sourceforge.net/packages/file.htm 3.- Colocar los ficheros "magic1.dll" y "magic" del paquete "Binaries" en "C:\windows\system32". 4.- Colocar los ficheros "zlib1.dll" y "regex2.dll" del paquete "Dependencies" en "C:\windows\system32". Consejos de uso en Windows: ========================== En windows CMD: set PYTHONIOENCODING=UTF-8 Motivo: http://wiki.python.org/moin/PrintFails#Windows El CMD de windows no puede representar determinados carateres y mostrará otros en su lugar. Solución 1: Redirigir la salida a un fichero (>) y posteriormente visualizarlo. Solución 2: Unix es Sexy Instalar el módulo Magic en Unix: ================================ Descargar: https://github.com/ahupp/python-magic $ cd python-magic-master/ # python setup.py install Configurar la ruta a la rama 3 de Python: ======================================== En la linea 18 se encuentra la variable "python3_path", su valor debe contener la ruta a la versión de Python 3.x que se tenga instalada. Ejemplo: python3_path = "/usr/bin/python3.2" Si esta variable no tiene la ruta correcta, la opción --Watch no funionará. ################################################################# [ Sintaxis ] ################################################################## Linea de comandos de dumpzilla: ============================== Localizar el directorio del perfil del navegador a auditar: - Windows: 'C:\Documents and Settings\xx\Application Data\Mozilla\Firefox\Profiles\xxxx.default' - Unix: '$HOME/.mozilla/firefox/xxxx.default/' Sintaxis: python dumpzilla.py browser_profile_directory [Options] Options: --All (Shows everything but the DOM data. Doesn't extract thumbnails or HTML 5 offline) --Cookies [-showdom -domain -name -hostcookie -access -create -secure <0/1> -httponly <0/1> -range_last -range_create ] --Permissions [-host ] --Downloads [-range ] --Forms [-value -range_forms ] --History [-url -title -date -range_history -frequency] --Bookmarks [-range_bookmarks ] --Cacheoffline [-range_cacheoff -extract ] --Thumbnails [-extract_thumb ] --Range --Addons --Passwords (Decode only in Unix) --Certoverride --Session --Watch [-text ] (Only Unix: Shows in daemon mode the URLs and text form in real time. -text' Option allow filter, support all grep Wildcards. Exit: Ctrl + C). Wildcards: '%' Any string of any length (Including zero length) '_' Single character '\' Escape character Date syntax: YYYY-MM-DD HH:MM:SS ################################################################# [ Opciones ] ################################################################## --All Muestra todo menos los datos DOM y tampoco extrae contenidos (thumbnails o HTML5 offline cache) --Cookies Muestra las cookies y el almacenamiento DOM si se especifica. -showdom Muestra los datos almacenados DOM y las cookies. -domain Filtra por nombre de dominio (Soporta Wildcards). -name Filtra por nombre de la cookie (Soporta Wildcards). -hostcookie Filtra por Vhost (Soporta Wildcards). -access Filtra la fecha de acceso (Soporta Wildcards). -create Filtra por fecha de creación (Soporta Wildcards). -secure <0/1> Filtra por cookies con la flag secure activada 1:Sí / 0:No. -httponly <0/1> Filtra por tipo HttpOnly 1:Sí / 0:No. -range_last Filtra la fecha del último acceso por rango de fechas (YYYY-MM-DD HH:MM:SS). -range_create Filtra la fecha de creación por rango de fechas (YYYY-MM-DD HH:MM:SS). --Permissions Muestra preferecias del usuario y permisos establecidos a determinadas webs. -host Filtra por dominio (Soporta Wildcards). --Downloads Muestra las descargas, también las almacenadas en en el historial y enumera los directorios de descarga. -range Filtra por fechas de inicialización de la descarga (YYYY-MM-DD HH:MM:SS). --Forms Muestra datos de formularios utilizados y texto escrito en los mismos (Email, comentarios, búsquedas,...). -value Filtra el texto escrito en un formulario (Soporta Wildcards). -range_forms Filtra la fecha de uso del formulario por rango de fechas (YYYY-MM-DD HH:MM:SS). --History Muestra las web visualizadas. -url Filtra por la URL (Soporta Wildcards). -title Filtra por "title" de la web (Soporta Wildcards). -date <date> Filtra la fecha de acceso (Soporta Wildcards). -range_history <start> <end> Filtra la fecha de visualización por rango de fechas (YYYY-MM-DD HH:MM:SS). -frequency Muestra los sitios más visitados primero. --Bookmarks Muestra los sitios almacenados en Marcadores. -range_bookmarks <start> <end> Filtra la última actualización / instalación por rango de fechas (YYYY-MM-DD HH:MM:SS). --Cacheoffline Muestra los dominios que almacenan datos offline (html5) y permite extraer sus datos. -range_cacheoff <start> <end> Filtra la fecha de almacenamiento por rango de fechas (YYYY-MM-DD HH:MM:SS). -extract <directory> Extrae el contenido de la cache offline al directorio especificado. --Thumbnails Extrae los thumbnails que muestra el navegador al arrancar o abrir una nueva pestaña / ventana. -extract_thumb <directory> Extrae las imágenes thumbnails (Si existen) al directorio especificado. --Range <start> <end> Filtra la fecha de Cookies, Downloads, Formularios, historial, Bookmarks y Cache offline por rango (YYYY-MM-DD HH:MM:SS). No filtra: DOM Storage, Permisos / Preferencias, Addons, Extensions, Passwords/Exceptions, Thumbnails y Session. --Addons Muestra los Addons / Extensiones usados en el navegador y las rutas / URLs usadas por los mismos. --Passwords Muestra los usuarios y passwords guardados, si no se usó clave maestra, los decodifica (Python 2.x). --Certoverride Muestra los certificados SSL añadidos por el usuario. --Session Muestra los datos de la última y penúltima sesion. Ultimas Webs y formularios utilizados. --Watch Se queda en primer plano mostrando las URLs y formularios de Ventanas / Pestañas según va navegando el usuario, para terminar: Ctrl + C Editar la cabecera (Linea 18) indicando la ruta a Python3.x en la variable "python3_path". Ejemplo: python3_path = /usr/bin/python3.3 -text <string> Filtra por cadenas de texto, soporta todas las Wildcards de grep. Ejemplo: --Watch -text "yahoo\|live\|gmail" ############################################################# [ Ejemplos de uso ] ############################################################### ======================================== Cookies con Wildcards y rangos de fechas: ======================================== Estos comandos muestran el mismo resultado: $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -create 02:35 -name GAPS $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -create 02:35:1% -name _AP% $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -create 2013-0_-04 %:35:1% -name %A__ -hostcookie www.google.com Domain: google.com Host: www.google.com Name: GAPS Value: 1:IvFZXoV-6ihRuP658dfr7FjLQcnrhw:0X5FWx6hkt0Fp77C Path: /accounts Expiry: 2015-03-04 02:35:14 Last acess: 2013-03-04 02:35:14 Creation Time: 2013-03-04 02:35:14 Secure: 0 HttpOnly: 1 Este comando visualiza los dominios y sus datos DOM junto con las Cookies accedidas entre dos fechas dadas. $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -domain google% -range_last "2013-03-04 01:28:09" "2013-03-04 01:28:51" -secure 0 -httponly 0 -showdom Domain: google.de Host: .google.de Name: PREF Value: ID=e59d6b724e975713:U=ed7938110e81ef61:FF=0:LD=en:TM=1361492092:LM=1361492092:S=XE3J6pRySWKjnNuT Path: / Expiry: 2015-02-22 01:14:52 Last acess: 2013-03-04 01:28:11 Creation Time: 2013-02-22 01:14:52 Secure: 0 HttpOnly: 0 Domain: secure.shared.live.com DOM data: 1361915953829 ======================================== Uso de caracteres de escape para filtrar: ======================================== Sin usar caracter de escape: $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -name "_ag%" Domain: objectmix.com Host: .objectmix.com Name: _agads Value: ID=9cd33476f2c9ad11:T=1361492099:S=ALNI_MaEx-Nl-AeR5nAgJq8o_Hz44yDfow Path: / Expiry: 2015-02-22 01:14:59 Last acess: 2013-03-04 14:44:13 Creation Time: 2013-03-04 14:44:13 Secure: 0 HttpOnly: 0 Domain: objectmix.com Host: .objectmix.com Name: Xagads Value: 0 Path: / Expiry: 2014-02-22 01:15:01 Last acess: 2013-03-04 14:44:55 Creation Time: 2013-03-04 14:44:55 Secure: 0 HttpOnly: 0 Usando caracteres de escape (Dos formas, mismo resultado). $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -name "\_ag%" $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -name \\_ag% Domain: objectmix.com Host: .objectmix.com Name: _agads Value: ID=9cd33476f2c9ad11:T=1361492099:S=ALNI_MaEx-Nl-AeR5nAgJq8o_Hz44yDfow Path: / Expiry: 2015-02-22 01:14:59 Last acess: 2013-03-04 14:44:13 Creation Time: 2013-03-04 14:44:13 Secure: 0 HttpOnly: 0 ================================================================================ Auditar navegación en tiempo real filtrando contenidos de Yahoo, hotmail y Gmail: ================================================================================ Recordemos que la opción "-text" de "--Watch" puede usar las wildcards del comando grep. Este comadno mostrará toda ventana / pestaña que contenga dichas cadenas de texto. $ python3.2 dumpzilla.py .mozilla/firefox/yle8qt6e.default --Watch -text "yahoo\|live\|gmail" Title: Redactar - luser1985@gmail.com - Gmail URL: https://mail.google.com/mail/?shva=1#drafts/13d4aa3d5e74265e Title: (29 no leídos) - Karl Müller - Yahoo! Mail URL: http://es-mg42.mail.yahoo.com/neo/launch?.rand=4vhbkln5s409p#mail Title: Yahoo! - 404 Not Found URL: http://es-mg42.mail.yahoo.com/app/minty/options/general Form: {'s1p': 'Big Butt'} Title: Una contraseña no es suficiente URL: https://account.live.com/Proofs/Manage?ru=https://login.live.com/login.srf%3flc%3d3082%26sf%3d1%26id%36%26cbcxt%3dmai%2mspp_shared%3d1%26seclog%3d0%26wa%3dwsignin1.0%26wp%6ru%3dhttp://mail.live.com/default.aspx&mkt=ES-ES&uiflavor=web&id=6455&lqsp=ntprob%3d-1&mpcxt=AFP&oru=http://mail.live.com/default.aspx&lmif=100 Form: {'Question': {'selectedIndex': 0, 'value': '0'}, 'DisplayPhoneNumber': '650457892', 'EmailAddress': 'recuperacion@hotmail.com', 'DisplayPhoneCountryISO': {'selectedIndex': 60, 'value': 'ES'}} ============================ Combinando mútiples opciones: ============================ $ python3.2 dumpzilla.py .yle8qt6e.default --Cookies -access "16:32:18" --Permissions -host addons.cdn.mozilla.net --History -date "14:27:32" Execution time: 2013-03-05 18:55:23.691384 Mozilla Profile: .mozilla/firefox/yle8qt6e.default ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Cookies [SHA256 hash: d05199c0ff5db35bedb47e536076d0aeda10899c0ff5db35bedb47e536076940] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Domain: filldisk.com Host: .filldisk.com Name: __utmz Value: 30275752.1362488826.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) Path: / Expiry: 2013-09-04 05:32:18 Last acess: 2013-03-05 16:32:18 Creation Time: 2013-03-05 14:07:05 Secure: 0 HttpOnly: 0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DOM Storage [SHA256 hash: d99c0ff5db35bedb47e53607628004d7a11e361a45c660dd507d2aed2b10061b] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Domain: secure.shared.live.com Domain: 2.filldisk.com Domain: 1.filldisk.com Domain: secure.shared.live.com ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Permissions [SHA256 hash: 1448abfa05363d0b68bcaeb75bb1bbf2bf873199c0ff5db35bedb47e5360769c] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Host: addons.cdn.mozilla.net Type: sts/subd Permission: 2 ExpiteType: 0 ExpiteTime: 1970-01-01 01:00:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Preferences [SHA256 hash: 99c0ff5db35bedb47e536076e371076d8be30ae13751ddd3e42e793cda78a4fd] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Browser cache disk capacity: 228352 Download directory: /home/jasmin/Descargas Last Download directory: /home/jasmin/Escritorio Browser Version: 19.0 URL proxy autoconfig: http://caca.com/ FTP backup proxy: 127.0.0.1 FTP backup proxy port: 4001 Socks backup proxy: 127.0.0.1 Socks backup proxy port: 4001 SSL backup proxy: 127.0.0.1 SSL backup proxy port: 4001 FTP proxy: 127.0.0.1 FTP proxy port: 4001 Http proxy: 127.0.0.1 Http proxy port: 4001 Share proxy settings: true Socks proxy: 127.0.0.1 Socks proxy port: 4001 SSL proxy port: 4001 Type Proxy: 1 (0: No proxy | 4: Auto detect settings | 1: Manual configuration | 2: URL autoconfig) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ History [SHA256 hash: f9cabf311389c5b79810a2ac99c0ff5db35bedb47e5360767369bc797307a80e] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Last visit: 2013-03-05 14:27:32 Title: لوحة المفاتيح SwiftKey X للأندرويد وتدعم العربية URL: http://www.vip4soft.com/%D9%84%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD-swiftkey-x-%D9%84%D9%84%D8%A3%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF-%D9%88%D8%AA%D8%AF%D8%B9%D9%85-%D8%A7%D9%84%D8%B9%D8%B1.html Frequency: 1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Total information ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Total Cookies: 3 Total DOM Data: 14 WARNING: For show the DOM storage data , use the option -showdom Total Permissions: 2 Total urls in History: 1 ==================================== Obtener los Passwords (NO python3.x): ==================================== Mostrar las webs configuradas para no guardar credenciales, las credenciales codificadas y las mismas decodificadas (Ejecutando dumpzilla bajo la rama 2.x). $ python2.7 dumpzilla.py .mozilla/firefox/yle8qt6e.default --Passwords +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Exceptions/Passwords [SHA256 hash: 15ba116a979ba41cce582b2d99c0ff5db35bedb47e53607678c2fa5fb24a570c] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Exception Web: https://www.facebook.com Exception Web: http://www.gmx.net Exception Web: https://login.yahoo.com Exception Web: https://accounts.google.com Web: http://www.shodanhq.com User field: username Password field: password User login (crypted): MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECE5kYU15qEEzBBA0nPH2m3bNM3wVEziqY02u Password login (crypted): MEoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECE+XsaqLhIfIBCBoHtRGHjQ/Vq3FbPZgq2sGDL/YT9P5PHiUZ0QW6vktew== Encripton type: 1 Created: 2013-03-05 13:19:22 Last used: 2013-03-05 13:19:22 Change: 2013-03-05 13:19:22 Frequency: 21 Web: https://www.facebook.com User field: email Password field: pass User login (crypted): MEoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECIkQJPfZJbL/BCB/lc86x0KEyhw8NBwR/dhJGdXuV0QDCcLqaFg/rVayBw== Password login (crypted): MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECNHMNFUnu2I+BAiA6BBtclMuFQ== Encripton type: 1 Created: 2013-03-05 13:21:07 Last used: 2013-03-05 13:21:07 Change: 2013-03-05 13:21:07 Frequency: 9 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Decode Passwords +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Web: http://www.shodanhq.com: Username: Bladimir Passsword: Вакансиидерьмо Web: https://www.facebook.com: Username: justinbieber@hotmail.com Passsword: 12345 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Total information ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Total passwords: 2 Total passwords decode: 2 ============================ Dumpzilla con tubería a grep: ============================ Muestra las extensiones instaladas y las rutas en C:\ (Windows) utilizadas por ellas. $ python3.2 dumpzilla.py .yle8qt6e.default --Addons | grep -A 1 -B 1 -i "C:" Type: theme Descriptor: C:\Program Files\Mozilla Firefox\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd} Version: 19.0 -- Type: extension Descriptor: C:\Documents and Settings\jasminpc\Application Data\Mozilla\Firefox\Profiles\5s28qo2r.default\extensions\exif_viewer@mozilla.doslash.org.xpi Version: 2.00 -- APP: chrome://exif/content/exif.xul#history-loc-1 URL/PATH: C:\DocumentsandSettings\AllUsers\Documents\Porn\Sandra_2011\beach.jpg" -- APP: chrome://exif/content/exif.xul#history-loc-1 URL/PATH: C:\DocumentsandSettings\AllUsers\Documents\Porn\Sandra_2011\ricorico.jpg" ################################################################# [ CopyLeft ] ################################################################## License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.