Exécution
Fichiers Prefetch (.pf)
Fiche Prefetch Windows : emplacement des .pf par version, nombre d'exécutions, huit dernières dates, fichiers référencés, rétention et analyse.
- Emplacement
- C:\Windows\Prefetch\<EXE>-<HASH>.pf
- Prouve
- Un exécutable précis a été lancé, combien de fois et quand (jusqu'à 8 dates)
- Horodatages
- 8 dernières exécutions (1 avant Windows 8) en FILETIME, UTC, environ 10 s après le lancement ; dates $SI du fichier .pf, UTC
- Rétention
- Plafond de 128 fichiers (XP à 7) ou 1 024 (8+), les plus anciens évincés ; seules les 8 dernières exécutions conservées ; désactivé par défaut sur Server
- Accès
- Administrateur ; fichiers non verrouillés, une copie simple suffit (robocopy /COPY:DAT conserve les dates)
- Preuve de
- Exécution
- Type
- Fichier / système de fichiers
- Windows
- XPVista / 78 / 8.11011
- Cible KAPE
- Prefetch
- Velociraptor
- Windows.Triage.Targets:Prefetch
Outils
Comparer tous les outilsPrésentation
Le Prefetch est une fonction de performance gérée par le service SysMain (anciennement Superfetch). Au lancement d'une application, Windows observe les fichiers qu'elle charge pendant ses dix premières secondes environ et enregistre cette liste, avec des métadonnées d'exécution, dans un fichier .pf afin d'accélérer le lancement suivant. Pour l'enquêteur, chaque fichier .pf est l'une des preuves d'exécution les plus solides sur un poste de travail.
Emplacement
| Version de Windows | Chemin | Version du format |
|---|---|---|
| XP / Server 2003 | C:\Windows\Prefetch\*.pf | 17 |
| Vista / 7 | C:\Windows\Prefetch\*.pf | 23 |
| 8 / 8.1 | C:\Windows\Prefetch\*.pf | 26 |
| 10 / 11 | C:\Windows\Prefetch\*.pf (compressé, signature MAM) | 30 (certaines versions de Windows 11 : 31) |
Nom de fichier : <NOM DE L'EXÉCUTABLE>-<hash de 8 chiffres hexadécimaux>.pf, par exemple CMD.EXE-0BD30981.pf. Le hash est calculé à partir du chemin complet de l'exécutable : un même binaire lancé depuis deux dossiers produit deux fichiers .pf. Pour les binaires « hôtes » (svchost.exe, dllhost.exe, rundll32.exe, mmc.exe), la ligne de commande entre aussi dans le hash, d'où leurs multiples fichiers .pf.
Le même dossier contient Layout.ini et les bases SysMain Ag*.db, qui sont des artefacts distincts.
Ce que l'artefact prouve
- Exécution : l'exécutable nommé a été lancé au moins une fois depuis le chemin encodé dans le fichier.
- Combien de fois et quand : nombre d'exécutions, plus la dernière date d'exécution (Vista/7) ou jusqu'à huit dates (8 et suivants).
- Ce qu'il a touché : DLL, fichiers de configuration et documents ouverts dans les premières secondes, avec leur chemin de volume complet. Un document listé dans le Prefetch de
WINWORD.EXEou7Z.EXEmontre que ce fichier a été manipulé. - Sur quel volume : chemin de périphérique, date de création et numéro de série du volume, utile pour rattacher une exécution à un support amovible.
Champs clés
| Champ | Signification |
|---|---|
| Nom de l'exécutable | Nom en majuscules, tronqué à 29 caractères dans l'en-tête |
| Hash | Hash du chemin dans le nom de fichier ; hash différent = chemin ou ligne de commande différents |
| Nombre d'exécutions | Nombre de lancements enregistrés par SysMain |
| Dernière(s) exécution(s) | 1 horodatage (XP à 7) ou jusqu'à 8 (8 et suivants), du plus récent au plus ancien |
| Informations de volume | Chemin de périphérique, numéro de série et date de création de chaque volume référencé |
| Fichiers référencés | Chemins complets des fichiers chargés au démarrage |
| Dossiers référencés | Dossiers touchés au démarrage (Vista et suivants) |
Horodatages
| Horodatage | Positionné quand | Format | Pièges |
|---|---|---|---|
| Date(s) d'exécution (internes) | SysMain écrit le .pf après la fenêtre d'observation du démarrage | FILETIME, UTC | Tombe en général ~10 secondes après le vrai démarrage du processus : ce n'est pas la seconde exacte du lancement |
Création du .pf ($SI) | Première mise en Prefetch de l'exécutable | NTFS, UTC | Réinitialisée si le .pf a été supprimé puis recréé, ou évincé puis recréé |
Modification du .pf ($SI) | Dernière mise à jour du .pf | NTFS, UTC | Correspond en général à la date d'exécution interne la plus récente |
| Création du volume | Formatage du volume | FILETIME, UTC | Décrit le volume, pas l'exécution |
Rétention et effacement
- Le dossier est plafonné : 128 entrées de XP à 7 et 1 024 entrées à partir de Windows 8. Les fichiers les plus anciens sont évincés à la limite : l'absence d'un
.pfne prouve pas que le programme n'a jamais tourné. - Seules les huit dernières dates d'exécution sont conservées ; les exécutions plus anciennes ne subsistent que dans le compteur.
- Le Prefetch est piloté par
EnablePrefetchersousHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters(0 désactivé, 1 applications, 2 démarrage, 3 les deux). Il est désactivé par défaut sur Windows Server. - Les attaquants et les outils de nettoyage suppriment les
.pf. Ces suppressions restent souvent visibles dans le journal USN et la $MFT.
Collecte
- Cible KAPE :
Prefetch - Velociraptor (
Windows.Triage.Targets) :Prefetch - Commandes natives : les fichiers ne sont pas verrouillés, une simple copie suffit.
robocopyconserve les horodatages d'origine :
robocopy C:\Windows\Prefetch E:\case\Prefetch *.pf /COPY:DAT /DCOPY:T
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher
Outils d'analyse
- PECmd (Eric Zimmerman, gratuit) :
PECmd.exe -d E:\case\Prefetch --csv E:\outproduit un CSV par fichier et un CSV chronologique de toutes les exécutions. Il décompresse les fichiers de Windows 10/11 lorsqu'il tourne sous Windows 8 ou ultérieur. - WinPrefetchView (NirSoft, gratuit) : revue rapide en interface graphique.
- libscca / pyscca (Joachim Metz, open source) : bibliothèque et outil
sccainfo, avec la documentation du format. - Velociraptor : l'artefact
Windows.Forensics.Prefetchanalyse le Prefetch sur les postes en direct. - Plaso : le parseur
prefetchajoute chaque exécution à une super-chronologie.
Conseils d'investigation
- Cherchez les exécutables situés dans des emplacements accessibles en écriture aux utilisateurs (
\Users\Public\,\AppData\Local\Temp\,\ProgramData\) et les outils d'attaque classiques (PSEXESVC.EXE,RCLONE.EXE,MIMIKATZ.EXE,PROCDUMPrenommé). - Plusieurs hash pour un même nom signalent plusieurs emplacements de lancement : comparez les chemins de fichiers de chaque
.pfpour isoler l'intrus. - Lisez la liste des fichiers référencés : le Prefetch d'un hôte de script (
WSCRIPT.EXE,MSHTA.EXE) qui référence un fichier deDownloadsrévèle souvent la charge initiale. - Corrélez avec Amcache (SHA-1 du binaire), ShimCache et BAM (attribution à un utilisateur, absente du Prefetch).
- Si le Prefetch est vide ou que des fichiers récents manquent, vérifiez
EnablePrefetcheravant de conclure à de l'anti-forensique.
Artefacts liés
- Amcache.hveFiche Amcache.hve : clés d'inventaire des fichiers et programmes, SHA-1, métadonnées PE, horodatages, et pourquoi une entrée ne prouve pas l'exécution.
- ShimCache (AppCompatCache)Fiche ShimCache (AppCompatCache) : emplacement dans SYSTEM, nombre d'entrées par version, ordre, sens de l'horodatage et limites comme preuve d'exécution.
- BAM / DAM (Background Activity Moderator)Fiche BAM et DAM : clés de la ruche SYSTEM selon la version de Windows 10, SID par utilisateur, dernière exécution en FILETIME, rétention de sept jours.
- SRUM (System Resource Usage Monitor)Fiche SRUM : tables et GUID de SRUDB.dat, octets réseau et temps CPU par application, enregistrements horaires UTC, rétention de 30 à 60 jours, réparation ESE.
- UserAssistFiche UserAssist : clés GUID de NTUSER.DAT, noms en ROT13, nombre d'exécutions, temps au premier plan et dernière exécution des programmes lancés.
Termes du glossaire
- Preuve d'exécutionLes artefacts qui montrent qu'un programme s'est réellement exécuté sous Windows, et pas seulement qu'il était présent sur le disque.
- FILETIMELe format d'horodatage Windows sur 64 bits qui compte les intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC.
- Numéro de série de volumeL'identifiant écrit sur un volume lors de son formatage ; enregistré dans les LNK et le Prefetch, il rattache une activité à un volume précis.
- Anti-forensiqueTechniques visant à détruire, cacher ou falsifier des preuves : effacement de journaux, timestomping, wiping, suppression des clichés ou du journal USN.
Guides
- Preuves d'exécution : Prefetch, Amcache, BAM et autresProuver qu'un programme a tourné sous Windows, pas seulement existé : Prefetch, ShimCache, Amcache, BAM, UserAssist, SRUM, PCA, WER et 4688 comparés.
- Construire une super timeline avec PlasoConstruire et filtrer une super timeline Windows avec Plaso : options de log2timeline, psteal et psort, fuseaux, MACB, Timeline Explorer, CSV EZ Tools, pivots.