🔍 Contexte

PubliĂ© sur GitHub (xaitax/TotalRecall), cet article prĂ©sente TotalRecall Reloaded, un outil offensif ciblant la fonctionnalitĂ© Windows Recall de Microsoft. Il s’agit d’une analyse technique dĂ©taillĂ©e accompagnĂ©e d’un outil fonctionnel dĂ©montrant plusieurs failles architecturales dans la conception de sĂ©curitĂ© de Recall.

đŸ—ïž Architecture et vulnĂ©rabilitĂ© fondamentale

Microsoft a sĂ©curisĂ© Windows Recall avec VBS enclaves, chiffrement AES-256-GCM, authentification Windows Hello et un hĂŽte Protected Process Light (PPL). Cependant, le processus de rendu AIXHost.exe ne bĂ©nĂ©ficie d’aucune de ces protections (pas de PPL, pas d’AppContainer, pas d’enforcement d’intĂ©gritĂ© de code). Tout processus s’exĂ©cutant en tant qu’utilisateur connectĂ© peut y injecter du code et appeler les mĂȘmes API COM que l’interface lĂ©gitime.

⚙ MĂ©canisme d’injection

L’outil se compose de deux fichiers :

  • totalrecall.exe : l’injecteur
  • totalrecall_payload.dll : la charge utile

L’injection utilise les API Windows classiques : CreateToolhelp32Snapshot, VirtualAllocEx, WriteProcessMemory, LoadLibraryW via CreateRemoteThread. Aucun privilĂšge administrateur ni SeDebugPrivilege n’est requis — le DACL Windows par dĂ©faut autorise un accĂšs complet entre processus du mĂȘme utilisateur (niveau d’intĂ©gritĂ© Medium).

🎭 Modes d’opĂ©ration

  • –launch : Simule Win+J via keybd_event, dĂ©clenche l’authentification Hello, extrait tout
  • –stealth : Mode entiĂšrement silencieux — patche DiscardDataAccess en no-op pour bloquer la rĂ©vocation du grant d’accĂšs, attend que l’utilisateur ouvre Recall naturellement, rĂ©-injecte automatiquement aprĂšs redĂ©marrage du processus
  • –wait : Attend que l’utilisateur ouvre Recall manuellement
  • –preauth : Extraction sans authentification (screenshot 4K + paramĂštres)
  • –search : Recherche dans le texte OCR extrait
  • –destroy : Suppression irrĂ©versible de tout l’historique Recall sans authentification

🔓 VulnĂ©rabilitĂ©s spĂ©cifiques identifiĂ©es

1. Bypass IResponse4 (contournement du contrĂŽle d’accĂšs) :

  • IResponse.get_Items() → 0x80005473 (ACCESS DENIED)
  • IResponse2.ItemsAfterIndex() → 0x80005473 (ACCESS DENIED)
  • IResponse4.get_UnfilledItems() → S_OK (toutes les entitĂ©s retournĂ©es sans vĂ©rification)

2. Bypass DiscardDataAccess : Patch du vtable COM proxy de IDataProtectionManager3::DiscardDataAccess (slot 8) via VirtualProtect + Ă©criture de pointeur. Bloque la rĂ©vocation du grant d’accĂšs quand l’utilisateur ferme Recall.

3. DeleteEvents sans authentification : IDataStoreManager::DeleteEvents() supprime tout l’historique sans Windows Hello. ConfirmĂ© par analyse Ghidra : aucun appel Ă  la fonction de vĂ©rification d’autorisation dans le handler.

4. Screenshot pré-auth en 4K : RecallPrivacyIndicatorSettings.GetRecentCaptureThumbnail(3840, 3840) retourne le dernier screenshot en pleine résolution sans authentification.

📊 RĂ©sultats d’extraction (exemples)

  • Mode –stealth : 384 entitĂ©s, 192 screenshots (328,8 MB), 184 textes OCR (535,2 KB), 384 mĂ©tadonnĂ©es CSV
  • Mode –launch : 212 entitĂ©s, 104 screenshots (184 MB) en 3 min 59 sec
  • Mode –preauth : Screenshot 4K (3840x2464, 36,1 MB) en 1 seconde

📋 Type d’article

Il s’agit d’une analyse technique et publication de recherche offensive accompagnĂ©e d’un outil fonctionnel open source, dont le but principal est de dĂ©montrer les limites architecturales de la sĂ©curitĂ© de Windows Recall malgrĂ© ses mĂ©canismes cryptographiques robustes.

🧠 TTPs et IOCs dĂ©tectĂ©s

TTP

  • T1055.001 — Process Injection: Dynamic-link Library Injection (Defense Evasion)
  • T1055 — Process Injection (Privilege Escalation)
  • T1113 — Screen Capture (Collection)
  • T1005 — Data from Local System (Collection)
  • T1056 — Input Capture (Collection)
  • T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
  • T1485 — Data Destruction (Impact)
  • T1106 — Native API (Execution)

IOC

  • Fichiers : totalrecall.exe
  • Fichiers : totalrecall_payload.dll
  • Fichiers : AIXHost.exe
  • Fichiers : Baker.dll
  • Chemins : C:\Users\<user>\AppData\Local\CoreAIPlatform.00\UKP\

Malware / Outils

  • TotalRecall Reloaded (tool)

🟡 Indice de vĂ©rification factuelle : 40/100 (moyenne)

  • ⬜ github.com — source non rĂ©fĂ©rencĂ©e (0pts)
  • ✅ 15000 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vĂ©rifiĂ© (0pts)
  • ✅ 8 TTPs MITRE identifiĂ©es (15pts)
  • ⬜ date RSS ou approximĂ©e (0pts)
  • ⬜ aucun acteur de menace nommĂ© (0pts)
  • ⬜ pas de CVE Ă  vĂ©rifier (0pts)

🔗 Source originale : https://github.com/xaitax/TotalRecall