La ponencia versará sobre qué guardan de nosotros los navegadores web más utilizados (Explorer, Firefox, Chrome, Opera, Safari) y los métodos que utilizan para almacenar dicha información
2. /home/~dmedianero/index.htm
Reflexión: ¿Me debe importar lo que sabe de mí el navegador?
¿Porqué?
¿Qué almacena?
¿Cómo lo almacena?
¿A quién le interesan los datos del navegador?
37,7% 34,6% 20,2% 2,5%
Fuente: Dic 2011 - http://www.w3schools.com/browsers/browsers_stats.asp
7. IE Historial y Caché: Index.dat
Archivo de referencia que Internet Explorer usa para buscar en la caché
• Fichero oculto del sistema
• Se encuentra en varias rutas distintas
• Guarda los listados aunque se haya borrado la caché
• Indexa no solo páginas web, sino navegación desde el escritorio
(Internet Explorer está integrado en Windows)
Libmsiecf - http://sourceforge.net/projects/libmsiecf/
Windows File Analyzer - http://www.mitec.cz/wfa.html
Sistema Operativo Localización
Windows XP y anteriores C:Document and Settings<usuario>Local SettingsTemporary
Internet FilesContent.IE5
Windows Vista/7 C:Users<usuario>AppDataLocalMicrosoftWindowsTemporary
Internet FilesContent.IE5
8. Cookies
Permiten al servidor identificar al usuario
• <id_usuario>@<dominio>.txt
Limitaciones estructurales
• Número máximo 300, a partir de ahí se borran antiguas
• 20 cookies por servidor o dominio
• 4KBytes incluyendo nombre y valor
• Ningún equipo fuera del dominio puede leerla (Session Hijacking)
Herramientas para visualizarlas:
• McAfee Galleta (http://www.mcafee.com/us/downloads/free-
tools/galleta.aspx)
Sistema Operativo Localización
Windows XP c:Documents and Settings%username%Configuarción
localArchivos temporales de Internet
Windows Vista/7 C:Users%username%AppDataRoamingMicrosoftWindowsCoo
kies
9. IE Favoritos y Autocompletado
Favoritos:
Autocompletado de Formularios:
• HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerIntelliFormsStorage1
Autocompletado de contraseñas:
• HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerIntelliFormsStorage2
10. Algo más??
Browser Helper Objects
• http://msdn.microsoft.com/en-us/library/ie/bb250436%28v=vs.85%29.aspx
ActiveX
• http://msdn.microsoft.com/en-us/library/aa751972%28VS.85%29.aspx
Y mucho más en el SO…
13. places.sqlite
Comando de interés:
SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch'),
moz_places.url FROM moz_places, moz_historyvisits WHERE
moz_places.id = moz_historyvisits.place_id;
14. cookies.sqlite
Contiene información sobre las cookies
Schema:
CREATE TABLE moz_cookies (id INTEGER PRIMARY KEY, name TEXT,
value TEXT, host TEXT, path TEXT,expiry INTEGER, lastAccessed
INTEGER, isSecure INTEGER, isHttpOnly INTEGER, baseDomain TEXT,
creationTime INTEGER);
Comando de interés:
SELECT * from moz_cookies;
15. Caché
Mozilla Firefox guarda una caché local para acelerar la navegación,
dentro del perfil en la carpeta “Cache”
Son ficheros binarios del siguiente aspecto:
• _CACHE_MAP_
• _CACHE_001_
• _CACHE_003_
MozillaCacheView de NirSOFT -
http://www.nirsoft.net/utils/mozilla_cache_viewer.html
16. Algo más: Autocompletado
Formhistory.sqlite
Contiene el historial de datos introducidos en formularios
Schema:
CREATE TABLE moz_formhistory (id INTEGER PRIMARY KEY, fieldname
TEXT NOT NULL, value TEXT NOT NULL, timesUsed INTEGER, firstUsed
INTEGER, lastUsed INTEGER, guid TEXT);
Comando de interés:
SELECT * from moz_formhistory;
17. Algo más: downloads.sqlite
Schema:
CREATE TABLE moz_downloads (id INTEGER PRIMARY KEY, name TEXT, source TEXT,
target TEXT, tempPath TEXT, startTime INTEGER, endTime INTEGER, state INTEGER,
referrer TEXT, entityID TEXT, currBytes INTEGER NOT NULL DEFAULT 0, maxBytes
INTEGER NOT NULL DEFAULT -1, mimeType TEXT, preferredApplication TEXT,
preferredAction INTEGER NOT NULL DEFAULT 0, autoResume INTEGER NOT NULL
DEFAULT 0, DownbarShow INTEGER);
Comando de interés:
SELECT * from moz_downloads;
NOTA: Hay que tener en cuenta que algunos ficheros no se encuentran
en el fichero porque son interpretados por plugings del navegador
18. Algo más: recuperación y Addons
Si la sesión termina de manera inesperada, es posible restaurar
• Sessionstore.js
– Javascript en formato JSON
– http://code.google.com/p/jsonviewer/
– https://addons.mozilla.org/en-US/firefox/addon/jsonview/
Las extensiones se instalan para cada perfil:
• Extensions.rdf
» Listado de extensiones instaladas: grep NS1:name extensions.rdf
• Extensions.ini
• Extensions.log
• Extensions.sqlite
» Información de configuraciones en el perfil (extensiones deshabilitadas,
fechas de instalación, de actualización, etc)
20. Historial
global_history.dat: Historial, con la siguiente estructura
• Título, URL y Fecha y Hora, en formato 32Bit POSIX o Unix Epoch
– Se convierte en Unix con el comando “date -d@00000000”
typed_history.xml: Páginas introducidas en la barra de direcciones
• Contenido
• Tipo
• Fecha
21. Cookies
Almacenadas en el fichero “cookies4.dat”
Estructura en texto plano
Utiliza caracteres ilegibles, para una mayor compreensión:
http://www.opera.com/docs/operafiles/#cookies
22. Caché y Bookmarks
Opera guarda la caché en tres directorios del perfil:
• Application caché, Cache y opcache
Opera Cache View -
http://www.nirsoft.net/utils/opera_cache_view.html
Bookmarks. Fichero “bookmarks.adr”, en texto plano con estructura
en base a marcas (#FOLDER y #URL) y los siguientes datos:
• Date –d@1327569201
23. Algo más: recuperación de sesión
Opera produce información suficiente para poder restablecer la sesión
anterior, restaurando webs, tabs, etc
• $home/.opera/sessions/autosave.win & autosave.win.bak
– Formato de texto plano
24. Algo más??
download.dat: Ficheros descargados (timestamps)
notes.adr: Notas tomadas en el navegador (timestamp “created”)
pluginpath.ini: Listado de ruta a plugins
Mail. Opera tiene cliente de correo
Icons, Thumbnails, Widgets …
26. Historial
Fichero sqlite “History”
Multitud de tablas, las más interesantes son las siguientes:
downloads
• Almacena el path local, URL origen, timestamps, bytes recibidos, total de bytes,
si se abrió el documento desde el navegador,…
Urls
• Almacena entre otros datos la URL, el título, el número de visitas, el número de
veces que se tecleó el sitio para entrar y fecha de la última visita.
Visits
• Almacena las transiciones entre las páginas, es decir, cómo se accede a una
página
• http://code.google.com/chrome/extensions/history.html
27. Historial
Se almacenan ficheros adicionales sqlite “History Index 2011-XX”
Tabla pages_content
CREATE TABLE 'pages_content'(docid INTEGER PRIMARY KEY, 'c0url',
'c1title', 'c2body');
Se almacena contenido en texto de las webs que se visitan
Adicionalmente se almacena un archivo completo del historial en el
fichero “Archived History”, en formato sqlite
28. Cookies
Fichero sqlite3 “Cookies”
Schema:
CREATE TABLE cookies (creation_utc INTEGER NOT NULL UNIQUE PRIMARY KEY,host_key TEXT NOT
NULL,name TEXT NOT NULL,value TEXT NOT NULL,path TEXT NOT NULL,expires_utc INTEGER NOT
NULL,secure INTEGER NOT NULL,httponly INTEGER NOT NULL,last_access_utc INTEGER NOT NULL);
CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY,value LONGVARCHAR);
Comando de interés:
SELECT datetime(cookies.creation_utc/1000000, 'unixepoch'), cookies.name, cookies.path,
datetime(cookies.expires_utc/1000000,'unixepoch'),
datetime(cookies.last_access_utc/1000000,'unixepoch'), cookies.secure, cookies.httponly from
cookies;
Se guarda información similar en el fichero sqlite “Extension Cookies”
29. Caché y Bookmarks
Caché
• Se guarda información binaria relativa a la sesión actual (contenido, pestañas,
etc) en los ficheros “Current Sesion y Current Tabs”
• La información de caché se almacena en el directorio “Application Data”
• Chrome Cache View - http://www.nirsoft.net/utils/chrome_cache_view.html
Bookmarks
• Fichero en texto plano
• timestamps de creación y modificación
30. Algo más: recuperación y Addons
Si la sesión termina de manera inesperada, es posible restaurar
• Fichero “Local State” en el perfil con dicha información:
– Javascript en formato JSON
– http://code.google.com/p/jsonviewer/
Las extensiones se instalan para cada perfil en el directorio
“Extensions”
• Cada extensión tiene su propio directorio
• Fichero “manifest.json”
31. Algo más: Autocompletado
Web Data: Tablas donde se almacenan datos de autocompletado de
formularios
En las tablas autofill* se almacenan datos aunque no se apliquen las
opciones de autocompletado (fechas, emails, nombres, teléfonos,
direcciones)
http://support.google.com/chrome/bin/answer.py?hl=en&answer=142893
32. Ojo a las extensiones
Por ejemplo, dada la extensión de Chrome “offline de gmail”, es
posible acceder a direcciones a las que se les ha enviado un correo en
copia oculta con la consulta:
select * from address_index where isBCC=1;