Aller au contenu

Analyse d'Artefact : UserAssist et MUIcache

1. UserAssist : le compteur d’exécution de l’interface graphique

Section intitulée « 1. UserAssist : le compteur d’exécution de l’interface graphique »

L’objectif principal de la clé de registre UserAssist est de peupler la liste des programmes “les plus fréquemment utilisés” dans le menu Démarrer de Windows. Pour y parvenir, le processus explorer.exe suit chaque exécutable ou fichier LNK lancé directement via l’interface graphique (ex: double-clic sur une icône).

  • Ruche : NTUSER.DAT (Profil utilisateur)
  • Chemin de la clé : Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count

Fait intéressant, Microsoft offusque les chemins des exécutables au sein de cette clé en utilisant ROT13, un simple chiffrement par substitution de lettres. Bien qu’il ne s’agisse pas d’une véritable barrière de sécurité, cela empêche les simples recherches de chaînes de caractères de révéler immédiatement le contenu, nécessitant des outils de parsing dédiés.

Le parsing de la clé UserAssist livre des métadonnées forensiques critiques :

  1. Chemin de l’exécutable / LNK : le nom et l’emplacement exacts du programme lancé.
  2. Compteur d’exécutions (Run Count) : le nombre total de fois que l’utilisateur a exécuté ce programme spécifique.
  3. Heure de la dernière exécution : un horodatage très précis du lancement le plus récent.
  4. Temps de focus / Compteur de focus : des métriques indiquant combien de temps la fenêtre de l’application est restée active au premier plan, prouvant une interaction humaine active.

Le MUIcache répond à un objectif opérationnel complètement différent. Windows utilise ce cache pour stocker les “Noms amicaux” (Friendly Names) des applications — extraits des métadonnées de l’en-tête PE — afin de les afficher rapidement dans les éléments d’interface, comme la boîte de dialogue “Ouvrir avec…”.

  • Ruche : NTUSER.DAT
  • Chemin de la clé : Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Le MUIcache est peuplé lorsque le shell Windows inspecte un exécutable. Cela peut se produire lors de l’exécution, mais cela peut également être déclenché simplement si un utilisateur fait un clic droit sur le fichier ou consulte ses propriétés. Par conséquent, le MUIcache prouve l’existence du fichier et la connaissance qu’en a le shell, mais il ne prouve pas définitivement son exécution.

CaractéristiqueUserAssistMUIcache
Preuve d’exécutionForte (prouve le lancement GUI)Faible (prouve l’inspection par le shell)
Horodatage disponibleOui (heure de dernière exécution)Non
Compteur d’exécutionsOuiNon
OffuscationROT13En clair

En réponse aux incidents, UserAssist est l’outil ultime pour attribuer une action à une intention humaine et démonter les défenses de type “je ne l’ai pas lancé”.

  1. Confirmation de l’interaction de l’attaquant : si un binaire suspect (ex: mimikatz.exe) ou un outil de piratage portable est trouvé dans la clé UserAssist d’un utilisateur spécifique, cela confirme que l’outil a été lancé de manière interactive au sein de la session graphique de cet utilisateur.
  2. Analyse du compteur d’exécutions : la métrique du compteur de lancements est inestimable. Un compteur à “1” pour un dropper malveillant pourrait indiquer le faux pas initial du patient zéro. Un compteur élevé pour un outil d’administration générique pourrait indiquer une préparation routinière au mouvement latéral.
  3. Traque des exécutables portables : UserAssist et MUIcache excellent tous deux à conserver les preuves d’applications portables exécutées depuis des clés USB ou des dossiers temporaires, longtemps après que le support ait été déconnecté ou les fichiers supprimés.
  4. Corrélation croisée d’artefacts : associer UserAssist aux Jumplists pour déterminer non seulement quel programme a été exécuté, mais quels fichiers ont été ouverts par ce programme durant la session.

En raison de l’encodage ROT13 d’UserAssist et de la structure binaire des ruches de registre, l’analyse manuelle via regedit est inefficace et sujette aux erreurs.

UserAssistParser / MUIcacheParser

Développés par Eric Zimmerman, ces utilitaires en ligne de commande ciblés parsent les ruches NTUSER.DAT hors ligne, décodent automatiquement les chaînes ROT13 et génèrent des fichiers CSV triés chronologiquement.

RegRipper

Utiliser les plugins userassist_tln et muicache au sein de RegRipper pour extraire et formater ces clés spécifiques lors d’un triage complet du registre.