Qu'est-ce que le FileId Amcache ? (glossaire)
FileId, c'est "0000" suivi du SHA-1 des 31 premiers MiB du fichier. Quarante-et-un caractères. Vit dans Root\InventoryApplicationFile. L'un des champs individuels les plus utiles que le Compatibility Appraiser ait jamais écrits, et celui qui piège les nouveaux analystes plus souvent que tout autre.
0000da39a3ee5e6b4b0d3255bfef95601890afd80709
Deux pièges#
Le préfixe est un piège#
VirusTotal, les feeds de threat intel et votre allowlist interne veulent tous un SHA-1 hex de 40 caractères. Ils ne matcheront rien si vous incluez "0000". Ils ne vous le diront pas non plus. La réponse ressemble exactement à "nous n'avons jamais vu ce fichier". Retirez le préfixe.
AmcacheParser le gère pour vous en scindant la colonne en FileId (avec préfixe) et Hash (sans). Utilisez Hash.
La coupure à 31 MiB est un piège#
Le hash ne couvre que les 31 premiers MiB du fichier. Pour la plupart des binaires PE, c'est sans objet parce que presque tout est plus petit. Pour les gros installeurs, certains gros binaires de jeu et une bonne partie des logiciels d'entreprise, la valeur Amcache ne matchera pas un SHA-1 de fichier complet. Si VirusTotal ne renvoie pas de hits sur un installeur de 200 Mo, essayez de hacher les 31 premiers MiB et de chercher cela, ou hachez le fichier entier et cherchez le résultat. Souvent les deux coexistent dans l'index de VT parce que les deux ont été soumis à un moment donné.
Pour reproduire la même valeur :
import hashlib
def amcache_sha1(path):
h = hashlib.sha1()
with open(path, 'rb') as f:
h.update(f.read(31 * 1024 * 1024))
return h.hexdigest()Là où il gagne sa place#
- Triage VirusTotal sur chaque ligne suspecte.
- Chasses de hash inter-hôtes pour cadrer la diffusion (voir Mouvement latéral et pivot par ProgramId).
- Jointures Sysmon
7(Image Loaded). Sysmon enregistre le SHA-1 de chaque chargement de DLL. Faites correspondreHashauHashesde Sysmon et vous avez "quel processus a chargé la DLL de l'attaquant, et quand".
Pour la référence longue, voir FileId Amcache expliqué.
Termes liés#
Articles liés
- Qu'est-ce que le ProgramId Amcache ? (glossaire)
ProgramId est le hash d'identité d'application de 44 caractères qu'Amcache stocke. Stable entre hôtes pour la même installation. Attrape les recompilations et renommages que Hash rate.
- 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.