Comment acquérir une ruche SYSTEM Windows pour l'analyse ShimCache hors ligne

4 min de lecture

TL;DR. Vous ne pouvez pas simplement copy C:\Windows\System32\config\SYSTEM pendant que Windows tourne — le fichier est verrouillé. Utilisez FTK Imager, KAPE, robocopy /B, un snapshot VSS ou Velociraptor pour obtenir une copie forensique sur un hôte en marche, ou lisez le fichier directement depuis un disque hors ligne monté. Quelle que soit la méthode, récupérez aussi SYSTEM.LOG1 et SYSTEM.LOG2 — sans eux, les écritures récentes manquent.

Pourquoi vous ne pouvez pas simplement le copier

Le noyau Windows maintient la ruche SYSTEM ouverte en accès exclusif tant que l'OS tourne. Un copy ou cp classique renvoie Le processus ne peut accéder au fichier car il est utilisé par un autre processus. Pire, même si vous contournez le verrou et lisez les octets, l'OS en marche garde les écritures registre récentes en mémoire jusqu'au prochain arrêt propre — y compris les entrées ShimCache les plus utiles.

Votre objectif est donc l'un des trois suivants :

  1. Contourner le verrou proprement sur l'hôte en marche (NTFS brut / VSS / copie forensique).
  2. Lire le fichier directement depuis une image disque hors ligne montée ou une VM mise en pause.
  3. Récupérer la copie en mémoire depuis une image mémoire (la seule façon d'obtenir les entrées jamais écrites sur disque).

Méthode 1 — dead box / disque hors ligne monté

Si vous pouvez éteindre la machine ou monter son disque en lecture seule, c'est le chemin le plus simple :

<LettreDeLecteur>:\Windows\System32\config\SYSTEM
<LettreDeLecteur>:\Windows\System32\config\SYSTEM.LOG1
<LettreDeLecteur>:\Windows\System32\config\SYSTEM.LOG2

Copiez les trois. Les fichiers .LOG1 / .LOG2 sont les journaux de transaction ; un parser robuste les rejoue avant de lire la ruche principale, vous ne ratez donc pas d'écritures non encore fusionnées.

Méthode 2 — système en marche : copie forensique

Sur un hôte en marche, plusieurs outils peuvent lire les fichiers verrouillés au niveau volume :

  • FTK Imager — GUI, gratuit. « Obtain Protected Files » → « Custom » → sélectionnez SYSTEM, SYSTEM.LOG1, SYSTEM.LOG2. Sortie sur un disque externe.
  • KAPE — en ligne de commande, scriptable. La cible RegistryHives extrait toutes les ruches pertinentes + journaux :
    kape.exe --tsource C: --target RegistryHives --tdest C:\out
    
  • robocopy avec /B/B ouvre les fichiers en mode backup, contournant le verrou utilisateur (il faut toujours admin et SeBackupPrivilege). Option rapide et sale quand aucun outil DFIR n'est disponible :
    robocopy C:\Windows\System32\config C:\out SYSTEM SYSTEM.LOG1 SYSTEM.LOG2 /B
    
  • Snapshot VSSvssadmin create shadow produit un cliché à un instant donné que vous pouvez lire. Utile quand il faut une vue cohérente et que vous ne pouvez pas arrêter le système.

Méthode 3 — image mémoire (meilleur pour les entrées récentes)

La ruche SYSTEM sur disque ne contient que les entrées persistées au dernier arrêt propre. Pour un hôte qui n'a pas été proprement redémarré depuis l'incident, les entrées les plus récentes sont en mémoire et nulle part ailleurs.

Capturez une image mémoire (WinPmem, Magnet RAM Capture, AVML), puis extrayez la ruche SYSTEM — ou extrayez le ShimCache directement — avec Volatility :

# Extraire la ruche du registre
vol -f memory.raw windows.registry.hivelist
vol -f memory.raw windows.registry.hivedump --offset <addr>

# Ou lire le ShimCache directement depuis la mémoire
vol -f memory.raw windows.shimcachemem

Extraire le ShimCache depuis un dump mémoire couvre cela en détail.

Méthode 4 — triage à grande échelle (Velociraptor)

Pour la collecte à l'échelle d'un parc, Velociraptor lit la ruche verrouillée via accès NTFS direct et la renvoie pour analyse hors ligne. Utilisez la famille d'artefacts Windows.Forensics.AppCompat ou Windows.Registry.NTUser, ou collectez simplement le fichier de ruche avec Generic.Forensic.LocalHashes plus l'option accessor: ntfs.

Ne sautez pas les journaux de transaction

C'est l'erreur la plus fréquente : copier SYSTEM sans SYSTEM.LOG1 et SYSTEM.LOG2. Les écritures en attente vivent dans les journaux jusqu'au prochain checkpoint, et ce delta peut inclure les entrées qui vous intéressent le plus. Les parsers robustes (AppCompatCacheParser d'Eric Zimmerman, ShimCacheParser, cet outil) rejouent les journaux avant de lire la ruche — mais seulement si vous les fournissez.

Ensuite, analyser

Déposez la ruche SYSTEM dans le Shimcache Parser — il tourne entièrement dans votre navigateur, sans upload, et gère toutes les versions de Windows de XP à Windows 11. Pour les détails du format, voir la référence du format binaire Windows 10 / 11.

Pour aller plus loin

Articles connexes