Exécution
UserAssist
Fiche UserAssist : clés GUID de NTUSER.DAT, noms en ROT13, nombre d'exécutions, temps au premier plan et dernière exécution des programmes lancés.
- Emplacement
- NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
- Prouve
- Un utilisateur a lancé un programme ou raccourci via l'Explorateur, combien de fois, quand
- Horodatages
- Dernière exécution par entrée et LastWrite de la clé Count en FILETIME, UTC ; noms de valeurs encodés en ROT13
- Rétention
- Pas de petite limite fixe, s'accumule pendant la vie du profil ; s'arrête si Start_TrackProgs = 0 ; les nettoyeurs suppriment les clés Count
- Accès
- NTUSER.DAT par utilisateur, verrouillé tant que l'utilisateur est connecté : collecte en NTFS brut (KAPE) ou VSS ; reg export pour l'utilisateur courant
- Preuve de
- ExécutionActivité utilisateur
- Type
- Registre
- Windows
- XPVista / 78 / 8.11011
- Cible KAPE
- RegistryHivesUser
- Velociraptor
- Windows.Triage.Targets:RegistryHivesUser
Outils
Comparer tous les outilsPrésentation
UserAssist est un enregistrement de registre, propre à chaque utilisateur, que l'Explorateur tient sur les programmes et raccourcis lancés depuis l'interface graphique (menu Démarrer, bureau, barre des tâches, double-clic dans l'Explorateur). Windows s'en sert pour ses listes « les plus utilisés ». Pour l'enquêteur, c'est une preuve d'exécution attribuée à un utilisateur, avec un compteur et une date de dernière exécution, stockée dans son NTUSER.DAT.
Emplacement
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
| Version de Windows | GUID | Suit |
|---|---|---|
| 7 / 8 / 10 / 11 | {CEBFF5CD-ACE2-4F4F-9178-9926F41749EA} | Exécutables lancés |
| 7 / 8 / 10 / 11 | {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F} | Raccourcis (.lnk) lancés |
| XP / Vista | {75048700-EF1F-11D0-9888-006097DEACF9} | Programmes et raccourcis lancés |
| XP / Vista | {5E6AB780-7743-11CF-A12B-00AA004AE837} | Éléments de la barre d'outils d'Internet Explorer |
Les noms de valeurs sont encodés en ROT13. À partir de Windows 7, les dossiers connus contenus dans le nom sont remplacés par des GUID de dossiers connus, par exemple {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7} pour System32 et {6D809377-6AF0-444B-8957-A3773F02200E} pour Program Files sur les systèmes 64 bits.
Ce que l'artefact prouve
- L'utilisateur propriétaire du NTUSER.DAT a lancé le programme ou le raccourci via l'interface de l'Explorateur.
- Combien de fois et quand pour la dernière fois ; à partir de Windows 7, également combien de temps la fenêtre a eu le focus.
- Il ne capture pas les programmes démarrés depuis une invite de commandes, un script, un service ou une tâche planifiée : l'absence dans UserAssist ne signifie pas que le programme n'a jamais tourné.
Champs clés
Windows 7 et ultérieurs (données de 72 octets) :
| Champ | Signification |
|---|---|
| Nom de valeur (ROT13) | Chemin de l'exécutable, du raccourci ou AppUserModelID |
| Nombre d'exécutions (offset 4) | Nombre de lancements |
| Nombre de focus (offset 8) | Nombre de fois où la fenêtre a reçu le focus |
| Temps de focus (offset 12) | Durée totale au premier plan, en millisecondes |
| Dernière exécution (offset 60) | Date du dernier lancement, FILETIME |
Windows XP (données de 16 octets) : identifiant de session, compteur d'exécutions (qui démarre à 5 : retranchez 5), dernière exécution en FILETIME à l'offset 8.
Les valeurs spéciales comme UEME_CTLSESSION et UEME_CTLCUACount:ctor servent à la gestion interne : ce ne sont pas des programmes.
Horodatages
| Horodatage | Positionné quand | Format | Pièges |
|---|---|---|---|
| Dernière exécution (données) | L'utilisateur lance l'élément via l'Explorateur | FILETIME, UTC | Certaines entrées ont un compteur mais une date nulle ; les mises à jour de focus seules ne la modifient pas |
LastWrite de la clé Count | Mise à jour de n'importe quelle valeur UserAssist | FILETIME, UTC | Désigne la mise à jour la plus récente, toutes entrées confondues |
Rétention et effacement
- Pas de petite limite fixe : les entrées s'accumulent pendant toute la vie du profil.
- Le suivi s'arrête si l'utilisateur désactive « Autoriser Windows à suivre le lancement des applications » (valeur
Start_TrackProgs= 0 sous...\Explorer\Advanced), et les outils de nettoyage suppriment souvent les clésCount. - Les valeurs supprimées restent parfois récupérables dans l'espace non alloué de la ruche et dans les NTUSER.DAT des clichés instantanés.
Collecte
- Cible KAPE :
RegistryHivesUser(NTUSER.DAT et UsrClass.dat avec leurs journaux) - Velociraptor (
Windows.Triage.Targets) :RegistryHivesUser;Windows.Registry.UserAssistle décode en direct. - Commandes natives (utilisateur courant uniquement ; la ruche d'un utilisateur connecté est verrouillée) :
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" E:\case\userassist.reg
Outils d'analyse
- Registry Explorer / RECmd (Eric Zimmerman) : décode le ROT13, les GUID de dossiers connus, les compteurs et les dates.
- RegRipper : plugin
userassist. - UserAssistView (NirSoft) : décodeur rapide pour le système en direct.
- Velociraptor :
Windows.Registry.UserAssist.
Conseils d'investigation
- Cherchez les outils d'administration et d'exfiltration lancés par double-clic (
rclone.exe,WinSCP.exe,mstsc.exe, archiveurs) et les raccourcis vers des scripts. - Un temps de focus élevé montre que l'utilisateur a réellement travaillé dans l'application, pas seulement qu'il l'a ouverte.
- Combinez avec BAM/DAM et le Prefetch pour les heures d'exécution, et avec les Jump Lists pour les fichiers ouverts dans le même programme.
mstsc.exedans UserAssist, plus les clés Terminal Server Client (connexions RDP), montre une connexion RDP sortante par cet utilisateur.- Décodez toujours une copie qui inclut les journaux de transactions : les lancements récents peuvent ne figurer que dans
.LOG1/.LOG2.
Artefacts liés
- BAM / DAM (Background Activity Moderator)Fiche BAM et DAM : clés de la ruche SYSTEM selon la version de Windows 10, SID par utilisateur, dernière exécution en FILETIME, rétention de sept jours.
- Fichiers Prefetch (.pf)Fiche Prefetch Windows : emplacement des .pf par version, nombre d'exécutions, huit dernières dates, fichiers référencés, rétention et analyse.
- Fichiers de raccourci LNKFiche LNK : raccourcis du dossier Recent, première et dernière ouverture, horodatages de la cible, numéro de série, partage réseau et adresse MAC.
- Jump ListsFiche Jump Lists : AutomaticDestinations et CustomDestinations, AppID, entrées DestList avec dernier accès, nombre d'accès, épinglage, et JLECmd.
- RunMRUFiche RunMRU : commandes saisies dans la boîte Exécuter (Win+R) dans NTUSER.DAT, ordre MRUList, sens du LastWrite et motifs LOLBin ou UNC à rechercher.
Termes du glossaire
- Preuve d'exécutionLes artefacts qui montrent qu'un programme s'est réellement exécuté sous Windows, et pas seulement qu'il était présent sur le disque.
- NTUSER.DATLa ruche du Registre propre à chaque utilisateur, stockée dans son profil et chargée comme HKEY_CURRENT_USER, riche en traces d'activité.
- FILETIMELe format d'horodatage Windows sur 64 bits qui compte les intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC.
- LastWrite d'une clé de RegistreL'unique FILETIME stocké dans chaque clé de Registre, qui indique en UTC la dernière modification de la clé ou de l'une de ses valeurs.