Registry Parser
Tous les articles

Parité RegRipper : quels sont les 91 plugins disponibles et ce qui manque

5 min de lecture

La version honnête : RegRipper est la base open-source pour le triage du Registre Windows depuis 2009. Tout ce qui s'appelle "analyseur de registre" est mesuré par rapport à lui. La liste de plugins ci-dessous est ce que ce site implémente aujourd'hui. Ce n'est pas une promesse marketing ; c'est le catalogue de travail que le worker exécute réellement.

Je garde cette page précise parce que cela compte aux personnes qui utilisent l'outil en réponse à incident. Si un plugin est sur la page, il produit une sortie sur la ruche correspondante. Si un plugin est dans "prévu", ne comptez pas dessus tout de suite.

Le choix d'architecture qui permet à ce catalogue de grandir

Chaque artefact est un plugin autonome sous lib/plugins/impl/. En ajouter un est un fichier plus une entrée de registre ; pas de changement architectural, pas de reconstruction du moteur. Cela reprend délibérément le modèle de plugins Perl de RegRipper. Le compromis est le même qu'Harlan Carvey a fait dans RegRipper : chaque plugin est petit et évident, le catalogue entier est énorme.

Le contrat plugin est intentionnellement étroit. Un plugin reçoit une session de ruche, interroge les clés qui l'intéressent, et émet des lignes structurées. Pas d'accès DOM, pas de couplage entre plugins. L'explorateur affiche les lignes retournées.

Phase 1 (présente)

L'ensemble fondateur. Si vous ne lanciez que ceux-ci sur un triage SOC, vous attraperiez encore l'essentiel de ce que demande le bas de gamme de la réponse à incident.

PluginRucheCatégorie
ntuser_run / ntuser_runonceNTUSERPersistance
typedurlsNTUSERActivité utilisateur
wordwheelqueryNTUSERActivité utilisateur
recentdocsNTUSERActivité utilisateur
userassistNTUSERExécution
winverSOFTWARESystème
installed_softwareSOFTWARELogiciel
profilelistSOFTWAREComptes
networklistSOFTWARERéseau
software_runSOFTWAREPersistance
lastloggedonSOFTWAREComptes
compnameSYSTEMSystème
timezoneSYSTEMSystème
servicesSYSTEMPersistance
usbstorSYSTEMUSB
mounted_devicesSYSTEMUSB
bamSYSTEMExécution
shimcacheSYSTEMExécution
samparseSAMComptes

Le plugin Shimcache gère les variantes du format moderne ; samparse déchiffre les structures d'identifiants locales en utilisant le SYSKEY de SYSTEM. bam (Background Activity Monitor) est le plus sous-estimé de cette liste : il fait remonter chaque programme qui a tourné la semaine passée avec des horodatages par session.

Phase 2 (présente)

Les plugins de suivi qui attrapent les schémas de persistance manqués par la Phase 1, plus les artefacts d'activité utilisateur et réseau plus profonds.

RunMRU, TypedPaths, MountPoints2, historique client RDP, sessions PuTTY, paramètres d'affichage Explorer, Winlogon, Image File Execution Options, App Paths, Policies Run, exclusions Defender, interfaces TCP/IP, partages SMB, périphériques USB, heure du dernier arrêt, sélection du control set, netsh portproxy, et l'inventaire de fichiers Amcache.

Le plugin IFEO est celui que j'utilise le plus souvent dans ce lot : il signale chaque valeur Debugger, là où vit le classique backdoor sticky-keys. Les exclusions Defender en deuxième : une liste d'exclusions Defender qui mentionne \Users\Public\ est presque toujours soit mauvaise configuration soit persistance.

Phase 3 (présente)

AutoRun de cmd.exe, User Shell Folders, historique de lecteurs mappés, usage Sysinternals, LastKey Regedit, paramètres IE, Active Setup, Browser Helper Objects, Notify Winlogon, AppInit_DLLs, tâches planifiées (TaskCache), groupes Svchost, RunOnce machine, Run WOW6432, cartes réseau, politique d'exécution PowerShell, ShellServiceObjectDelayLoad, BootExecute, KnownDLLs, Terminal Services/RDP, profils de pare-feu, paramètres TCP/IP, paramètres NTFS, configuration Prefetch, volumes WPD/USB, et l'inventaire d'applications Amcache.

Le plugin TaskCache est celui à connaître ici. Les tâches planifiées sont stockées à deux endroits : en XML sous C:\Windows\System32\Tasks\ et en données registre sous HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\. Les attaquants qui manipulent l'un oublient parfois l'autre. Comparer les deux moitiés attrape l'astuce.

Phase 4 (présente)

ShellBags (décodage heuristique ITEMIDLIST, NTUSER + UsrClass), MUICache, extensions shell approuvées, état StartupApproved, politiques UAC, statut Defender, WDigest, fournisseurs de sécurité, routes persistantes, sécurité RDP/NLA, plus le fan-out par ruche pour que chaque NTUSER.DAT/UsrClass.dat chargée soit analysée séparément.

ShellBags est le plugin le plus complexe du catalogue. Le décodeur heuristique gère les schémas ITEMIDLIST courants y compris les bags de média amovibles ; il ne gère pas chaque cas limite que le format réserve. Pour des bags exotiques, vous voudrez peut-être encore recouper avec ShellBagsExplorer d'Eric Zimmerman.

Le plugin WDigest est petit mais compte : si UseLogonCredential=1 est défini sous HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest\, l'hôte a été configuré pour mettre en cache des identifiants en clair dans lsass.exe. C'est un facilitateur de vol d'identifiants, point.

Total aujourd'hui : ~91 plugins sur NTUSER, SOFTWARE, SYSTEM, SAM, SECURITY, USRCLASS, AMCACHE.

Phase 5+ (prévue)

Les variantes du magasin binaire AppCompatCache au-delà de l'heuristique actuelle, les MRU PIDL OpenSave/LastVisited, les clés d'index Windows Search, et la longue traîne de l'ensemble de plus de 200 plugins RegRipper. Le compte de 200+ inclut beaucoup de plugins très spécifiques à la version (clés Office 2007, versions IE/Edge précises, services disparus) que j'ai triés en "à livrer plus tard" plutôt qu'ignorer.

Si vous avez une ruche dans la nature qui produit une sortie dans RegRipper mais pas ici, c'est le rapport de bug que je veux voir. Ouvrez une issue avec un échantillon de ruche assaini et la sortie RegRipper, et le plugin manquant remonte la file.

Pour aller plus loin

  • Harlan Carvey, RegRipper : l'implémentation canonique et la meilleure référence vivante pour ce que fait chaque plugin.
  • Andrea Fortuna, index des plugins RegRipper : la référence croisée non officielle que beaucoup de praticiens utilisent.
  • Maxim Suhanov, yarp : pour comprendre le format de ruche sous-jacent que les plugins interrogent.