Récupérer l'historique de navigation (URL, cookies, auto-remplissage) depuis pagefile.sys
20/05/2026 · 5 min de lecture
Les navigateurs sont les applications les plus bruyantes d'un système Windows. Ils ouvrent des milliers d'onglets au cours d'une session, déchiffrent du HTTPS en clair en mémoire, conservent des caches et des données d'auto-remplissage en permanence pendant leur exécution, et mettent à jour des bases SQLite en continu. Quand la pression mémoire arrive, quelque chose est paginé — et ce quelque chose, c'est très souvent des données de navigateur.
Ce que vous pouvez récupérer
Par ordre de fréquence approximatif dans un pagefile utilisateur typique :
- URL visitées — chaînes
https://…issues de la barre d'adresse, des cibles de clics et des en-têtes de requêtes HTTP. - Requêtes de recherche —
https://www.google.com/search?q=…,https://duckduckgo.com/?q=…, Bing, etc. La requête reste dans l'URL. - Soumissions de formulaires — les corps
application/x-www-form-urlencodedsurvivent souvent brièvement dans le tas du renderer. - Cookies — fragments d'en-têtes HTTP
Cookie:/Set-Cookie:. - Valeurs d'auto-remplissage — noms d'utilisateurs, adresses,
numéros de cartes bancaires, numéros de téléphone (Chrome / Edge les
conservent dans le SQLite
Web Data, déchiffrés en mémoire lors du remplissage d'un formulaire). - Fragments de bases SQLite — pages de
History,Cookies,Login Data,Web Data. - JWT et jetons de session dans les réponses XHR / fetch en cache.
Emplacement des fichiers navigateur
Carte rapide de l'emplacement des données navigateur sur disque (utile pour recouper ce que vous trouvez dans le pagefile) :
| Navigateur | Racine du profil |
|---|---|
| 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) | des traces atterrissent aussi dans swapfile.sys — voir la comparaison des fichiers de pagination |
Les fichiers SQLite intéressants dans chacun (famille Chromium) :
History—urls,visits,keyword_search_terms,downloads.Cookies— name, value, host, expiry, encrypted_value (DPAPI).Login Data— tablelogins(mots de passe enregistrés, chiffrés DPAPI).Web Data—autofill,autofill_profile_*, cartes bancaires (chiffrées DPAPI).
Quand l'un de ces fichiers est ouvert par le navigateur actif, ses pages vivent dans la mémoire du processus renderer — et la version déchiffrée des cookies, de l'auto-remplissage et des login data vit en mémoire au moment de leur usage. Les deux états peuvent finir paginés.
Ce que vous offre l'onglet Artifacts de cet outil
Déposez un pagefile dans le parser. L'onglet Artifacts extrait automatiquement :
- URL —
https?://[A-Za-z0-9\-._~:/?#\[\]@!$&'()*+,;=%]+sur toutes les chaînes extraites. Inclut les requêtes complètes vers les moteurs de recherche. - E-mails — fréquents dans l'auto-remplissage, les flux de récupération de compte, les pages de contact.
- IPv4 / IPv6 — utiles quand un paramètre de requête ou un X-Forwarded-For contenait une adresse.
L'onglet Page map marque les pages qui commencent par
SQLite format 3\0 — ce sont des pages de base SQLite, presque
certainement issues d'une des DB navigateur ci-dessus.
L'onglet Strings est où vous allez après les IOC :
- Filtrez sur
Cookie:pour voir les fragments de cookies HTTP. - Filtrez sur
Set-Cookie:pour trouver les cookies émis par le serveur (avec noms, domaines, chemins). - Filtrez sur
Authorization:pour repérer les jetons bearer dans les appels d'API. - Filtrez sur
user-agentpour pivoter vers des onglets / sessions spécifiques. - Filtrez sur
searchTerm,q=,query=pour les recherches spécifiques à un site.
Carving SQLite
Quand la page map signale SQLite format 3 (une page d'en-tête B-tree)
ou une page B-tree interne, vous avez un fragment d'une DB navigateur.
Les pages font 4 Ko par défaut (Chromium) ou 32 Ko (Firefox récent).
Pour extraire des enregistrements structurés d'une page SQLite carvée :
- Utilisez
sqlite_carvingoubring2lite— tous deux conçus pour le carving d'enregistrements SQLite depuis de la mémoire brute. - Ou ouvrez les octets dans
undark/sqlite-deleted-recordspour lire les lignes supprimées.
Ce qui est couramment extractible :
- Lignes URL + visit_time + title depuis
History.urls/History.visits. 90 derniers jours de navigation dans une seule page avec de la chance. - Lignes cookies name/host/path/value depuis
Cookies. - Lignes autofill key/value depuis
Web Data.autofill.
Firefox vs Chromium
Firefox stocke l'historique dans places.sqlite et les favoris dans la
même DB. Le schéma diffère mais l'approche de carving est identique —
cherchez juste les chaînes places.sqlite à proximité des pages
SQLite, et les noms de tables moz_places, moz_bookmarks,
moz_historyvisits.
Firefox stocke aussi les données de restauration de session dans des
fichiers JSON (sessionstore.jsonlz4) compressés LZ4 ; vous ne les
verrez pas comme des hits SQLite mais le contenu décompressé vit en
mémoire et peut paginer sous forme de JSON simple. Filtrez l'onglet
Strings sur "entries": et "lastAccessed":.
Edge IE-mode et restes d'Internet Explorer
Si le système a Edge en IE-mode (encore courant en entreprise), vous
verrez aussi des fragments de WebCacheV01.dat (la base ESE
d'IE10+). Les pages ESE commencent par leur propre en-tête (`page header
- tag array`) ; elles ne sont pas reprises par le catalogue de signatures actuel mais les chaînes qu'elles contiennent remonteront dans l'onglet Strings — noms d'hôtes, URL, horodatages.
Conseils opérationnels
- Capturez dès que possible. Chaque minute où le navigateur continue de tourner, des pages sont réécrites.
- Associez avec le profil actif. Les données carvées du pagefile sont plus utiles quand vous pouvez les differ contre le SQLite actif — tout ce qui est dans le pagefile et pas dans la DB active est soit récemment écrasé, soit une ligne supprimée, soit du trafic InPrivate / Incognito.
- Incognito / InPrivate ne protège pas du pagefile. Le mode dit au navigateur de ne pas persister sur disque, mais la RAM contient toujours les URL et cookies — et le gestionnaire de mémoire ignore quel renderer est en mode privé. Les onglets Incognito apparaissent absolument dans les pagefiles.
Liens connexes
- Comment fonctionne réellement la forensique de pagefile.sys
- Trouver des identifiants dans pagefile.sys — pour les jetons bearer, JWT, mots de passe enregistrés.
- pagefile.sys vs hiberfil.sys vs swapfile.sys — les traces UWP d'Edge atterrissent parfois dans
swapfile.sys.