Qu'est-ce que le ProgramId Amcache ? (glossaire)
ProgramId est le hash d'identité applicative de 44 caractères
qu'Amcache attribue à chaque application logique. Contrairement à FileId,
qui hache le contenu du fichier, ProgramId hache les métadonnées de
l'application — nom, éditeur, version et langue.
Une valeur typique :
0006fa0b2a9f8a4eb9d7c81e8b1f3c5d3e2a0000ffff
Deux propriétés rendent ProgramId précieux en DFIR :
- Stable entre les hôtes. Le même build Office 365 sur deux
postes différents obtient le même
ProgramId. - Relie les enregistrements de fichiers aux enregistrements d'applications. Un fichier dans
Root\InventoryApplicationFileet l'application parente dansRoot\InventoryApplicationpartagent la valeur.
En quoi il diffère de FileId#
| FileId | ProgramId | |
|---|---|---|
| Longueur | 41 car. ("0000" + SHA-1) |
44 car. |
| Hache | 31 premiers Mio des octets du fichier | Métadonnées de l'application |
| Unique par binaire | Oui | Non — partagé entre frères |
| Unique par hôte | Non | Non — stable inter-hôtes |
| Usage de pivot | Binaire exact inter-hôtes | Famille d'application inter-hôtes |
Quand ProgramId gagne#
- Outils recompilés avec même identité. Un attaquant recompile
son loader entre les hôtes —
Hashdiffère,ProgramIdreste le même. - Binaires renommés.
mimikatz.exe→svchost64.exe→update.exe. Si l'attaquant n'a pas effacé la ressource d'info de version PE,ProgramIdsuit le binaire à travers les renommages. - Cadrage inter-hôtes. Un seul
ProgramIdsuspect sur un hôte devient une requête contre l'Amcache de tous les autres hôtes collectés. Voir Mouvement latéral et pivot ProgramId Amcache.
Quand ProgramId est le mauvais pivot#
- Binaires Living-off-the-land.
net.exe,psexec.exeetcertutil.exepartagent le mêmeProgramIdsur tous les hôtes qui les ont. Pivotez sur la ligne de commande à la place. - Implants par hôte. Les malwares vraiment par victime produisent des
valeurs
ProgramIduniques par hôte. Utilisez des modèles comportementaux (logon 4624, indicateurs réseau) pour ceux-ci.
Pour la référence complète de ProgramId, voir
ProgramId Amcache expliqué.
Termes apparentés#
- FileId — l'identifiant de hash de contenu.
- InventoryApplicationFile — où ProgramId est stocké.
- Amcache.hve — la ruche.
Articles liés
- Qu'est-ce que LinkDate dans Amcache ? (glossaire)
LinkDate est le TimeDateStamp de l'en-tête PE qu'Amcache enregistre — quand le binaire a été compilé ou linké, pas quand il est apparu sur l'hôte.
- Qu'est-ce que KeyLastWriteTimestamp dans Amcache ? (glossaire)
KeyLastWriteTimestamp est l'heure de dernière écriture au niveau registre d'une entrée Amcache — ce qui se rapproche le plus, dans Amcache, de « quand l'appraiser a enregistré ce fichier ».
- Qu'est-ce que Root\InventoryApplicationFile ? (glossaire)
InventoryApplicationFile est la clé de registre principale d'Amcache — une sous-clé par binaire PE inventorié par l'appraiser, avec chemin, SHA-1, éditeur, date de link et horodatages.
- Qu'est-ce que le FileId Amcache ? (glossaire)
FileId est l'identifiant de 41 caractères qu'Amcache stocke pour chaque fichier — '0000' + le SHA-1 hex des 31 premiers Mio du fichier.