Registry Parser
Tous les articles

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

8 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
sam_groupsSAMComptes

Le plugin Shimcache gère les variantes du format moderne. samparse décode les structures F et V par RID — drapeaux de compte, horodatages de dernière connexion / mot de passe défini / dernier échec, compteurs de connexions et d'échecs, nom complet et commentaire — et sam_groups décode les structures C des alias Builtin pour résoudre l'appartenance aux groupes locaux. Les deux exposent des métadonnées de compte ; aucun ne déchiffre les empreintes de mots de passe (cela nécessite le SYSKEY de SYSTEM et sort du périmètre ici). 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, RecentApps (historique de lancement Recherche/Démarrer de Windows), les MRU des boîtes Ouvrir/Enregistrer ComDlg32 (comdlg32 — fichiers ouverts / enregistrés par extension et dernier dossier parcouru par application), et l'inventaire de fichiers Amcache. RecentDocs porte désormais l'ordre MRU et l'heure d'écriture de la clé qui date l'entrée la plus récente de chaque clé.

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, le SID machine et de domaine principal LSA (polacdms), la stratégie d'audit héritée (auditpol), plus le fan-out par ruche pour que chaque NTUSER.DAT/UsrClass.dat chargée soit analysée séparément.

Cette phase ajoute aussi les artefacts de contexte appareil/identité : appareils Bluetooth appairés (bthport, avec heures de dernière détection/connexion), imprimantes installées (printers), identifiant client Windows Update et heures de dernier détecter/installer (susclient), état de désactivation de la Restauration système (disablesr), entrées de traçage RAS/WinINet qui signalent les binaires capables de réseau (tracing), historique de stratégie de groupe appliquée (gpohist), heures de dernier accès des jump lists par application (jumplistdata), et comptes OneDrive configurés (onedrive).

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 : ~143 plugins sur NTUSER, SOFTWARE, SYSTEM, SAM, SECURITY, USRCLASS, AMCACHE.

Phase 5 (présente) : la longue traîne

Les artefacts de contexte applicatif et hôte qui complètent le triage. AppCertDLLs (appcertdlls — un mécanisme d'injection au moment de CreateProcess), services et pilotes du mode sans échec (safeboot — survit à une remédiation en safe-boot), fabricant/modèle OEM (oeminfo), produits installés via MSI (installed_products), distributions Linux WSL (wsl), fond d'écran du bureau (wallpaper — indicateur de note de rançon), composants logiciels MMC récents (mmc), historique des chemins 7-Zip (sevenzip), sessions WinSCP enregistrées (winscp — preuve d'accès distant / mouvement latéral), et fichiers récents Adobe Reader (adoberdr). Le décodeur Shimcache lit désormais aussi le magasin binaire Windows 7 0xBADC0FEE, pas seulement les entrées à signature Win8/10.

Les artefacts de stratégie de sécurité complètent l'ensemble : associations de fichiers par défaut (fileexts — détournement UserChoice), moteurs de recherche du navigateur (searchscopes), exécutable de l'économiseur d'écran (screensaver — vecteur de persistance à l'ouverture de session), AppLocker (applocker) et stratégies de restriction logicielle (srp_codeid), serveurs VNC installés (vnc), stratégie de jeton UAC distant (remote_uacLocalAccountTokenFilterPolicy, facilitateur de pass-the-hash), et renforcement de l'ordre de recherche des DLL (dllsearch). Pour compléter les vecteurs de persistance par chargement de DLL au démarrage : paquets LSA (lsa_packages — DLL d'authentification/notification/sécurité, dont la persistance par filtre de mot de passe), moniteurs de ports d'impression (print_monitors), fournisseurs W32Time (time_providers), et DLL d'assistance netsh (netsh_helpers). Chaque artefact horodaté alimente aussi une chronologie fusionnée exportable en CSV, au format TLN (délimité par des barres verticales) et en bodyfile TSK/mactime pour la chaîne d'outils log2timeline standard.

Phase 6+ (prévue)

La stratégie d'audit granulaire (sous-catégories) sur Vista+ (qui réside dans LSA/audit.csv plutôt que dans une valeur de ruche décodable), 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.