Skip to content

Collecter le dépôt WMI pour l'analyse forensique

Où se trouve le dépôt WMI et comment copier OBJECTS.DATA, INDEX.BTR et les fichiers MAPPING : cliché instantané, cible WBEM de KAPE, Velociraptor ou image.

Publié le 4 min de lecture

En bref. Récupérez l'intégralité du dossier C:\Windows\System32\wbem\Repository (OBJECTS.DATA, INDEX.BTR, MAPPING1.MAP, MAPPING2.MAP, MAPPING3.MAP) au même instant. Sur un hôte actif, les fichiers sont verrouillés par le service WMI : lisez-les depuis un cliché instantané (shadow copy), avec KAPE (cible WBEM) ou avec Velociraptor. N'arrêtez jamais le service WMI pour les copier.

Où se trouvent les fichiers

Version de WindowsDossier
Vista, 7, 8, 10, 11, Server 2008 et versions ultérieuresC:\Windows\System32\wbem\Repository\
XP, Server 2003C:\WINDOWS\system32\wbem\Repository\FS\
Après une mise à niveau sur placeégalement C:\Windows.old\Windows\System32\wbem\Repository\

OBJECTS.DATA suffit à lui seul pour extraire les abonnements par carving. INDEX.BTR et les fichiers MAPPING ajoutent les espaces de noms et distinguent les objets actifs des objets supprimés : collectez donc l'ensemble.

Avant de commencer

  • N'arrêtez pas Winmgmt et n'exécutez ni winmgmt /salvagerepository ni /resetrepository avant la collecte : ces commandes réécrivent le dépôt et peuvent détruire les enregistrements supprimés que vous recherchez.
  • Gardez les fichiers ensemble. Un INDEX.BTR ou un fichier MAPPING issu d'un autre moment pointe vers les mauvaises pages. La vue structurée ne fonctionne plus ; le carving fonctionne toujours.
  • Collectez tôt. Les abonnements supprimés ne survivent que jusqu'à ce que WMI réutilise leurs pages ; les installations de logiciels et les mises à jour écrivent dans le dépôt.

Étape 1 : Ouvrir un PowerShell élevé

Sur l'hôte, lancez Windows PowerShell avec Exécuter en tant qu'administrateur. Un simple copy d'OBJECTS.DATA échoue avec une violation de partage tant que le service WMI fonctionne.

Étape 2 : Créer un cliché instantané et le lier

Dans la même fenêtre, créez un cliché de C: et exposez-le sous forme de dossier. Le cliché fige tous les fichiers du dépôt au même instant :

New-Item -ItemType Directory -Force -Path C:\triage | Out-Null
$sc = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' }
$vss = Get-CimInstance -ClassName Win32_ShadowCopy -Filter "ID='$($sc.ShadowID)'"
cmd /c mklink /d C:\triage\vss "$($vss.DeviceObject)\"

Étape 3 : Copier le dossier Repository

robocopy /B copie en mode sauvegarde, si bien qu'aucun fichier n'est ignoré :

robocopy C:\triage\vss\Windows\System32\wbem\Repository C:\triage\Repository /E /B /R:0 /W:0 /NP /NDL

Étape 4 : Supprimer le lien et le cliché

cmd /c rmdir C:\triage\vss
$vss | Remove-CimInstance

Vous disposez maintenant de C:\triage\Repository. Calculez son empreinte, et empaquetez-le si vous l'analysez ailleurs (tar.exe est fourni avec Windows 10 1803 et versions ultérieures) :

tar -a -c -f C:\triage\wmi-repository.zip -C C:\triage Repository

Ces quatre étapes sont disponibles sous la forme d'un unique bloc à copier-coller dans la section Comment obtenir vos données de la page d'accueil de WMI Parser.

Avec un outil de triage

KAPE dispose d'une cible WBEM qui copie les deux dossiers Repository (courant et Windows.old) avec un accès brut au disque. Elle est incluse dans les cibles composées KapeTriage et !SANS_Triage, si bien qu'une collecte de triage existante la contient peut-être déjà :

kape.exe --tsource C: --tdest C:\triage\kape --target WBEM

Velociraptor : collectez Windows.Triage.Targets (projet Velociraptor Triage) avec la cible WBEM depuis l'interface graphique, une chasse (hunt) ou un collecteur hors ligne. En ligne de commande, l'artefact intégré Windows.Search.FileFinder peut téléverser le dossier :

velociraptor.exe artifacts collect Windows.Search.FileFinder --args SearchFilesGlob=C:\Windows\System32\wbem\Repository\* --args Upload_File=Y --output C:\triage\wmi.zip

Les deux résultats peuvent être déposés tels quels dans WMI Parser : il trouve le dépôt à l'intérieur du dossier ou du ZIP, y compris avec les chemins encodés en pourcentage de Velociraptor.

Depuis une image disque

Montez l'image en lecture seule (par exemple avec Arsenal Image Mounter en tant que E:) et copiez le dossier :

robocopy E:\Windows\System32\wbem\Repository C:\triage\Repository /E /R:0 /W:0 /NP /NDL

Sous Linux ou macOS, avec l'image montée sur /mnt/win :

mkdir -p ~/triage && cp -a /mnt/win/Windows/System32/wbem/Repository ~/triage/

Dans FTK Imager, naviguez jusqu'à Windows\System32\wbem, faites un clic droit sur Repository, puis Export Files. Examinez aussi les clichés instantanés de l'image : un dépôt plus ancien peut encore contenir un abonnement supprimé depuis.

Un aperçu rapide sur l'hôte actif (pas un substitut)

Pour voir ce qui est actif à cet instant, interrogez WMI lui-même :

'__EventFilter','__EventConsumer','__FilterToConsumerBinding' | ForEach-Object { Get-CimInstance -Namespace root/subscription -ClassName $_ } | Format-List *

Cette commande n'affiche que les objets actifs d'un seul espace de noms, jamais les objets supprimés, et elle fait confiance au service WMI d'un hôte potentiellement compromis. Utilisez-la pour le triage, puis analysez les fichiers collectés. La checklist d'investigation liste les points à vérifier ensuite.

Articles liés

Articles liés

Lire CCM_RecentlyUsedApps dans le dépôt WMI : quels programmes chaque utilisateur a lancés, quand et combien de fois, y compris les anciennes copies d'OBJECTS.DATA.
Checklist pas à pas face à une persistance WMI : requêtes en direct, dépôt, événements 5860 et 5861, Sysmon 19-21, traces d'exécution et nettoyage sûr.
Les deux abonnements WMI livrés avec Windows, SCM Event Log et BVTFilter/BVTConsumer : contenu attendu, innocuité et détournement de leurs noms.