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 :
- Contourner le verrou proprement sur l'hôte en marche (NTFS brut / VSS / copie forensique).
- Lire le fichier directement depuis une image disque hors ligne montée ou une VM mise en pause.
- 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
RegistryHivesextrait toutes les ruches pertinentes + journaux :kape.exe --tsource C: --target RegistryHives --tdest C:\out - robocopy avec
/B—/Bouvre 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 VSS —
vssadmin create shadowproduit 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
- Microsoft Learn — Registry hives — référence officielle sur les ruches et journaux de transaction.
- KAPE d'Eric Zimmerman —
TargetsetModulespour acquisition systématique. - Velociraptor
Windows.Registry.AppCompatCache— collecte en mémoire en direct. - Documentation Volatility 3 — extraction de ruche côté mémoire.