| Fichier | History (SQLite 3) |
| SHA-256 | eba54746bb0e640402bc449b8b70743e57c07640368bb26b8f31a3830642f27e |
| Forme | urls / visits / downloads type Chrome |
| Contexte | Profil de NORTHSEA-DEV (alex) |
Le .zip contient la base, un README disclaimer et le logo Synapse. Tout est synthétique (.example / .invalid). Analyse en VM isolée.
Les navigateurs stockent historique, téléchargements et cookies dans des fichiers SQLite. Quand un utilisateur efface une entrée, la ligne est déliée mais, sauf si secure_delete est actif ou qu'un VACUUM tourne, les octets bruts restent dans l'espace libre. C'est un cadeau pour l'analyste.
Vous recevez la base History du profil du suspect. Lisez le live, puis récupérez ce qui a été supprimé.
⚠️ Disclaimer : base 'History' type Chrome entièrement synthétique. Toutes les URLs, titres et dates sont fictifs (.example / .invalid). Aucune personne ni navigation réelle.
Travaillez sur une copie. Confirmez que c'est du SQLite, puis listez les tables. Chrome utilise urls, visits et downloads.
file History sqlite3 History '.tables' sqlite3 History '.schema urls'
History: SQLite 3.x database urls visits downloads CREATE TABLE urls(id INTEGER PRIMARY KEY, url, title, visit_count, typed_count, last_visit_time, hidden);
💡 last_visit_time n'est pas une date normale : Chrome compte les microsecondes depuis le 1601-01-01 (epoch WebKit). Vous la convertissez à l'étape suivante.
Listez les URLs avec une date lisible en convertissant l'epoch WebKit, et regardez les téléchargements.
sqlite3 History "SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch') t, url, title FROM urls ORDER BY last_visit_time;" sqlite3 History "SELECT target_path, tab_url FROM downloads;"
2026-06-16 08:38 https://stackoverflow.example/q/12345 reflective assembly load powershell 2026-06-16 08:39 https://duckduckgo.example/?q=how+to+clear+bash+history how to clear bash history ... C:\Users\alex\Downloads\orion-export.zip https://file-share.example/u/8f2c1a9d
🔍 Le comportement raconte déjà quelque chose : recherches reflective assembly load powershell et how to clear bash history, plus un téléchargement d'orion-export.zip via un site de partage. Mais l'historique live s'arrête à 08:39, et l'incident (lab #07) a démarré à 08:41. Il manque quelque chose.
Les tables live et même sqlite3 .recover ratent les lignes libérées vers la free list. Carvez le fichier brut à la place.
# .recover rate les lignes de la free list, on carve les octets strings History | grep -Ei 'verify|captcha|invalid' xxd History | grep -i verify
http://verify-cdn.example.invalid/captcha?ray=8f2c1a9d Verify you are human - Cloud CDN
🔴 Récupéré dans l'espace libre : une visite à verify-cdn.example.invalid/captcha titrée Verify you are human. C'est la page leurre ClickFix, et l'utilisateur l'a supprimée pour couvrir ses traces (MITRE T1070).
La cellule supprimée porte encore son visit_time. Décodé, il tombe à 2026-06-16 08:40, une minute avant le PowerShell collé du lab #07.
# le visit_time récupéré (WebKit) décode en : # 2026-06-16 08:40:00 UTC # exécution RunMRU du lab #07 : 2026-06-16 08:41 UTC
08:39 recherche: how to clear bash history 08:40 visite: verify-cdn.example.invalid/captcha <- SUPPRIME, recupere 08:41 exec: powershell -enc ... (lab #07)
✅ L'entrée récupérée est le chaînon manquant : l'utilisateur a atteint la fausse CAPTCHA, exécuté la commande ClickFix, puis effacé cette ligne d'historique. La base du navigateur l'a conservée quand même.
History-wal, History-journal) : ils contiennent des changements récents et non committés jamais écrits dans le fichier principal.PRAGMA secure_delete=ON ou un VACUUM ; sinon le carving de la free list (undark, bring2lite, outils de récupération SQLite) fonctionne.| Type | Valeur | ATT&CK |
|---|---|---|
| Artefact supprimé | verify-cdn.example.invalid/captcha (leurre ClickFix) | T1070 |
| Recherche d'intention | reflective assembly load powershell | T1204 |
| Recherche anti-forensic | how to clear bash history | T1070 |
| Téléchargement | orion-export.zip via file-share.example | T1567 |
| Source de récupération | espace libre SQLite (pas de VACUUM / secure_delete) | T1005 |
Effacement d'historique et d'artefacts pour cacher l'activité.
Pages, cellules et free list, la base de la récupération d'enregistrements supprimés.
Récupérer les enregistrements supprimés depuis WAL, journal et pages libres.
Un outil qui carve les lignes supprimées de la free list.
Environnement entièrement fictif, à usage éducatif uniquement. Toutes les URLs et titres sont synthétiques.
A Belgium-based provider of cybersecurity solutions, and the team behind SynapseRM / TPRM.