Recuperar historial de navegador (URLs, cookies, autofill) desde pagefile.sys
20/5/2026 · 5 min de lectura
Los navegadores son las aplicaciones más ruidosas de un sistema Windows. Abren miles de pestañas a lo largo de una sesión, decodifican HTTPS a texto plano en memoria, mantienen cachés y datos de autocompletado de forma permanente mientras corren, y actualizan constantemente bases de datos SQLite. Cuando llega la presión de memoria, algo se pagina — y ese algo muy a menudo son datos del navegador.
Qué puedes recuperar
En orden aproximado de frecuencia en un pagefile típico de usuario:
- URLs visitadas — cadenas
https://…desde la barra de direcciones, destinos de clic y cabeceras de petición HTTP. - Búsquedas —
https://www.google.com/search?q=…,https://duckduckgo.com/?q=…, Bing, etc. La consulta queda en la URL. - Envíos de formulario — cuerpos
application/x-www-form-urlencodedque sobreviven brevemente en el heap del renderer. - Cookies — fragmentos de cabeceras HTTP
Cookie:/Set-Cookie:. - Valores de autocompletado — nombres de usuario, direcciones,
números de tarjeta, números de teléfono (Chrome / Edge los guardan en
el SQLite
Web Data, descifrados en memoria al rellenar un formulario). - Fragmentos de base de datos SQLite — páginas de
History,Cookies,Login Data,Web Data. - JWT y tokens de sesión en respuestas XHR / fetch cacheadas.
Layout de archivos del navegador
Un mapa rápido de dónde viven los datos del navegador en disco (útil para hacer cross-checking de lo que encuentres en el pagefile):
| Navegador | Raíz del perfil |
|---|---|
| Chrome | %LOCALAPPDATA%\Google\Chrome\User Data\Default\ |
| Edge (Chromium) | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\ |
| Brave | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\ |
| Firefox | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\ |
| Opera | %APPDATA%\Opera Software\Opera Stable\ |
| Chrome (UWP/Modern) | las trazas también caen en swapfile.sys — ver la comparación de archivos de paginación |
Los archivos SQLite interesantes en cada uno (familia Chromium):
History—urls,visits,keyword_search_terms,downloads.Cookies— name, value, host, expiry, encrypted_value (DPAPI).Login Data— tablalogins(contraseñas guardadas, cifradas con DPAPI).Web Data—autofill,autofill_profile_*, tarjetas de crédito (cifradas con DPAPI).
Cuando alguno está abierto por el navegador vivo, sus páginas viven en la memoria del proceso renderer — y la forma descifrada de cookies, autofill y datos de login vive en memoria en el momento de uso. Ambos estados pueden acabar paginados.
Qué te da la pestaña Artifacts de esta herramienta
Suelta un pagefile en el parser. La pestaña Artifacts extrae automáticamente:
- URLs —
https?://[A-Za-z0-9\-._~:/?#\[\]@!$&'()*+,;=%]+sobre cada cadena extraída. Incluye las cadenas de query completas de los buscadores. - Emails — comunes en autofill, flujos de recuperación de cuenta, páginas de contacto.
- IPv4 / IPv6 — útiles cuando un parámetro de query o un X-Forwarded-For contenía una dirección.
La pestaña Page map etiqueta las páginas que empiezan por
SQLite format 3\0 — esas son páginas de base SQLite, casi seguro de
alguna de las BDs de navegador de arriba.
La pestaña Strings es a donde ir tras los IOCs:
- Filtra por
Cookie:para ver fragmentos de cookies HTTP. - Filtra por
Set-Cookie:para encontrar cookies emitidas por el servidor (con nombres, dominios, paths). - Filtra por
Authorization:para encontrar bearer tokens en llamadas a APIs. - Filtra por
user-agentpara pivotar a pestañas / sesiones concretas. - Filtra por
searchTerm,q=,query=para búsquedas en sitios concretos.
Carving de SQLite
Cuando el page map marca SQLite format 3 (una página de cabecera de
B-tree) o una página interior de B-tree, tienes un fragmento de una BD
de navegador. Las páginas son de 4 KB por defecto (Chromium) o 32 KB
(builds más recientes de Firefox).
Para extraer registros estructurados de una página SQLite carveada:
- Usa
sqlite_carvingobring2lite— ambas hechas a propósito para carving de registros SQLite desde memoria en bruto. - O abre los bytes en
undark/sqlite-deleted-recordspara leer filas borradas.
Lo que se extrae habitualmente:
- Filas URL + visit_time + title de
History.urls/History.visits. Los últimos 90 días de navegación en una página, si tienes suerte. - Filas Cookie name/host/path/value de
Cookies. - Filas autofill clave/valor de
Web Data.autofill.
Firefox vs Chromium
Firefox guarda el historial en places.sqlite y los marcadores en la
misma BD. El esquema es distinto pero el enfoque de carving es idéntico
— solo busca cadenas places.sqlite cerca de páginas SQLite, y nombres
de tabla moz_places, moz_bookmarks, moz_historyvisits.
Firefox también guarda datos de session restore en archivos JSON
(sessionstore.jsonlz4) que están comprimidos con LZ4; no los verás como
aciertos SQLite, pero el contenido descomprimido vive en memoria y
puede paginarse como JSON plano. Filtra la pestaña Strings por
"entries": y "lastAccessed":.
Modo IE de Edge y restos de Internet Explorer
Si el sistema tiene Edge en modo IE (aún común en empresa), verás
también fragmentos de WebCacheV01.dat (la base de datos ESE de
IE10+). Las páginas ESE empiezan con su propia cabecera
(page header + tag array); no las recoge el catálogo de firmas
actual, pero las cadenas internas aparecerán en la pestaña Strings —
nombres de host, URLs, timestamps.
Consejos operativos
- Captura cuanto antes. Cada minuto que el navegador siga ejecutándose, se reescriben páginas.
- Empareja con el perfil vivo. Los datos carveados del pagefile son más útiles cuando puedes diferenciarlos contra el SQLite vivo — cualquier cosa en el pagefile que no esté en la BD viva es o bien recientemente sobrescrita, o una fila borrada, o tráfico InPrivate / Incognito.
- Incognito / InPrivate no protegen del pagefile. El modo le dice al navegador que no persista a disco, pero la RAM sigue conteniendo las URLs y las cookies — y el Memory Manager no sabe qué renderer es privado. Las pestañas Incognito aparecen sin duda en los pagefiles.
Relacionado
- Cómo funciona realmente el forense de pagefile.sys
- Encontrar credenciales en pagefile.sys — para bearer tokens, JWTs, contraseñas guardadas.
- pagefile.sys vs hiberfil.sys vs swapfile.sys — las trazas de Edge UWP a veces caen en
swapfile.sysen su lugar.