Le registre est un ensemble de fichiers de ruche (hive). Chaque artefact ci-dessous se trouve dans une ruche précise ; la première question d'une enquête est donc toujours « de quel fichier ai-je besoin ? ». Ouvrez les ruches extraites d'une image forensique avec l'analyse forensique du registre, qui décode la plupart de ces clés dans le navigateur.
Fichiers de ruche
| Ruche | Fichier sur disque | Montée comme | Contient |
|---|---|---|---|
| SYSTEM | C:\Windows\System32\config\SYSTEM |
HKLM\SYSTEM |
Services, périphériques, USB, fuseau horaire, nom de l'ordinateur |
| SOFTWARE | C:\Windows\System32\config\SOFTWARE |
HKLM\SOFTWARE |
Programmes installés, autoruns de la machine, profils réseau |
| SAM | C:\Windows\System32\config\SAM |
HKLM\SAM |
Comptes locaux, nombre d'ouvertures de session, dernière ouverture |
| SECURITY | C:\Windows\System32\config\SECURITY |
HKLM\SECURITY |
Stratégie de sécurité locale, secrets en cache |
| NTUSER.DAT | C:\Users\<utilisateur>\NTUSER.DAT |
HKCU |
Activité de l'utilisateur : listes MRU, UserAssist, autoruns de l'utilisateur |
| UsrClass.dat | C:\Users\<utilisateur>\AppData\Local\Microsoft\Windows\UsrClass.dat |
HKCU\Software\Classes |
ShellBags (Windows 7 et ultérieurs) |
| Amcache.hve | C:\Windows\AppCompat\Programs\Amcache.hve |
non montée | Inventaire d'exécution et d'installation des programmes |
Copiez aussi les journaux de transactions .LOG1 et .LOG2 à côté de chaque ruche : les modifications récentes peuvent n'être que dans ces fichiers.
Dans les chemins ci-dessous, CCS désigne le jeu de contrôle actif : lisez SYSTEM\Select\Current (par exemple 1) et utilisez SYSTEM\ControlSet001.
Autoruns et persistance
| Artefact | Ruche | Chemin de la clé |
|---|---|---|
| Run (à chaque ouverture de session) | SOFTWARE | Microsoft\Windows\CurrentVersion\Run |
| RunOnce | SOFTWARE | Microsoft\Windows\CurrentVersion\RunOnce |
| Run 32 bits sous Windows 64 bits | SOFTWARE | WOW6432Node\Microsoft\Windows\CurrentVersion\Run |
| Run de l'utilisateur | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Run |
| RunOnce de l'utilisateur | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\RunOnce |
| Shell et userinit de Winlogon | SOFTWARE | Microsoft\Windows NT\CurrentVersion\Winlogon (Shell, Userinit) |
| Image File Execution Options | SOFTWARE | Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<exe> (Debugger) |
| Services et pilotes | SYSTEM | CCS\Services\<nom> (ImagePath, Start, Parameters\ServiceDll) |
Une valeur Start de service égale à 2 signifie automatique, 3 manuel, 4 désactivé. Les nouveaux services génèrent aussi l'événement 7045, voir Aide-mémoire des ID d'événements Windows.
Exécution de programmes
| Artefact | Ruche | Chemin de la clé | Ce qu'il apporte |
|---|---|---|---|
| UserAssist | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count |
Programmes graphiques lancés, nombre d'exécutions, dernière exécution |
| BAM | SYSTEM | CCS\Services\bam\State\UserSettings\<SID> |
Dernière exécution par programme et par utilisateur (Windows 10 1809 et ultérieurs) |
| ShimCache (AppCompatCache) | SYSTEM | CCS\Control\Session Manager\AppCompatCache (valeur AppCompatCache) |
Programmes vus par la couche de compatibilité, avec la date de modification du fichier |
| Amcache | Amcache.hve | Root\InventoryApplicationFile |
Chemin, SHA-1 du fichier (FileId, préfixé par 0000) et données de première apparition |
| RunMRU | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU |
Commandes saisies dans la boîte Exécuter (Win+R) |
Les noms de valeur d'UserAssist sont encodés en ROT13 : {1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\pzq.rkr se décode en {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\cmd.exe, ce GUID étant l'identifiant de dossier connu de C:\Windows\System32. Décodez-en un à la main avec le chiffrement ROT13. Les deux GUID à connaître sont {CEBFF5CD-ACE2-4F4F-9178-9926F41749EA} (exécutables) et {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F} (raccourcis). La présence dans ShimCache ne prouve pas qu'un programme a été exécuté, seulement que Windows l'a vu.
Fichiers et dossiers ouverts
| Artefact | Ruche | Chemin de la clé |
|---|---|---|
| RecentDocs | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs (sous-clé par extension) |
| MRU des boîtes Ouvrir/Enregistrer | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU |
| Dernier dossier par programme | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU |
| Chemins saisis dans l'Explorateur | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths |
| Recherches dans l'Explorateur | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery |
| ShellBags | UsrClass.dat | Local Settings\Software\Microsoft\Windows\Shell\BagMRU et \Bags |
| URL saisies (Internet Explorer) | NTUSER.DAT | Software\Microsoft\Internet Explorer\TypedURLs |
Les clés MRU conservent leur ordre dans une valeur MRUListEx : une liste d'index de 4 octets petit-boutistes (little-endian), du plus récent au plus ancien, terminée par FF FF FF FF. Les ShellBags gardent la mémoire des dossiers parcourus par l'utilisateur, y compris ceux de lecteurs amovibles et de partages réseau qui n'existent plus.
USB et périphériques externes
| Artefact | Ruche | Chemin de la clé |
|---|---|---|
| Périphériques de stockage USB | SYSTEM | CCS\Enum\USBSTOR\<fabricant&produit>\<série> |
| Tous les périphériques USB (VID/PID) | SYSTEM | CCS\Enum\USB |
| Première installation, dernière connexion et retrait | SYSTEM | ...\USBSTOR\...\<série>\Properties\{83da6326-97a6-4088-9453-a1923f573b29}\0065, 0066, 0067 |
| Lettres de lecteur et GUID de volume | SYSTEM | MountedDevices |
| Noms de volume | SOFTWARE | Microsoft\Windows Portable Devices\Devices |
| Quel utilisateur a utilisé le périphérique | NTUSER.DAT | Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 |
Les ID de propriété sont 0064 date d'installation, 0065 date de première installation, 0066 dernière arrivée (connexion) et 0067 dernier retrait, chacune en FILETIME.
Système et réseau
| Artefact | Ruche | Chemin de la clé / valeur |
|---|---|---|
| Nom de l'ordinateur | SYSTEM | CCS\Control\ComputerName\ComputerName |
| Fuseau horaire | SYSTEM | CCS\Control\TimeZoneInformation (TimeZoneKeyName, Bias en minutes) |
| Dernier arrêt propre | SYSTEM | CCS\Control\Windows (ShutdownTime, FILETIME) |
| Interfaces et paramètres IP | SYSTEM | CCS\Services\Tcpip\Parameters\Interfaces\{GUID} |
| Version de Windows, date d'installation | SOFTWARE | Microsoft\Windows NT\CurrentVersion (ProductName, InstallDate en secondes Unix) |
| Réseaux rejoints | SOFTWARE | Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID} (ProfileName, DateCreated, DateLastConnected) |
| MAC de la passerelle par réseau | SOFTWARE | Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged\<id> (DefaultGatewayMac) |
| Programmes installés | SOFTWARE | Microsoft\Windows\CurrentVersion\Uninstall\<id> |
| Comptes locaux | SAM | SAM\Domains\Account\Users |
DateCreated et DateLastConnected sont des structures SYSTEMTIME de 16 octets, pas des FILETIME. La MAC de la passerelle identifie le routeur (donc le lieu) derrière un profil Wi-Fi ; retrouvez son fabricant avec la recherche de fabricant par adresse MAC.
Horodatages que vous rencontrerez
| Format | Où | Époque et unité |
|---|---|---|
| Dernière écriture de la clé | Toutes les clés | FILETIME : intervalles de 100 ns depuis le 1601-01-01 UTC |
| Valeurs FILETIME | UserAssist, BAM, propriétés USB, ShutdownTime | Comme ci-dessus, 8 octets petit-boutistes |
| Secondes Unix | InstallDate |
Secondes depuis le 1970-01-01 UTC |
| SYSTEMTIME | Profils NetworkList | Année, mois, jour de la semaine, jour, heure, minute, seconde, millisecondes (16 octets) |
Les heures du registre sont en UTC. N'appliquez le décalage de TimeZoneInformation qu'à la présentation, et confirmez l'activité avec les journaux d'événements grâce à l'analyse forensique de journaux.