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.
| Plugin | Ruche | Catégorie |
|---|---|---|
| ntuser_run / ntuser_runonce | NTUSER | Persistance |
| typedurls | NTUSER | Activité utilisateur |
| wordwheelquery | NTUSER | Activité utilisateur |
| recentdocs | NTUSER | Activité utilisateur |
| userassist | NTUSER | Exécution |
| winver | SOFTWARE | Système |
| installed_software | SOFTWARE | Logiciel |
| profilelist | SOFTWARE | Comptes |
| networklist | SOFTWARE | Réseau |
| software_run | SOFTWARE | Persistance |
| lastloggedon | SOFTWARE | Comptes |
| compname | SYSTEM | Système |
| timezone | SYSTEM | Système |
| services | SYSTEM | Persistance |
| usbstor | SYSTEM | USB |
| mounted_devices | SYSTEM | USB |
| bam | SYSTEM | Exécution |
| shimcache | SYSTEM | Exécution |
| samparse | SAM | Comptes |
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.