Introduction
Avant de vous lancer dans l’analyse forensique d’un système Windows, il est indispensable de comprendre comment fonctionne réellement cet OS au quotidien. Plus vous maîtrisez l’architecture interne, les mécanismes de stockage des données et les traces laissées par les actions utilisateur, plus il sera simple d’interpréter les artefacts d’une compromise et de reconstituer précisément ce qu’il s’est passé sur la machine.
Ce cours couvre les principaux domaines de la forensique Windows appliquée au contexte SOC et incident response : le registre, les systèmes de fichiers, l’acquisition de données, les artefacts d’exécution et les périphériques externes. Chaque section vous donnera les emplacements clés, les outils à utiliser et la méthode d’analyse.
1. Le Registre Windows : Fondamentaux et Forensique
1.1. Qu’est-ce que le registre ?
Le registre Windows est une base de données hiérarchique centralisée qui stocke la configuration entière du système d’exploitation, des applications et des profils utilisateurs. C’est ici que Windows et les programmes consultent les paramètres lors de leur exécution.
À titre d’exemple, voici les types d’informations qu’on y trouve :
- Configuration matérielle (processeur, contrôleurs de stockage, affichage)
- Logiciels installés et leurs configurations
- Comptes utilisateurs locaux
- Fichiers récemment ouverts par chaque utilisateur
- Programmes lancés au démarrage
- Historique de connexion des périphériques (clés USB, disques externes, etc.)
En forensique, le registre est une source inépuisable de preuves numériques. Contrairement aux journaux d’événements ou aux fichiers de logs qui peuvent être nettoyés ou corrompus, le registre est plus difficile à manipuler complètement et conserve des traces détaillées de l’activité système et utilisateur.
1.2. Architecture du registre : clés, valeurs et ruches
Le registre fonctionne selon un modèle hiérarchique clé/valeur :
- Clés : les « dossiers » visibles dans l’utilitaire regedit.exe. Elles peuvent contenir des sous-clés.
- Valeurs : les données stockées dans les clés (chaînes de caractères, nombres, binaires, etc.).
- Ruches (hives) : des conteneurs logiques regroupant un ensemble de clés, sous-clés et valeurs. Chaque ruche correspond à un ou plusieurs fichiers binaires sur disque.
Quand vous ouvrez regedit.exe, vous voyez une structure organisée, mais en réalité, les données sont distribuées dans plusieurs fichiers sur le disque dur, chacun représentant une « ruche ». En forensique offine (accès à une image disque), vous devrez localiser et analyser ces fichiers directement.
1.3. Les cinq clés racines du registre
Tous les systèmes Windows exposent cinq clés racines principales dans regedit.exe :
HKEY_CURRENT_USER (HKCU)
Contient les paramètres relatifs à l’utilisateur actuellement connecté. Organisée en sous-catégories :
- Control Panel : paramètres du panneau de configuration
- Software : configurations liées aux logiciels installés pour cet utilisateur
- AppEvents : sons système
- Keyboard Layout : disposition du clavier
- Remote Access : paramètres d’accès réseau distant
- Network : configuration réseau personnelle
Emplacement disque : C:\Users\<username>\NTUSER.DAT
HKEY_USERS (HKU)
Contient les ruches de registre de tous les profils utilisateurs présents sur la machine. HKCU est en réalité un pointeur dynamique vers la sous-clé qui correspond à l’utilisateur actuellement connecté. C’est l’une des clés les plus utiles en forensique car elle vous permet de voir tous les comptes ayant accès à la machine, même ceux non actifs.
HKEY_LOCAL_MACHINE (HKLM)
Contient toutes les informations globales du système : configuration matérielle, logiciels installés pour tous les utilisateurs, paramètres réseau, services. Subdivisée en plusieurs sous-clés :
- Hardware : informations matérielles (processeur, carte mère, etc.)
- Enum : énumération des périphériques
- Network : configuration réseau, Internet
- Software : configurations des logiciels (version, chemins, clés de licence)
- System : paramètres critiques du système (ControlSets, services, fonts)
Emplacement disque : C:\Windows\System32\Config\
HKEY_CLASSES_ROOT (HKCR)
Contient les informations d’enregistrement des extensions de fichiers et des progID. Utilisé pour l’intégration des shells et la compatibilité 16 bits. Moins pertinent en forensique moderne.
HKEY_CURRENT_CONFIG (HKCC)
Contient les paramètres de configuration matérielle actuellement utilisée. C’est en réalité un pointeur vers HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current.
1.4. Ruches importantes et leurs emplacements
Ruches système (C:\Windows\System32\Config)
Quand une machine est en fonctionnement, ces ruches sont verrouillées par le système. Vous ne pouvez les accéder que via des outils spécialisés ou en travaillant sur une image disque.
SYSTEM : Contient la configuration système critique
- ControlSets (paramètres de démarrage, services)
- Informations réseau, fuseau horaire
- Informations de disque et de partition
- Configuration du startUp et des services
Emplacement : C:\Windows\System32\Config\SYSTEM
SOFTWARE : Configuration partagée des logiciels pour tous les utilisateurs
- Versions Windows, patchs appliqués
- Logiciels installés (toutes les applications)
- Paramètres par défaut des applications
Emplacement : C:\Windows\System32\Config\SOFTWARE
SAM (Security Account Manager) : Base de données des comptes locaux
- Liste des utilisateurs locaux
- Informations de mot de passe hashé
- Groupes locaux
- Informations de compte (RID, droit d’accès, etc.)
Attention : ce fichier est très protégé. Ne tenter de le copier que via des outils forensiques autorisés.
Emplacement : C:\Windows\System32\Config\SAM
SECURITY : Stratégies de sécurité locales
- Politiques d’audit
- Droits des utilisateurs
- Paramètres de sécurité du système
Emplacement : C:\Windows\System32\Config\SECURITY
DEFAULT : Modèle de profil utilisateur par défaut
- Utilisé pour créer les nouveaux profils utilisateurs
- Contient les paramètres par défaut
Emplacement : C:\Windows\System32\Config\DEFAULT
Ruches utilisateur (C:\Users<username>)
Chaque profil utilisateur possède ses propres ruches, stockées dans son répertoire de profil.
NTUSER.DAT : La plus importante pour la forensique utilisateur
- Fichiers récemment ouverts (MRU)
- Historique d’utilisation
- Paramètres d’application
- ShellBags (dossiers visités)
- Clés de registre Run/RunOnce (programmes au démarrage)
- Historique de recherche
Emplacement : C:\Users\<username>\NTUSER.DAT (fichier caché)
USRCLASS.DAT : Complémentaire à NTUSER.DAT
- Informations sur les raccourcis et liens
- Données d’association de fichiers pour cet utilisateur
- Certains artefacts d’exécution
Emplacement : C:\Users\<username>\AppData\Local\Microsoft\Windows\USRCLASS.DAT (fichier caché)
Ruche spécialisée : AmCache
Amcache.hve : Artefact d’exécution moderne et critique
- Trace chaque exécution de programme sur le système
- Enregistre le chemin d’exécution
- Horodatage d’exécution, installation et suppression
- Hachage SHA1 du fichier exécutable
- Utilisé par Windows pour optimiser le lancement d’applications
Emplacement : C:\Windows\AppCompat\Programs\Amcache.hve
1.5. Journaux de transaction et sauvegardes du registre
Outre les ruches principales, Windows maintient des mécanismes d’intégrité importants pour la forensique.
Journaux de transaction (.LOG)
Quand le système écrit des modifications dans une ruche, il enregistre d’abord ces modifications dans un fichier journal. Ce journal peut contenir les modifications les plus récentes qui n’ont pas encore été fusionnées dans la ruche principale.
Format du fichier : Même nom que la ruche avec l’extension .LOG (ex. : SYSTEM.LOG, SAM.LOG.1, SAM.LOG.2)
Emplacement : Même répertoire que la ruche correspondante (C:\Windows\System32\Config\)
Utilité en forensique : Permet de récupérer des modifications très récentes qui n’auraient pas été écrites sur disque, notamment en cas d’arrêt brutal du système (crash, débranch eau).
RegBack (sauvegardes automatiques)
Windows effectue une sauvegarde complète des ruches système tous les 10 jours par défaut, stockée dans le dossier RegBack.
Emplacement : C:\Windows\System32\Config\RegBack\
Contenu : Copies complètes de SYSTEM, SOFTWARE, SAM, SECURITY et DEFAULT
Utilité en forensique : Si vous suspectez une suppression ou modification de registre récente, les copies de RegBack vous permettent de comparer et d’identifier ce qui a changé. C’est comme avoir un « snapshot » du système à un moment antérieur.
Note importante : À partir de Windows 10 version 1803, RegBack est limité pour des raisons de sécurité, mais il existe toujours sur les systèmes d’entreprise avec des politiques de groupe ou des solutions EDR/backup.
2. Acquisition des données forensiques
2.1. Principes généraux d’acquisition
L’acquisition est l’étape critique qui détermine la qualité de votre enquête. Les principes fondamentaux sont :
- Préservation : Ne jamais modifier l’original. Travailler toujours sur des copies.
- Chaîne de traçabilité : Documenter qui a fait quoi, quand et où.
- Intégrité : Calculer des empreintes cryptographiques (MD5, SHA1, SHA256) avant et après pour garantir qu’aucune donnée n’a été altérée.
- Complétude : Acquérir l’intégralité des données pertinentes (registre, disque complet, RAM si live, logs, etc.).
2.2. Acquisition live vs image disque
Acquisition live (sur machine en fonctionnement)
Avantages :
- Capture des données volatiles (contenu de la RAM, connexions réseau actives)
- Plus rapide pour les petits systèmes
- Accès à certains artefacts en mémoire
Inconvénients :
- Modifie forcément le système (exécution de code, écriture sur disque)
- Risque d’altération des preuves
- Pas d’accès au contenu complet des fichiers verrouillés par le système
Outils courants : KAPE, FTK Imager (via « Get Protected Files »), Autopsy
Acquisition image disque (bit-à-bit)
Avantages :
- Préserve le système original intact
- Peut être analysée ultérieurement sans dégradation
- Permet de récupérer des données supprimées et des secteurs non alloués
- Peut être dupliquée illimitée fois pour audit indépendant
Inconvénients :
- Plus long si le disque est volumineux (peut prendre plusieurs heures pour plusieurs To)
- Nécessite beaucoup d’espace de stockage
- Requiert un matériel approprié
Formats courants :
- Bit-à-bit brut (DD, RAW) : copie exacte, pas de métadonnées
- Encase (E01) : format segmenté avec compression optionnelle et métadonnées
- Advanced Forensic Format (AFF) : format ouvert, compression, métadonnées
Outils courants : FTK Imager, Autopsy, EnCase, Arsenal Image Mounter
2.3. Outils d’acquisition
KAPE (Kroll Artifact Parser and Extractor)
Outil CLI (ligne de commande) et GUI développé par Kroll pour l’acquisition et l’analyse d’artefacts en temps réel.
Fonctionnalités :
- Extraction sélective ou complète d’artefacts
- Collecte ciblée de fichiers (registre, prefetch, jump lists, etc.)
- Peut fonctionner en live ou sur image
- Export structuré pour analyse
Usage courant en SOC :
KAPE --source C:\ --destination D:\KAPE_output --module LLECmd,MFTECmd
FTK Imager
Outil graphique de Exterro permettant d’explorer les systèmes de fichiers, acquérir des données et extraire les fichiers.
Capacités :
- Montage de disques ou images
- Acquisition d’image disque avec vérification d’intégrité
- Export de fichiers spécifiques
- Visualisation du système de fichiers
- Option « Get Protected Files » pour copier les ruches verrouillées
Limitation : N’exporte pas automatiquement AmCache.hve, à copier manuellement.
Autopsy
Plateforme open-source pour l’analyse forensique, intégrant des modules de recherche et d’extraction.
Capacités :
- Ingest de systèmes live ou images disque
- Visualisation du système de fichiers
- Extraction de fichiers
- Analyse de plugins (timelineL, keyword search, etc.)
- Export de rapports
3. Contexte système via le registre
3.1. Version et build de Windows
La première étape d’une enquête est d’établir précisément quel système d’exploitation vous analysez, y compris sa version, son build et les patchs appliqués.
Emplacement de la clé :
SOFTWARE\Microsoft\Windows NT\CurrentVersion
Valeurs pertinentes :
CurrentVersion: numéro de version majeureCurrentBuildNumber: numéro du build exactDisplayVersion: version affichée (ex. : 22H2)InstallDate: timestamp d’installation d’origine (Unix timestamp)ProductName: nom du produit WindowsRegisteredOrganization: organisation propriétaire (si enregistrée)RegisteredOwner: propriétaire enregistré
Importance : Permet de vérifier la conformité système, d’identifier les patchs manquants et de comprendre le contexte de la compromise.
3.2. ControlSets et « Last Known Good »
Windows maintient deux (voire trois) ensembles de configuration système appelés ControlSets, destinés à permettre une récupération en cas de problème de démarrage.
Concept
- ControlSet001 et ControlSet002 : stockés en permanent dans le registre
- CurrentControlSet : pointeur volatil vers le ControlSet actuellement actif
- LastKnownGood : pointeur vers le dernier ControlSet ayant permis un démarrage réussi
Localisation
SYSTEM\ControlSet001
SYSTEM\ControlSet002
SYSTEM\CurrentControlSet (pointeur volatil)
SYSTEM\Select\Current (valeur pointant vers le ControlSet actif : 1 ou 2)
SYSTEM\Select\LastKnowGood (valeur pointant vers LastKnowGood)
Utilité en forensique : Si un attaquant a modifié le registre, le ControlSet001 peut différer de ControlSet002. En comparant les deux, on peut identifier les changements malveillants et possiblement récupérer la configuration d’avant l’attaque.
3.3. Nom de la machine
Il est crucial de vérifier que vous analysez bien la bonne machine. Le nom de la machine est stocké dans le registre.
Emplacement :
SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
Valeur clé : ComputerName (chaîne de caractères)
Corrélation : À comparer avec les informations physiques de la machine, l’étiquette d’actif, les logs réseau pour confirmer l’identité.
3.4. Fuseau horaire et heure système
Les timestamps du registre et du disque sont souvent en UTC. Pour interpréter correctement une chronologie d’attaque, vous devez connaître le fuseau horaire de la machine.
Emplacement :
SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Valeurs clés :
StandardName: nom du fuseau horaireDaylightName: nom avec heure d’étéBias: décalage en minutes par rapport à UTCStandardBias: biais additionnel en hiverDaylightBias: biais additionnel en été
Exemple : Si Bias = -60, la machine est à UTC+1 (Europe Centrale).
3.5. Interfaces réseau et configurations IPv4/IPv6
Comprendre la configuration réseau d’une machine compromised est crucial pour tracer les communications et les vecteurs d’attaque.
Emplacement :
SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
Chaque interface est représentée par une sous-clé avec un GUID unique (ex. : {12345678-ABCD-1234-ABCD-123456789ABC}).
Valeurs clés par interface :
IpAddress: adresse IP assignéeSubnetMask: masque de sous-réseauDefaultGateway: passerelle par défautDhcpServer: serveur DHCP utiliséDhcpLeaseObtainedTime: timestamp de l’obtention du bail DHCP (Unix)DhcpLeaseExpiresTime: timestamp d’expiration du bail DHCP
DNS :
SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<GUID>
NameServer: serveurs DNS configurésSearchList: domaines de recherche
3.6. Réseaux connus et historique de connectivité
Windows mémorise tous les réseaux WiFi auxquels la machine s’est connectée, ainsi que les réseaux Ethernet/VPN passés. Ces informations indiquent où la machine a été utilisée.
Emplacements :
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged
Chaque réseau créé une sous-clé avec :
Description: nom du réseau ou SSIDFirstNetwork: première connexion (FileTime)LastNetwork: dernière connexion (FileTime)Category: classification (Private, Public, Domain)ProfileGuid: identifiant unique du profil réseau
Utilité : Permet de déterminer où une machine a probablement été utilisée (maison, café, bureau, etc.) et peut corroborer des témoignages ou des alertes d’accès.
3.7. Programmes au démarrage (Autoruns)
Les attaquants cherchent souvent à assurer la persistance en ajoutant des programmes à l’exécution au démarrage. Ces clés sont des cibles d’enquête privilégiées.
Run (exécution à chaque démarrage)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\RunOnce
Policies Run (imposées par politique de groupe)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
Format des entrées :
- Clé : nom du programme (ex. : « Windows Update »)
- Valeur : chemin complet vers l’exécutable
Signaux d’alerte :
- Chemins anormaux (ex. :
C:\ProgramData\avec un nom générique) - Exécutables non signés ou provenant de localisations inhabituelles
- Noms de programme camoufles (ex. : « svchost.exe » pointant ailleurs que System32)
3.8. Services système
Au-delà des Autorun classiques, les services système offrent un mécanisme de persistance plus sophistiqué.
Emplacement :
SYSTEM\CurrentControlSet\Services
Chaque service possède une sous-clé contenant :
ImagePath: chemin vers l’exécutable du serviceDisplayName: nom affichéDescription: description du serviceStart: type de démarrage (0=Boot, 1=System, 2=Automatic, 3=Manual, 4=Disabled)Type: type de service (16=Driver, 32=Kernel, 256=User)ObjectName: compte utilisé pour exécuter le service
Vérifications :
- Services avec des chemins anormaux
- Services désactivés mais critiques
- Services créés récemment (TimestampModified dans Registry Explorer)
- Services exécutés avec des comptes élevés (NT AUTHORITY\SYSTEM)
3.9. Comptes locaux et SAM
La ruche SAM contient les comptes locaux, leurs droits et des indices de mot de passe.
Emplacement :
SAM\Domains\Account\Users
Sous-clés : Chaque compte utilisateur a sa sous-clé (ex. : 000001F4 pour le RID 500 = Administrateur)
Valeurs clés :
F: données binaires d’identification du compteV: données binaires de mot de passe hashéNames: liste des noms d’utilisateur
Décodage : Les hashs des mots de passe sont au format NTLM (non réversible directement). Des outils comme hashcat ou John the Ripper permettent de les attaquer par force brute ou par dictionnaire.
Informations extractibles :
- RID (Relative ID) de chaque compte
- Nombre de tentatives de connexion échouées
- Heures de dernière connexion
- Expiration du mot de passe
- Appartenance aux groupes
4. Traces d’activité utilisateur : fichiers récents et historique
L’une des traces les plus riches en forensique est l’historique des fichiers ouverts par un utilisateur. Windows et les applications enregistrent ces informations à plusieurs endroits.
4.1. Fichiers récents via l’Explorateur
Emplacement :
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Structure :
- Une sous-clé par extension de fichier (
.pdf,.docx,.xlsx, etc.) - Sous
RecentDocs\.pdf, chaque document est enregistré en MRU (Most Recently Used)
Valeurs :
- Clé principale : liste des fichiers récents (classés automatiquement en MRU)
- Chaque entrée contient le chemin complet du fichier
Particularité : Registry Explorer et d’autres outils triént automatiquement ces entrées pour afficher d’abord les fichiers les plus récents. Les entrées anciennes sont au bas de la liste.
Cas d’usage pratique :
- Retracer quel type de documents a été manipulé (PDFs, documents Office, images)
- Identifier le dossier source d’un fichier suspect
- Corréler avec des logs de partage réseau pour confirmer qu’un utilisateur a eu accès à un répertoire
4.2. Fichiers récents Office
Microsoft Office maintient une liste distincte des fichiers récents, plus détaillée que celle de Windows.
Emplacement :
NTUSER.DAT\Software\Microsoft\Office\VERSION
La VERSION varie selon la suite :
- Word 2016 :
16.0 - Word 2019 :
16.0 - Office 365 :
16.0ou le même
Emplacements typiques des MRU :
NTUSER.DAT\Software\Microsoft\Office\16.0\Word\File MRU
NTUSER.DAT\Software\Microsoft\Office\16.0\Excel\Recent Files
NTUSER.DAT\Software\Microsoft\Office\16.0\PowerPoint\Recent
À partir d’Office 365 : Microsoft a changé la structure pour associer le compte Live ID de l’utilisateur :
NTUSER.DAT\Software\Microsoft\Office\16.0\UserMRU\LiveID_####\FileMRU
Ces entrées incluent souvent le chemin d’accès complet du fichier, pas seulement le nom, ce qui est très utile pour l’enquête.
4.3. ShellBags : dossiers visitée et préférences d’affichage
Quand un utilisateur ouvre un dossier dans l’Explorateur, Windows mémorise la disposition (taille des icônes, colonnes affichées, position des fenêtres, etc.). Ces paramètres sont stockés dans les ShellBags, et révèlent quels dossiers ont été visités et quand.
Emplacements :
USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags
USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU
NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags
Données stockées :
- GUID des dossiers visités (souvent encodés en binaire)
- Dernière position/taille de la fenêtre
- Colonnes affichées (Name, Date, Size, etc.)
- Mode d’affichage (Liste, Miniatures, Détails)
Analyse : Registry Explorer affiche les ShellBags de manière relativement lisible, mais l’outil ShellBag Explorer (Eric Zimmerman) transforme ces données binaires en timeline exploitable : vous voyez alors précisément quel dossier a été visité et quand.
Cas d’usage : Identifier les chemins réseau visités, les lecteurs montés, les partages SMB exploités.
4.4. Dialogues Open/Save : historique de navigation
Quand vous ouvrez un document via File > Open ou Save As, une fenêtre de dialogue apparaît. Windows mémorise les dossiers visités dans ce contexte, ce qui laisse une trace.
Emplacements :
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePIDlMRU
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
Données :
OpenSavePIDlMRU: chemins d’accès des fichiers ouverts/enregistrésLastVisitedPidlMRU: dernier dossier visité dans un dialogue
Format : Les données sont stockées en PIDL (Path Item Identifier List), un format binaire, mais peuvent être parsées par Registry Explorer pour afficher les chemins réels.
4.5. Adresse bar et historique de recherche de l’Explorateur
Si un utilisateur a tapé des chemins ou des termes de recherche directement dans la barre d’adresse ou la barre de recherche de l’Explorateur, ces données peuvent être récupérées.
Emplacements :
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery
TypedPaths : Contient les chemins UNC (réseau) ou locaux tapés dans la barre d’adresse (ex. : \\fileserver\shared ou C:\Users\Public\Documents).
WordWheelQuery : Historique des termes saisis dans la barre de recherche de l’Explorateur (ex. : recherche de « malware.exe »).
Signification : Ces registres peuvent révéler des tentatives de naviguer vers des partages réseau spécifiques, des chemins inhabituels ou des termes de recherche suspectes.
5. Artefacts d’exécution : quels programmes ont été lancés ?
L’une des questions centrales en forensique est : « Quels programmes ont été exécutés sur cette machine et quand ? » Windows laisse plusieurs traces d’exécution, complémentaires les unes des autres.
5.1. UserAssist : historique d’exécution via GUI
Windows enregistre les applications lancées depuis l’interface graphique via un mécanisme appelé UserAssist, à titre statistique.
Emplacement :
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
Le GUID varie (ex. : {CEBFF5CD-ACE2-4F51-8F47-8B53FA8840D6}).
Format des données :
- Clé : nom ROT13-encodé du programme
- Valeur : données binaires contenant le nombre d’exécutions et timestamps
Outils de parsing : Registry Explorer affiche ces données de manière automatique et lisible. Des outils comme uaParser.py permettent aussi de décoder manuellement.
Limitations :
- N’enregistre que les programmes lancés via GUI (pas de ligne de commande)
- N’enregistre que les programmes lancés par cet utilisateur spécifique
- Les données peuvent être supprimées
Utilité : Retracer les applications lancées régulièrement, identifier si des outils suspects ont été exécutés.
5.2. ShimCache (AppCompatCache) : cache de compatibilité des applications
Windows mantient un cache de compatibilité pour assurer que les applications anciennes fonctionnent correctement avec les versions modernes. Ce cache, appellé ShimCache ou AppCompatCache, trace toutes les applications exécutées.
Emplacement :
SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
Données stockées par exécution :
- Chemin complet du fichier exécutable
- Taille du fichier (en octets)
- Dernière date de modification du fichier
- Horodatage de la dernière exécution
Avantages :
- Trace TOUS les programmes, contrairement à UserAssist
- Inclus les programmes lancés en ligne de commande
- Persiste à travers les redémarrages
Outils de parsing : Registry Explorer est limité pour ShimCache. L’outil AppCompatCacheParser.exe (Eric Zimmerman) permet une extraction complète en CSV :
AppCompatCacheParser.exe --csv output.csv -f C:\path\to\SYSTEM -c 001
(Le -c 001 spécifie le ControlSet à analyser.)
Output typique (CSV) :
LastModificationTime, ShimCacheEntry, ExePath, FileSize, ExecutionFlag
2024-01-15 10:32:15, True, C:\Windows\System32\cmd.exe, 310272, True
2024-01-15 11:45:22, True, C:\ProgramFiles\Malware.exe, 2048000, True
5.3. AmCache : registre enrichi d’exécution
AmCache.hve est une ruche plus moderne et riche que ShimCache, créée par Windows pour optimiser le lancement d’applications. Elle stocke bien plus d’informations.
Emplacement :
C:\Windows\AppCompat\Programs\Amcache.hve
Structure interne :
Amcache.hve\Root\File\{Volume GUID}
Chaque entrée contient :
- Path : chemin complet de l’exécutable
- Size : taille du fichier
- LastModTime : date de dernière modification du fichier
- LastExecutionTime : quand le programme a été lancé pour la dernière fois
- InstallDate : quand le programme a été installé
- RemovalDate : quand il a été supprimé (le cas échéant)
- SHA1 : hachage SHA1 du fichier (très utile pour la corrélation avec des bases de données de malware)
Outils de parsing : AmCache Explorer (Eric Zimmerman) : l’outil AmCacheParser.exe génère un CSV lisible.
AmCacheParser.exe -f C:\Windows\AppCompat\Programs\Amcache.hve --csv output.csv
Avantage supplémentaire : Le hachage SHA1 permet de vérifier immédiatement si le fichier est connu comme malveillant via des services comme VirusTotal.
5.4. BAM et DAM : activité des applications
BAM (Background Activity Monitor) et DAM (Desktop Activity Moderator) sont des composants de la technologie Modern Standby de Windows, qui gère l’énergie en mettant les applications « en pause » quand le système est inactif.
Emplacements :
SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}
SYSTEM\CurrentControlSet\Services\dam\UserSettings\{SID}
Remplacer {SID} par le SID de l’utilisateur (ex. : S-1-5-21-123456789-123456789-123456789-1001).
Données :
- Chemin complet du programme
- Horodatage de la dernière exécution (format Windows FILETIME)
Intérêt : Permet de voir l’historique récent des applications lancées, même si une date de modification a été manipulée ailleurs.
5.5. Préfetch : optimisation du lancement
Prefetch est un mécanisme d’optimisation Windows qui accélère le lancement des applications en préchargeant les données fréquemment accédées.
Emplacement des fichiers :
C:\Windows\Prefetch
Format des fichiers : .pf (ex. : cmd.exe-ABC12345.pf)
Données extraites d’un fichier .pf :
- Nombre d’exécutions du programme
- Horodatage de la dernière exécution
- Tous les fichiers et descripteurs de périphérique utilisés lors de l’exécution
Outils de parsing : PECmd.exe (Eric Zimmerman) :
PECmd.exe -f "C:\Windows\Prefetch\cmd.exe-ABC12345.pf" --csv output.csv
PECmd.exe -d "C:\Windows\Prefetch" --csv output.csv # pour tout le dossier
Output :
SourceFile, Executable, RunCount, LastRunTime, FilesAccessed, ...
C:\Windows\Prefetch\cmd.exe-ABC12345.pf, cmd.exe, 47, 2024-01-15 14:32:00, C:\Windows\System32\..., ...
6. Périphériques externes et USB
Les périphériques amovibles (clés USB, disques externes) laissent des traces détaillées dans le registre. Ces informations permettent de déterminer quels périphériques ont été connectés, à quel moment et par qui.
6.1. Identification des périphériques USB
Chaque fois qu’un périphérique USB est connecté, Windows enregistre son identifiant unique.
Emplacements :
SYSTEM\CurrentControlSet\Enum\USBSTOR
SYSTEM\CurrentControlSet\Enum\USB
Structure USBSTOR :
USBSTOR\Ven_ProductID_SerialNumber
Exemple :
USBSTOR\Ven_SanDisk_Prod_Cruzer_Rev_1.00\ABC123DEF456
Décodage :
Ven_: Vendor (fabricant) – ex. : SanDiskProd_: Product (modèle) – ex. : CruzerRev_: Révision du firmware – ex. : 1.00- Suffixe : numéro de série unique du périphérique
Valeurs clés :
FriendlyName: nom amical si assignéSerialNumber: numéro de série unique (très important pour identifier un périphérique spécifique)
6.2. Timestamps de connexion / Déconnexion
Pour chaque périphérique USB, Windows enregistre la première connexion, la dernière connexion et la dernière déconnexion.
Emplacement :
SYSTEM\CurrentControlSet\Enum\USBSTOR\Ven_Prod_Rev\SerialNumber\Properties\{83da6326-97a6-4088-9453-a19231573b29}
Les valeurs hexadécimales suivantes indiquent les timestamps :
0064: First Connection Time (première connexion)0066: Last Connection Time (dernière connexion)0067: Last Removal Time (dernière déconnexion)
Format : Timestamps au format Windows FILETIME (nombre de 100-nanosecondes depuis 1601-01-01).
Outils : Registry Explorer parse automatiquement ces valeurs et affiche les dates lisibles. Pour les traiter en masse, il faut convertir les FILETIME en dates standard.
6.3. Noms de volume des périphériques USB
Bien que le USBSTOR ne dise pas quel nom de volume porte la clé, Windows l’enregistre ailleurs.
Emplacement :
SOFTWARE\Microsoft\Windows Portable Devices\Devices
Structure :
Devices\{UUID_DU_DISQUE}
Valeur clé : FriendlyName contient le nom du périphérique tel qu’il s’affichait dans l’Explorateur.
Corrélation : Comparer l’UUID trouvé ici avec les identifiants dans USBSTOR pour mapper les numéros de série aux noms amicaux.
Cas d’usage pratique : Vous trouvez dans USBSTOR : Ven_SanDisk_Prod_Cruzer_Rev_1.00\ABC123DEF456 Vous trouvez dans Devices : {GUID-XXXX}\FriendlyName = "Backup_Drive" → Vous confirmez que la clé de backup SanDisk ABC123DEF456 se nommait « Backup_Drive ».
6.4. Fichiers ouverts depuis des périphériques externes
Si l’utilisateur a ouvert un fichier directement depuis une clé USB (sans le copier), l’historique des fichiers récents peut le révéler.
Chercher dans :
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
NTUSER.DAT\Software\Microsoft\Office\VERSION\File MRU
Les chemins commençant par des lettres de lecteur inhabituelles (ex. : E:\, F:\) ou contenant des noms de périphériques USB suggèrent l’utilisation d’un disque externe.
7. Système de fichiers NTFS
Au-delà du registre, le système de fichiers NTFS est lui-même riche en artefacts forensiques. C’est un système de fichiers journalisé qui trace ses propres modifications.
7.1. Évolution des systèmes de fichiers : de FAT à NTFS
FAT (File Allocation Table) était le système de fichiers utilisé par les anciennes versions de Windows. Il présentait des limitations :
- Taille maximale de 2 To par partition
- Pas de contrôles d’accès utilisateur
- Pas de journalisation
- Récupération limitée en cas de panne
NTFS (New Technology File System), introduit en 1993 avec Windows NT 3.1 et généralisé depuis Windows XP, résout ces problèmes et ajoute des fonctionnalités cruciales :
- Support des fichiers > 2 To
- Listes de contrôle d’accès (ACL) granulaires
- Journalisation des modifications
- Support des points de restauration et des copies de volume
- Flux alternatifs (Alternate Data Streams)
7.2. Journalisation NTFS
NTFS maintient un journal des modifications apportées aux métadonnées du volume. Avant de modifier le système de fichiers (créer, supprimer, renommer, redimensionner un fichier), les modifications sont d’abord écrites dans le journal.
Emplacement du journal :
$LOGFILE
(Fichier système spécial, visible dans les outils MFT)
But :
- Permettre la récupération après un crash
- Garantir l’intégrité du système de fichiers
Utilité en forensique : Le journal peut contenir des écritures récentes qui n’ont pas été complètement validées sur disque, permettant de récupérer des fichiers partiellement créés ou modifiés.
7.3. Contrôles d’accès (ACL)
NTFS associe à chaque fichier/dossier une liste de contrôle d’accès (Access Control List) définissant qui peut lire, modifier ou exécuter.
Permissions NTFS :
- Full Control : lecture, écriture, suppression, modification de permissions
- Modify : lecture et écriture, mais pas suppression complète
- Read & Execute : lecture et exécution
- List Folder Contents : énumération du contenu
- Read : lecture seule
- Write : écriture seule
- Delete : suppression
- Take Ownership : appropriation du fichier
- Change Permissions : modification des permissions
Cas d’usage en forensique :
- Identifier si les permissions d’un fichier sensible ont été modifiées
- Vérifier si un compte utilisateur avait accès à un répertoire au moment du compromis
- Détecter les modifications d’ACL malveillantes (ex. : un malware qui donne accès complet à tout le monde sur un dossier critique)
7.4. Copies fantômes (Volume Shadow Copies)
Windows crée automatiquement des instantanés des volumes (« shadow copies ») pour permettre aux utilisateurs de restaurer les versions précédentes de fichiers.
Emplacement :
C:\System Volume Information\_restore\{GUID}
(Dossier caché et protégé)
Utilité :
- Récupérer les versions antérieures d’un fichier
- Comparer les modifications d’un fichier dans le temps
- Analyser l’évolution d’un malware ou d’une configuration
Risque : Les attaquants modernes (notamment en ransomware) suppriment volontairement ces copies pour empêcher les victimes de récupérer leurs données.
En investigation : Si les copies fantômes ont été supprimées, c’est un fort indicateur de malveillance intentionnelle.
7.5. Alternate Data Streams (ADS)
NTFS permet aux fichiers d’avoir plusieurs flux de données au lieu d’un seul. C’est une fonctionnalité légitime utilisée par Internet Explorer pour marquer les fichiers téléchargés, mais elle peut aussi être détournée pour camoufler du code malveillant.
Syntaxe ADS :
C:\path\to\file.txt:streamname
Exemple :
C:\Users\Admin\Documents\invoice.txt:hidden_malware.exe
Cas d’usage légitime :
C:\download.exe:Zone.Identifier:$DATA
(Indique que le fichier a été téléchargé depuis Internet)
En forensique :
- Chercher les ADS sur les fichiers connus pour stocker du malware (ex. :
svchost.exe:malicious.dll) - Extraire les ADS suspects pour analyse
- Outils : Alterante Data Streams Explorer, ADS Manager, ou simples commandes PowerShell
7.6. Master File Table (MFT) : le « répertoire » de NTFS
La Master File Table est la structure centrale de NTFS. Elle contient une entrée pour chaque fichier et dossier du volume, stockant ses métadonnées.
Fichiers critiques :
$MFT
Le premier fichier du volume. Il contient des informations sur TOUS les autres fichiers : taille, timestamps (création, modification, accès, modification MFT), chemin, attributs.
Utilité en forensique :
- Reconstituer la liste complète des fichiers existants
- Retracer les fichiers supprimés (leurs entrées MFT peuvent encore être partiellement lisibles)
- Analyser les timestamps pour une timeline
$LOGFILE
Le journal transactionnel (décrit en 7.2). Permet la récupération.
$UsnJrnl (Update Sequence Number Journal)
Aussi appelé journal des modifications (Change Journal). Enregistre chaque modification apportée à la MFT : création, suppression, renommage, modification de fichier.
Emplacement :
$Extend\$UsnJrnl\$J
Information par entrée :
- Nom du fichier
- Raison de la modification (create, delete, rename, overwrite, etc.)
- Timestamps
- FileReference (pointeur vers l’entrée MFT)
Puissance : Permet de reconstituer l’historique complet des actions sur les fichiers.
7.7. Outils d’analyse NTFS
MFTECmd (Eric Zimmerman)
Outil ligne de commande pour parser la MFT, le boot sector, et le journal NTFS.
MFTECmd.exe -f "C:\path\to\$MFT" --csv output.csv
Output : CSV contenant chaque entrée MFT avec timestamps, chemins, tailles, flags.
Exemple de résultat :
FileName, ParentPath, CreatedTime, ModifiedTime, AccessedTime, MFTModifiedTime, IsDir, FileSize, ...
document.txt, C:\Users\Admin\Documents, 2024-01-10 10:15:30, 2024-01-10 10:15:35, 2024-01-10 10:20:00, 2024-01-10 10:15:35, False, 2048, ...
EZViewer (Eric Zimmerman)
Outil graphique pour visualiser les sorties CSV de MFTECmd. Permet de filtrer, trier, rechercher dans les résultats MFT.
Usages :
- Filtrer par date pour retracer les activités d’une période spécifique
- Chercher des fichiers supprimés
- Identifier les dossiers contenus dans les répertoires temporaires ou suspects
MFT Explorer
Alternative graphique pour l’exploration MFT. Plus facile d’accès que les outils en CLI.
8. Suppression et récupération de fichiers
8.1. Concept de suppression sur NTFS
Quand vous « supprimez » un fichier sur NTFS, le fichier n’est pas immédiatement écrasé sur disque. À la place :
- L’entrée MFT du fichier est marquée comme « libre »
- Les clusters (blocs de disque) occupés par le fichier sont marqués comme non alloués
- Le répertoire parent n’affiche plus le fichier
Résultat : Le contenu est toujours sur disque, tant qu’il n’a pas été écrasé par un autre fichier.
8.2. Image disque bit-à-bit : pourquoi c’est crucial
Une image disque bit-à-bit capture l’entièreté du disque, y compris :
- Les secteurs alloués (fichiers en production)
- Les secteurs non alloués (fichiers supprimés)
- Les métadonnées du système de fichiers
Cela permet de récupérer des fichiers supprimés même longtemps après leur suppression, à condition que les secteurs n’aient pas été écrasés.
Outils pour créer une image :
dd(Linux/Mac) :dd if=/dev/sda of=/mnt/evidence/image.dd bs=4M- FTK Imager : interface graphique, ajoute des métadonnées et vérification d’intégrité
- EnCase, Autopsy : formats propriétaires
8.3. Carving et récupération
Carving consiste à rechercher les en-têtes et pieds de fichiers connus (signatures magiques) dans les secteurs non alloués pour en récupérer le contenu.
Outils :
- Scalpel : recherche les signatures et extrait les fichiers
- Foremost : similaire, plus limité
- PhotoRec : spécialisé dans la récupération d’images et de médias
Exemple avec Scalpel :
scalpel -i image.dd -o recovery_output/
Cela recherchera tous les fichiers dont les signatures magiques sont définies dans /etc/scalpel/scalpel.conf.
Limitations :
- Récupère les fichiers intacts ou partiellement écrasés
- Perte de noms de fichiers et de structure de répertoires
- Lent sur les gros volumes
9. Artefacts d’exécution supplémentaires
Au-delà de ShimCache, AmCache et UserAssist, Windows laisse d’autres traces d’exécution.
9.1. Windows 10 Timeline
Windows 10 maintient une base de données SQLite appelée « Activity Timeline » qui enregistre les applications et les fichiers utilisés.
Emplacement :
C:\Users\<username>\AppData\Local\ConnectedDevicesPlatform\<randomfolder>\ActivitiesCache.db
Contenu :
- Application exécutée
- Fichiers ouverts par l’application
- Durée d’utilisation
Outils : WxTCmd.exe (Eric Zimmerman) :
WxTCmd.exe -f "C:\Users\<username>\AppData\Local\ConnectedDevicesPlatform\...\ActivitiesCache.db" --csv output.csv
9.2. Jump Lists (Listes de raccourcis)
Les Jump Lists sont des raccourcis affichés quand vous clic-droit sur une application dans la barre des tâches. Elles contiennent une histoire des fichiers récemment ouverts dans cette application.
Emplacements :
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
Fichiers : Portent l’extension .automaticDestinations-ms ou .customDestinations-ms et contiennent un AppID.
Outils : JLECmd.exe (Eric Zimmerman) :
JLECmd.exe -f "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\*.lnk" --csv output.csv
Output :
SourceFile, AppID, FilePath, TargetCreatedTime, TargetModifiedTime, TargetAccessedTime, ...
, {e7cf176e}, C:\Users\Admin\Documents\report.pdf, 2024-01-10 10:15:30, 2024-01-10 10:15:35, ...
9.3. Raccourcis (.LNK)
À chaque ouverture de fichier (en local ou réseau), Windows crée un fichier raccourci (.lnk) contenant des métadonnées sur le fichier source.
Emplacements :
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\
C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\
Métadonnées d’un raccourci :
- Chemin original du fichier
- Date de création du raccourci (= première ouverture du fichier)
- Date de modification du raccourci (= dernière ouverture)
- Taille du fichier cible
- Icône du fichier
- Horodatage
Outils : LECmd.exe (Lnk Explorer – Eric Zimmerman) :
LECmd.exe -f "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\*.lnk" --csv output.csv
9.4. Historique IE/Edge
Internet Explorer et Microsoft Edge conservent un historique incluant non seulement les pages web visitées, mais aussi les fichiers locaux et réseaux ouverts via le navigateur.
Emplacements :
C:\Users\<username>\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat
C:\Users\<username>\AppData\Local\Microsoft\Edge\User Data\History
Format : WebCache est un fichier ESE (Extensible Storage Engine), parsable par des outils comme Autopsy ou des scripts Python.
Indication d’activité : Les fichiers consultés apparaissent avec le préfixe file:/// dans l’historique, ce qui montre qu’un utilisateur a ouvert des fichiers locaux ou en partage réseau via le navigateur.
10. Méthodologie pratique d’enquête Windows
10.1. Checklist rapide pour le triage initial
Quand vous débutez une enquête sur un système Windows, voici les étapes à suivre dans l’ordre :
- Acquisition : Créer une image bit-à-bit du disque ou copier les ruches/artefacts clés.
- Version OS :
SOFTWARE\Microsoft\Windows NT\CurrentVersion→ déterminer le système - Contexte machine : Nom (
ComputerName), fuseau horaire, IP, utilisateurs locaux (SAM) - Services et autoruns : Vérifier les services au démarrage et les programmes Run
- Activité utilisateur : Fichiers récents, Office MRU, ShellBags
- Artefacts d’exécution : AmCache, ShimCache, UserAssist
- Périphériques externes : Historique USB (USBSTOR, connexions/déconnexions)
- Systèmes de fichiers : MFT, fichiers supprimés, ADS
- Recherche d’IOC : Chercher les indicateurs connus de compromise (IP malveillantes, domaines, hashes)
10.2. Questions clés qu’on se pose
Qui ?
- Quel utilisateur a été actif sur la machine ?
- Avait-il des droits administrateur ?
- D’autres comptes avaient-ils accès ?
Quoi ?
- Quel type de malware ou d’outil a été exécuté ?
- Quels données ont été accédées ou exfiltrées ?
- Quelle était l’ampleur de la compromise ?
Quand ?
- Quand le compromis a-t-il débuté ?
- Combien de temps l’attaquant est-il resté sur la machine ?
- Y a-t-il eu activité après le signalement ?
Où ?
- D’où venait l’attaque (IP, domaine) ?
- Où les données ont-elles été exfiltrées ?
- Les donnés sont-elles sur des partages réseau accessibles ?
Comment ?
- Quel était le vecteur initial (phishing, exploit, brute-force) ?
- Comment l’attaquant a-t-il maintenu la persistance (services, registre, planificateur) ?
- Quels outils ont été utilisés ?
10.3. Outils essentiels à maîtriser
- Registry Explorer : visualisation et parsing du registre
- RegRipper : extraction et rapport automatisé du registre
- AppCompatCacheParser : parse ShimCache
- AmCacheParser : parse AmCache
- MFTECmd : parse MFT et journaux
- PECmd : parse Prefetch
- JLECmd : parse Jump Lists
- LECmd : parse raccourcis .lnk
- KAPE : acquisition automatisée d’artefacts
- Autopsy : plateforme d’analyse complète
- EZViewer : visualisation de sorties CSV
11. Résumé : stratégie forensique Windows pour analystes SOC
La forensique Windows n’est pas qu’une question d’outils ; c’est une méthodologie structurée.
Les trois piliers :
- Registre : contexte système, activité utilisateur, persistance, périphériques
- Système de fichiers (NTFS) : timeline fine, récupération de fichiers supprimés, ACL
- Artefacts d’exécution : AmCache, ShimCache, UserAssist, Prefetch, Timeline – « qui a fait quoi »
En pratique :
- Commencer par le registre pour comprendre le « qui » et le « quoi »
- Analyser les artefacts d’exécution pour confirmer la chaîne d’actions
- Creuser dans la MFT pour des détails temporels fins
- Recouper avec les logs réseau/EDR pour une image complète
Cette approche multi-sources rend difficile pour un attaquant de couvrir toutes les traces, et maximise les chances de reconstituer précisément la compromission et ses impacts.