đ 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
DiscardDataAccessen 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