RecentDocs¶
Qu'est-ce que RecentDocs¶
L'Explorateur Windows stocke des listes de fichiers et dossiers récemment utilisés (MRU) dans le NTUSER.DAT de chaque utilisateur.
La liste racine couvre les éléments récents de tous types ; des sous-clés regroupent les extensions telles que .docx, ainsi qu'une
liste Folder. MRUListEx indique l'ordre des valeurs numérotées.
RecentDocs est utile pour identifier les documents avec lesquels un utilisateur a interagi, y compris des fichiers qui ont été supprimés ou déplacés par la suite. Les valeurs peuvent également contenir le nom du raccourci que Windows a utilisé dans le dossier Recent de l'utilisateur, ce qui permet une corrélation avec les preuves LNK.
Meilleure conclusion : l'Explorateur a enregistré l'élément dans la liste RecentDocs de cet utilisateur. L'heure de la clé ne date que l'élément le plus récent de cette liste précise.
Emplacement¶
Collectez NTUSER.DAT et ses journaux de transactions pour chaque profil pertinent, ainsi que le répertoire de fichiers LNK
Recent de l'utilisateur.
Précautions d'analyse¶
MRUListExfournit un ordre, et non un horodatage pour chaque élément.- L'heure de dernière écriture de la clé correspond à la mise à jour la plus récente ; seule la position MRU 0 reçoit un
LastOpenedUTCdéfendable qui en est dérivé. - Un élément peut apparaître dans la liste racine et dans une liste d'extension. Ne le comptez pas comme deux ouvertures.
- Le comportement des applications et de l'Explorateur peut varier ; certaines méthodes d'accès peuvent ne pas mettre à jour RecentDocs.
- Les outils de nettoyage/de confidentialité et les limites de taille des listes suppriment les preuves plus anciennes.
- Un nom de fichier peut être contrôlé par l'attaquant et ne prouve pas le type de contenu.
- L'utilisateur est déduit des chemins de profil ou des données de dossiers du shell ; examinez les noms d'utilisateur vides/ambigus.
Analyser avec Juntei¶
Usage: juntei parse-registry recent-docs <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 recent-docs -f NTUSER.DAT -o recentdocs.csv
juntei parse-registry recent-docs -d evidence/ -t jsonl \
| jq 'select(.Extension == ".docx" or .Extension == ".pdf")'
Champs de sortie¶
| Champ | Interprétation |
|---|---|
Host |
Hôte déduit du contexte de collecte/du système lorsque c'est possible. |
User |
Propriétaire du profil déduit du chemin ou des chemins de dossiers du shell ; conservez l'incertitude lorsqu'il est vide. |
SourcePath |
NTUSER.DAT d'entrée. Essentiel lors de la combinaison de plusieurs utilisateurs. |
Extension |
Sous-liste (.docx, Folder, etc.) ; nul pour la liste RecentDocs racine. |
MRU-Position |
Zéro correspond à l'élément le plus récent de cette liste. Il s'agit d'un ordre relatif, et non d'un temps écoulé. |
ValueIndex |
Valeur de Registre numérotée référencée par MRUListEx. Pivot structurel uniquement. |
Filename |
Nom de l'élément décodé. Corrélez le chemin complet via LNK, Jump List, MFT ou les données de l'application. |
LinkName |
Nom du raccourci encodé dans l'élément du shell, souvent présent dans le répertoire Recent de l'utilisateur. |
KeyLastWrittenUTC |
Heure de la dernière modification de la clé de liste. S'applique à la liste, et non à chaque ligne. |
LastOpenedUTC |
Renseigné uniquement pour la position MRU 0, pour laquelle l'heure de la clé étaye cette interprétation. |
ValueDataRaw |
Octets bruts lorsque le décodage échoue ou que la preuve doit être validée. |
TransactionLogStatus, LogsApplied |
Indique si les journaux du Registre ont été rejoués, et lesquels. |
Problems |
Valeurs MRU manquantes, valeurs non listées, types incorrects ou dommages de décodage. |
Stratégie d'investigation¶
- Séparez la liste racine et les listes d'extension de chaque utilisateur ; dédupliquez avec soin un même élément.
- Utilisez la position MRU pour l'ordre, et uniquement
LastOpenedUTCpour une affirmation horodatée. - Rapprochez
LinkName/Filenamedes données LNK Recent, des Jump Lists, de$MFTet de l'USN. - Examinez les noms leurres, les doubles extensions, les cibles réseau/amovibles et les documents proches de l'accès initial.
- Corrélez avec Prefetch/SRUM de l'application et les journaux d'événements lorsque l'exécution est en jeu.