Aller au contenu

Exécution

Amcache.hve

Fiche 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.

Emplacement
C:\Windows\AppCompat\Programs\Amcache.hve
Prouve
Un binaire était présent (chemin, SHA-1, métadonnées PE) ; souvent, pas toujours, qu'il a tourné
Horodatages
LastWrite de la clé de chaque entrée en FILETIME, UTC ; LinkDate PE (compilation, UTC) ; InstallDate en chaîne au format variable selon le build
Rétention
Pas de limite fixe ; entrées purgées une fois le fichier absent et la ruche rafraîchie par un inventaire ; LastWrite modifiés en masse par des tâches planifiées
Accès
Administrateur ; ruche verrouillée à chaud : collecter avec ses fichiers .LOG via NTFS brut (KAPE) ou un cliché instantané
Preuve de
Exécution
Type
Registre
Windows
Vista / 78 / 8.11011
Cible KAPE
Amcache
Velociraptor
Windows.Triage.Targets:Amcache

Présentation

Amcache.hve est une ruche de registre autonome tenue par les composants Application Experience (le Microsoft Compatibility Appraiser et les tâches d'inventaire associées). Elle conserve un inventaire des exécutables, programmes installés, pilotes, raccourcis et périphériques vus par Windows. Son atout majeur pour l'enquêteur est le SHA-1 de chaque exécutable inventorié, qui subsiste même après la suppression du binaire.

Elle a remplacé RecentFileCache.bcf : introduite avec Windows 8, elle a été ajoutée à Windows 7 par des mises à jour de compatibilité.

Emplacement

Version de WindowsCheminRemarques
7 (avec mises à jour de compatibilité) / 8 / 8.1C:\Windows\AppCompat\Programs\Amcache.hveAncienne structure : Root\File\{GUID du volume}\<référence de fichier> et Root\Programs
10 / 11C:\Windows\AppCompat\Programs\Amcache.hveLes versions récentes utilisent la structure Root\Inventory*
ToutesAmcache.hve.LOG1, Amcache.hve.LOG2Journaux de transactions à rejouer pour obtenir une ruche cohérente

La ruche est verrouillée pendant que Windows tourne : collectez-la par accès NTFS brut ou depuis un cliché instantané.

Ce que l'artefact prouve

  • La présence d'un binaire précis à un chemin précis, avec son SHA-1, sa taille, ses informations de version et sa date de liaison (compilation) PE.
  • Les programmes installés (InventoryApplication) avec éditeur, date d'installation et commande de désinstallation, y compris des logiciels supprimés depuis.
  • Les pilotes (InventoryDriverBinary) avec leur statut de signature : utile pour les rootkits et l'abus de pilotes vulnérables.
  • L'exécution, seulement avec corroboration. Les travaux publiés (notamment l'analyse d'Amcache de l'ANSSI en 2019) ont montré que des entrées sont aussi créées par les passes d'inventaire des logiciels installés : une entrée Amcache seule ne prouve pas que le fichier a été lancé. Associez-la au Prefetch, à BAM ou aux journaux d'événements.

Champs clés

Structure récente (Root\InventoryApplicationFile\<nom|id>) :

ValeurSignification
LowerCaseLongPathChemin complet du fichier, en minuscules
FileId0000 suivi du SHA-1 du fichier
Name, OriginalFileNameNom sur disque et nom issu des informations de version PE (les outils renommés ressortent)
Publisher, Version, BinFileVersion, ProductNameChaînes d'informations de version
SizeTaille du fichier en octets
LinkDateDate de compilation de l'en-tête PE (modifiable par l'attaquant)
ProgramIdRelie le fichier à une entrée InventoryApplication
IsOsComponentIndique si Windows le considère comme un composant du système

Autres clés utiles : InventoryApplication (programmes installés), InventoryApplicationShortcut (raccourcis du menu Démarrer), InventoryDriverBinary et InventoryDriverPackage (pilotes), InventoryDevicePnp (périphériques Plug-and-Play, dont l'USB).

Ancienne structure (Root\File\...) : valeurs numérotées, par exemple 15 = chemin complet, 101 = SHA-1, 0 = nom du produit, 1 = société.

Horodatages

HorodatagePositionné quandFormatPièges
LastWrite de la clé de chaque fichierCréation ou mise à jour de l'entrée lors d'un inventaireFILETIME, UTCSouvent proche de la première exécution, mais bouge aussi lors d'un nouvel inventaire : à lire comme « vu par Windows le »
LinkDateDate de compilation dans l'en-tête PEChaîne UTCFalsifiable ou mise à zéro ; ce n'est pas une date du système de fichiers
InstallDate (InventoryApplication)Installation du programme enregistréeChaîne, format variable selon les versionsÀ recouper avec la clé Uninstall de la ruche SOFTWARE
DriverLastWriteTimeDernière modification du fichier piloteUTCDécrit le fichier pilote, pas un chargement

Rétention et effacement

  • Il n'y a pas de plafond fixe d'entrées ; les entrées disparaissent lorsque le fichier ou le programme correspondant n'existe plus et qu'un inventaire ultérieur rafraîchit la ruche. Les binaires supprimés peuvent donc subsister un temps, mais pas indéfiniment.
  • La ruche est réécrite par des tâches planifiées de compatibilité, qui peuvent mettre à jour les LastWrite en masse.
  • Le SHA-1 est calculé sur les 31 457 280 premiers octets (30 Mo) du fichier. Pour un fichier plus gros, il ne correspondra pas au SHA-1 du fichier complet.
  • Supprimer ou remplacer Amcache.hve est possible avec des droits administrateur ; cherchez des trous et la suppression dans le journal USN.

Collecte

  • Cible KAPE : Amcache (ruche, fichiers .LOG* et fichiers *.db voisins)
  • Velociraptor (Windows.Triage.Targets) : Amcache
  • Commandes natives : le fichier est verrouillé, copiez-le depuis un cliché instantané.
vssadmin list shadows
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\AppCompat\Programs\Amcache.hve* E:\case\

Outils d'analyse

  • AmcacheParser (Eric Zimmerman) : AmcacheParser.exe -f Amcache.hve --csv E:\out -i exporte chaque clé d'inventaire en CSV ; -i inclut les entrées associées à des programmes.
  • Registry Explorer (Eric Zimmerman) : vue interactive avec rejeu des journaux de transactions.
  • RegRipper : plugin amcache pour un rapport texte rapide.
  • Velociraptor : Windows.Forensics.Amcache et Windows.Detection.Amcache sur les postes en direct.

Conseils d'investigation

  • Pivotez sur le SHA-1 : cherchez le hash dans vos sources de renseignement et sur tout le parc ; le même hash sous un autre nom révèle un outil renommé.
  • Comparez Name et OriginalFileName : un svchost.exe dont le nom d'origine est procdump est une piste sérieuse.
  • Cherchez les exécutables dans des chemins accessibles en écriture (\Users\Public\, \ProgramData\, \AppData\Local\Temp\) et les pilotes non signés dans InventoryDriverBinary.
  • Amcache n'attribue rien à un utilisateur : combinez-le avec BAM/DAM ou UserAssist pour identifier le compte.
  • Quand le binaire a disparu, le SHA-1 et le chemin permettent encore de rattacher le dossier à un fichier récupéré ailleurs ($MFT, Corbeille).

Artefacts liés

Termes du glossaire

Guides

Tous les artefacts sur une page : aide-mémoire