Microsoft Office (fichiers récents, documents approuvés, paramètres des macros)¶
Ce qu'Office enregistre¶
Microsoft Office conserve, par utilisateur dans NTUSER.DAT, et par version et par application :
- Fichiers et emplacements récents :
File MRU, les documents ouverts par une application, etPlace MRU, les dossiers à partir desquels elle les a ouverts, chaque élément étant accompagné de l'heure de sa dernière ouverture. Microsoft 365 conserve également une liste par compte connecté (User MRU\<account>). - Documents approuvés : lorsqu'un utilisateur clique sur Activer la modification ou Activer le contenu pour un document,
Office le mémorise dans
TrustRecords: le chemin du document, la date à laquelle il a été approuvé, et si ses macros ont été activées. - Paramètres des macros :
VBAWarnings(quelles macros s'exécutent),BlockContentExecutionFromInternet(si les macros des fichiers provenant d'Internet sont bloquées),AccessVBOM(si les programmes peuvent modifier les projets VBA) et les emplacements approuvés, des dossiers dont les macros des documents s'exécutent sans demande de confirmation. La stratégie de groupe peut définir les mêmes paramètres sousSoftware\Policies.
Un document malveillant nécessite généralement que l'utilisateur active ses macros : un enregistrement d'approbation dont les macros ont été activées relie le document, l'utilisateur et une heure.
Meilleure conclusion : l'utilisateur a ouvert ce document dans cette application (et pour la dernière fois à cette heure) ; l'utilisateur a activé la modification ou les macros de ce document à cette heure ; Office était configuré pour exécuter les macros de cette façon.
Emplacement¶
C:\Users\<user>\NTUSER.DAT
Software\Microsoft\Office\<version>\<application>\File MRU Item 1, Item 2, …
Software\Microsoft\Office\<version>\<application>\Place MRU
Software\Microsoft\Office\<version>\<application>\User MRU\<account>\File MRU
Software\Microsoft\Office\<version>\<application>\Security\Trusted Documents\TrustRecords
Software\Microsoft\Office\<version>\<application>\Security VBAWarnings, …
Software\Microsoft\Office\<version>\<application>\Security\Trusted Locations\LocationN
Software\Policies\Microsoft\Office\<version>\<application>\Security by policy
Versions : 16.0 correspond à Office 2016 et versions ultérieures (2019, 2021, 2024, Microsoft 365), 15.0 à Office 2013,
14.0 à Office 2010, 12.0 à Office 2007.
Un élément ressemble à [F00000000][T01D86AF6D3C287B0][O00000000]*C:\Users\alice\report.docx : T
est l'heure de dernière ouverture (un FILETIME en hexadécimal), le chemin suit *. Un enregistrement d'approbation fait 24
octets : le FILETIME auquel le document a été approuvé, puis ses indicateurs dans les 4 derniers octets, 0x7FFFFFFF
lorsque ses macros ont été activées et 0x00000001 lorsque seule sa modification l'a été.
Précautions d'analyse¶
- Horodatages.
LastOpenedUTCest l'heure propre à chaque élément.TrustedAtUTCcorrespond au moment où l'utilisateur a approuvé le document, c'est-à-dire l'instant où il a cliqué sur Activer la modification ou Activer le contenu, ce qui peut être antérieur à l'ouverture la plus récente. - Macros activées, et non exécutées.
MacrosEnabledindique que l'utilisateur a activé les macros du document ; cela ne prouve pas qu'une macro s'est exécutée ni ce qu'elle a fait. Corrélez avec la création de processus, Prefetch, les journaux PowerShell et le document lui-même. - Chemins tels qu'Office les stocke. Les enregistrements d'approbation désignent le document par un chemin qui peut utiliser
%USERPROFILE%, des barres obliques, une URLfile:///et un encodage d'URL (%20). Les éléments MRU des documents dans le cloud sont des URL. - Valeurs par défaut et stratégie effective. Office crée des emplacements approuvés par défaut (
Templates,XLSTART,STARTUP, …). LaDated'un emplacement est un indice utile, et non une preuve de l'identité de son créateur : des administrateurs, des scripts, des stratégies et des paramètres de Registre copiés peuvent également le renseigner. L'absence deVBAWarningsne permet pas à elle seule d'établir la stratégie effective des macros. La version d'Office, le marquage des fichiers provenant d'Internet et d'autres paramètres de gestion comptent également. Microsoft explique le blocage des macros provenant d'Internet. - Documents supprimés. Les listes survivent aux documents ; un fichier absent peut encore apparaître ici. Les listes sont courtes et sont effacées par la commande Effacer les éléments non épinglés d'Office et par les outils de nettoyage.
Analyser avec Juntei¶
Usage: juntei parse-registry office <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find NTUSER.DAT hives
-f, --file <FILE> Parse one NTUSER.DAT
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry office -d evidence/ -o office.csv
juntei parse-registry office -f NTUSER.DAT -t jsonl | jq 'select(.MacrosEnabled == true)'
Le résumé répertorie les documents dont les macros ont été activées, les paramètres qui permettent aux macros de s'exécuter plus
librement (VBAWarnings 1, BlockContentExecutionFromInternet 0, AccessVBOM 1,
AllowNetworkLocations 1), les emplacements approuvés ajoutés par les utilisateurs ou définis par une stratégie, ainsi que les documents
ouverts en dernier.
Champs de sortie¶
| Champ | Interprétation |
|---|---|
Host, User, UserSID, SourcePath |
L'hôte, le propriétaire du profil (d'après le chemin ou les dossiers du shell), le SID provenant du ProfileList du système, et la ruche. |
OfficeVersion, App |
La clé de la version (16.0) et l'application (Word, Excel, …). |
List |
File MRU, Place MRU, TrustRecords, Security ou Trusted Locations. |
Account |
Le compte Microsoft 365 d'une liste User MRU. |
Policy |
Si le paramètre ou l'emplacement est défini par une stratégie. |
MRU-Position, IsMostRecent |
La position d'un élément dans sa liste (Item 1 vaut 0, le plus récent). |
Path |
Le document ou le dossier ; le chemin d'un document approuvé tel que stocké ; le Path d'un emplacement approuvé. |
LastOpenedUTC |
La dernière ouverture de l'élément. |
TrustedAtUTC, MacrosEnabled, TrustFlags |
La date d'approbation du document, si ses macros ont été activées, et les indicateurs de l'enregistrement. Des indicateurs inconnus laissent MacrosEnabled vide et produisent un diagnostic. |
Setting, Value |
Un paramètre de macros et sa valeur, avec sa signification (1 (all macros enabled)) ; la clé d'un emplacement approuvé (Location3) et ses autres valeurs (AllowSubFolders=1; Date=…; Description=…). |
KeyPath, KeyLastWrittenUTC |
La clé et sa dernière écriture. |
DataRaw |
Les octets de la valeur (en hexadécimal) lorsqu'ils ne se décodent pas. |
TransactionLogStatus, LogsApplied |
Contexte de récupération du Registre. |
Problems |
Éléments sans * ou dont l'heure n'en est pas une, enregistrements d'approbation qui ne font pas 24 octets, emplacements sans Path, types incorrects. |
Stratégie d'investigation¶
- Commencez par les enregistrements dont
MacrosEnabledvaut true : les documents, quand, et par qui. Retrouvez les fichiers ($MFT, Journal USN,Zone.Identifier), leur provenance (historique du navigateur et de la messagerie) et ce qui s'est exécuté ensuite. - Examinez les paramètres des macros et les emplacements approuvés : toutes les macros activées, les macros provenant d'Internet non
bloquées, l'accès aux projets VBA ou un emplacement ajouté par l'utilisateur (dans
Downloads,Temp, un partage réseau) affaiblissent les valeurs par défaut. - Placez
LastOpenedUTCsur la chronologie avec les fichiers LNK, les Jump Lists et RecentDocs pour les chemins des documents, y compris les emplacements amovibles et réseau.