Aller au contenu
← Retour au blog

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 :

  1. 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.
  2. Requêtes de recherchehttps://www.google.com/search?q=…, https://duckduckgo.com/?q=…, Bing, etc. La requête reste dans l'URL.
  3. Soumissions de formulaires — les corps application/x-www-form-urlencoded survivent souvent brièvement dans le tas du renderer.
  4. Cookies — fragments d'en-têtes HTTP Cookie: / Set-Cookie:.
  5. 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).
  6. Fragments de bases SQLite — pages de History, Cookies, Login Data, Web Data.
  7. 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) :

NavigateurRacine 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) :

  • Historyurls, visits, keyword_search_terms, downloads.
  • Cookies — name, value, host, expiry, encrypted_value (DPAPI).
  • Login Data — table logins (mots de passe enregistrés, chiffrés DPAPI).
  • Web Dataautofill, 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 :

  • URLhttps?://[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-agent pour 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 :

  1. Utilisez sqlite_carving ou bring2lite — tous deux conçus pour le carving d'enregistrements SQLite depuis de la mémoire brute.
  2. Ou ouvrez les octets dans undark / sqlite-deleted-records pour 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