Qu'est-ce que le ProgramId Amcache ? (glossaire)
ProgramId est l'identité de 44 caractères qu'Amcache utilise pour une application logique. Elle est calculée à partir des métadonnées (nom, éditeur, version, langue), pas du contenu binaire. Deux binaires complètement différents avec les mêmes métadonnées d'identité reçoivent le même ProgramId ; le même binaire recompilé avec d'autres métadonnées en reçoit un différent.
0006fa0b2a9f8a4eb9d7c81e8b1f3c5d3e2a0000ffff
Deux choses le rendent utile en DFIR. Il est stable entre hôtes pour la même installation, et il relie un fichier dans InventoryApplicationFile à son enregistrement d'application dans InventoryApplication. Le premier en fait une primitive de hunt. Le second en fait une primitive d'investigation sur un seul hôte.
ProgramId vs FileId#
| FileId | ProgramId | |
|---|---|---|
| Longueur | 41 caractères ("0000" + SHA-1) |
44 caractères |
| Ce qu'il hache | 31 premiers MiB d'octets du fichier | Métadonnées d'application |
| Identifie un binaire de manière unique ? | Oui | Non, les frères le partagent |
| Stable inter-hôtes ? | Uniquement pour des octets identiques | Oui, pour la même installation |
| Le mieux pour | Inter-hôtes binaire exact | Inter-hôtes famille d'application |
Quand ProgramId gagne#
- L'attaquant reconstruit son loader entre hôtes. Octets différents,
Hashdifférents. Mêmes métadonnées nom / éditeur / version.ProgramIdsuit. - L'attaquant renomme
mimikatz.exeenupdate.exe. S'il n'a pas nettoyé la ressource version-info,ProgramIdsuit. - Vous voulez cadrer la diffusion sur le parc. Un
ProgramIdsuspect devient une requête contre le CSV Amcache de chaque hôte collecté. Voir Mouvement latéral et pivot par ProgramId.
Quand ProgramId est le mauvais pivot#
- LOLBINs.
net.exe,psexec.exe,certutil.exeont le mêmeProgramIdsur chaque hôte. Les matches sont du bruit. Pivotez plutôt sur la ligne de commande via Security 4688. - Implants par hôte. Du malware réellement par-victime produit un
ProgramIdunique par hôte. Pour ceux-là, il vous faut des patterns comportementaux (source de logon, télémétrie réseau).
Pour la référence longue, voir ProgramId Amcache expliqué.
Termes liés#
Articles liés
- Qu'est-ce que LinkDate dans Amcache ? (glossaire)
LinkDate est le PE TimeDateStamp. Contrôlable par l'attaquant. Utilisez-le pour le regroupement de builds, pas pour les chronologies d'hôte.
- Qu'est-ce que KeyLastWriteTimestamp dans Amcache ? (glossaire)
Le temps d'écriture registre de la clé Amcache. Ce qui se rapproche le plus de 'quand l'appraiser l'a enregistré'. Le champ que les nouveaux analystes confondent le plus souvent avec LinkDate.
- Qu'est-ce que Root\InventoryApplicationFile ? (glossaire)
La clé principale d'Amcache. Une sous-clé par PE inventorié par l'appraiser, avec hash, chemin, éditeur, date de lien et un horodatage d'écriture du registre. Là où passent 90 % du temps d'analyste.
- Qu'est-ce que le FileId Amcache ? (glossaire)
FileId, c'est '0000' plus le SHA-1 des 31 premiers MiB du fichier. Retirez le préfixe avant de taper VirusTotal, sinon il vous renverra rien en silence.