<SYSTEMDRIVE>:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\<APP_ID>.automaticDestinations-ms
CustomDestinations:
<SYSTEMDRIVE>:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\<APP_ID>.customDestinations-ms
Overview
Introduced in Windows 7, Jumplists are linked to a taskbar user
experience-enhancing feature that allows users to “jump” to files, folders
or others elements by right-clicking on open applications in the Windows
taskbar. The Windows Explorer’s Quick Access feature also stores entries
in Jumplists.
Two forms of Jumplists are created:
-
automatic entries for recently accessed items, stored in
*.automaticDestinations-msfiles. -
custom entries in
*.customDestinations-msfiles for items manually “pinned” elements (by users or the applications themselves) to theWindows taskbaror an application’sJumplist.
Each application AutomaticDestinations and CustomDestinations JumpLists
information is thus stored in two unique and separated files, of different
format:
-
AutomaticDestinationsJumpListsfiles are stored asAUTOMATICDESTINATIONS-MSfile, in theMS OLE Structured Storageformat. This file format notably contains aDestListstream that acts as aMost Recent Used (MRU)list ofshortcut files (.LNK). Each entry in an applicationAutomaticDestinationsJumpListis stored as an entry in theDestListstream, composed of metadata and aLNK-like structure. -
CustomDestinationsJumpListsare stored asCUSTOMDESTINATIONS-MSfile, also assimilable to a series ofshortcut files.
Applications may handle Jumplists differently, with different entries being
created/updated on different actions by specific applications.
Information of interest
As JumpLists are linked to an application, through an AppId, knowledge of
the application that was used to open the files can be deducted if the
application associated to the AppId is known. A number of AppId are
documented in
EricZimmerman ‘s JumpList GitHub repository.
JumpLists hold information similar in nature to shortcut files for each
file referenced in an application’s AutomaticDestinations /
CustomDestinations JumpLists:
-
the target file’s absolute path, size and attributes (hidden, read-only, etc.).
-
the target file
Modified, Access, and Birthtimestamps, updated whenever the file is “jumped” to. -
the number of times the target file was “jumped” to.
-
Whether the target file was stored locally or on a remote network share through the specification of a
LocalPathorNetworkPath. -
For
AutomaticDestinationsJumpLists(only), each entry is also associated with two additional timestamps: the created and last modified timestamps of the entry in theDestListstream. The last modified timestamp is updated whenever the entry is interacted with (file opened,RDPsession established, etc.). The created timestamp does not however appear to be reliable. -
Occasionally information on the volume that stored the target file: drive type (fixed vs removable storage media), serial number, and label / name if any.
-
Occasionally information on the host on which the shortcut file is present: system’s NetBIOS hostname and MAC address.
The timestamps of the AutomaticDestinations and CustomDestinations
JumpList files themselves can be an indicator of when the application
associated with the JumpList file was interacted with, depending on how the
application handles and makes use of JumpLists:
-
The birth timestamp of the
JumpListfiles can be an indicator of when the application was first executed (by the user associated with theJumpListfiles), if the application automatically populatesJumpListitems upon its first launch. -
The last write timestamp is an indicator of when the
AutomaticDestinationsorCustomDestinationsJumpListswere last updated. For applications that automatically and regularly update theirJumpLists, this can be an indicator of when the application was last used (by the user associated with theJumpListfiles).
Specific applications may define custom JumpLists entries that store
information of forensic interest. For example, the Google Chrome and
Microsoft Edge web browsers store the recently closed tabs in their
respective CustomDestinations JumpLists.
Remote Desktop Connection mstsc.exe
Remote desktop connections made using the Windows built-in
Microsoft Terminal Server Client client (mstsc.exe)
will generate an entry in the AutomaticDestinations JumpList. An entry is
only created/updated if the RDP session was successfully authenticated and
established (even if Network Level Authentication (NLA) is disabled). The
entries will be associated with the application identifier 1bc392b8e104a00e.
The DestList last modified timestamp indicates the last time the connection
with the remote host was successfully established.
The arguments in the entry for a given connections will reference the remote
host by hostname or IP address (/v:"<HOSTNAME | IP>") or the RDP File used
for the connection ("<PATH>\<FILE>.rdp").
Tool(s)
Eric Zimmerman’s JumpListExplorer
and JLECmd tools can be used to
process JumpLists files.
Associated KAPE compound module: JLECmd.
# Parses the specified JumpLists file.
JLECmd.exe [-q --csv <CSV_DIRECTORY_OUTPUT>] -f <JUMPLIST_FILE>
# Recursively retrieves and parses the JumpLists files in the specified directory.
JLECmd.exe [-q --csv <CSV_DIRECTORY_OUTPUT>] -d <C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Recent\ | C:\ | DIRECTORY>
References
View on GitHub