Everything you need to know about NTUSER.DAT forensics in one place. This article by DFIR expert Chris Ray explains what NTUser.dat is, its forensic importance, key artifacts, and so much more.
Let’s get into it
Jump to…
Introduction to NTUSER.DAT
Forensic Importance
Key Artifacts & Registry Locations
Parsing NTUSER.DAT
NTUSER.DAT Forensics with Cyber Triage
Common Challenges in NTUSER.DAT Forensics
Introduction to NTUSER.DAT
What is NTUSER.DAT?
NTUSER.DAT is a user-specific registry hive that stores configuration information, application settings, and user behavior artifacts. It is essentially a snapshot of a user’s environment and activities.
File Location and Lifecycle:
- Found at: C:\Users\[Username]\NTUSER.DAT
- Loaded into memory during user login and mapped to HKEY_CURRENT_USER (HKCU) in the Windows Registry.
- Unloaded and saved back to disk at user logoff or system shutdown, though updates can occur throughout the session.
Note: Newer MSIX based applications often have app specific hives for NTUser.dat. They exist at %localappdata%\Packages\<APPID>\SystemAppData\Helium with a name of User.dat. This means artifacts can be tied back to a specific app and user.
Why it matters:
NTUSER.DAT provides crucial insight into what users did on the system — which programs they ran, what files they accessed, which folders they opened, and how they interacted with the GUI. This makes NTUser.dat forensics a cornerstone in both incident response and criminal investigations.
Forensic Importance
Info | Notes |
---|---|
User Attribution | As a per-user hive, each NTUser.dat file is uniquely tied to an individual account. This supports the identification of which specific user performed certain actions and in some cases in which application for the case of app specific registry hives. |
Behavioral Analysis | NTUser.dat artifacts can tell a story about how a user interacts with the system over time — how often certain apps are used, whether removable devices were accessed, or what documents were recently opened. |
Malware & Persistence Analysis | NTUser.dat is a prime target for malware authors to establish persistence via startup keys. It’s also useful for identifying signs of compromise where malware executes within user context. |
Time-Based Correlation | This means the file type will not appear in the jump list data. For example, LibreOffice will not record a file being opened in the jump list if it has no extension or has a .exe extension — even if it’s just a text file. |
User Context vs. System Context | NTUser.dat reflects changes and activity initiated under the user context, as opposed to HKEY_LOCAL_MACHINE or system-wide settings. This distinction is critical for distinguishing user-driven activity from background processes. |
Evidence of Intent | Since NTUser.dat tracks voluntary user activity—such as typed paths, recently opened files, and executed applications—it can be especially powerful in investigations that require demonstration of intent or deliberate action. |
Key Artifacts & Registry Locations
UserAssist |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist |
Purpose |
Provides evidence of execution for .lnk files or PE files that have a GUI component |
Key Data |
Full path, execution count, last execution timestamp, focus time, focus count, and user initiating file execution |
Notes |
|
RunMRU |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU |
Purpose |
Provides evidence of execution for the last 26 commands typed by a user in the Windows run dialog box |
Key Data |
Exact path typed by user, command execution order, and execution time for most recent command |
Notes |
|
LastVistedMRU |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU |
Purpose |
Tracks application names along with the directory location of the last accessed file through a Windows common dialog |
Key Data |
Exe name, path to last accessed directory (per app), MRU order, and access time for most recently accessed folder. |
Notes |
|
OpenSaveMRU |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU |
Purpose |
Provides evidence of data access by recording the last 20 files accessed via an Open/Save dialog per extension |
Key Data |
Full path, execution count, last execution timestamp, focus time, focus count, and user initiating file execution |
Notes |
|
RecentDocs |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs |
Purpose |
Tracks recently accessed file/folders. The main key will record the last 150 file names accessed and then subkeys are broken up by extension and will record up to 20 file names (on newer systems) |
Key Data |
File name (no path), associated .lnk file name, MRU order, and last accessed time based on most recently accessed file per MRU. |
Notes |
|
OfficeMRU |
|
---|---|
Location |
|
Purpose |
Provides evidence of files accessed specifically through an office product (ex. Word, powerpoint, excel) |
Key Data |
Full path, application used to open the file, and last opened time |
Notes |
Check out our blog What is a Office MRU Artifact for more details on this artifact |
ShellBags |
|
---|---|
Location |
|
Purpose |
Provides evidence of folder existence and in certain scenarios folder accessed. Archive file references can be found here as well |
Key Data |
Full path, if folder was accessed, user related to access, MAC timestamps for folder, and in certain scenarios first/last access time |
Notes |
|
WordWheelQuery |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery |
Purpose |
Provides an ordered list of search terms users have searched for in the Explorer search dialog |
Key Data |
Search string, MRU order, search time for most the recent search |
Notes |
|
TypedPaths |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths |
Purpose |
Provides an ordered list of the last 26 paths typed into the File explorer address bar. Url1 represents the most recently typed path. |
Key Data |
Full path, order in which paths were typed, and time for most recently typed path |
Notes |
|
Run and RunOnce Keys |
|
---|---|
Location |
|
Purpose |
Lists programs set to automatically run at user logon |
Key Data |
Command and arguments that run at user logon |
Notes |
For more information on run keys and persistence, check out MITRE T1547.001 |
MountPoint2 |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 |
Purpose |
USB devices and network shares that the user has had access to |
Key Data |
Network share path or a device volume GUID |
Notes |
|
Terminal Server |
|
---|---|
Location |
NTUSER.DAT\Software\Microsoft\Terminal Server Client\Servers |
Purpose |
Outbound RDP connections |
Key Data |
Hostname, user account, MRU order, time for last RDP connection used |
Notes |
|
Installed Apps (User Specific) |
|
---|---|
Location |
NTUSNTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Uninstall |
Purpose |
Understand what applications users have installed |
Key Data |
Command and arguments that run at user logon |
Notes |
|
There are many other artifacts that can be parsed out of NTUser.dat hives such as application specific data (Ex. RMM and exfil tools). Some additional resources to find other artifacts of interest are:
- RegSeek: A repository of registry artifacts with a UI to make finding registry artifacts easier. Do a search for “hkcu\” to find all artifacts that are user specific
- RegRipper4: Popular registry parsing tool, by Harlan Carvey, with an extensive list of registry parsing plugins. Search for “ntuser\.dat” to find all plugins that pull artifacts from the hive.
- RECmd: Popular registry parsing tool, by Eric Zimmerman, with an extensive list of registry parsing artifacts scripted out. One example is Kroll_Batch with over 100 keys parsed out of the NTUser.dat hive.
Parsing NTUSER.DAT
There are many ways to access data in NTUser.dat. The key is understanding what each method is doing to ensure you do not miss any data. There are 2 main approaches to getting data from NTUser.dat:
Asking the System To Give You the Data |
|
---|---|
Advantage |
|
Disadvantage |
|
Tools |
|
Parsing the Registry Hive Using an External Tool |
|
---|---|
Advantage |
|
Disadvantage |
|
Tools |
|
If you’d like to dive further on this topic, check out our blog 2025 Guide to Registry Forensics Tools to get a better understanding of what the registry is, its format, and how its parsed by many popular tools. We have an extensive list of parsing libraries that many of the popular tools rely on and others can build off of.
NTUSER.DAT Forensics with Cyber Triage
Cyber Triage automates the processing and scoring of DFIR artifacts. We group data artifacts like UserAssist and OfficeMRU into information artifacts like Processes or data accessed to make analysis easier. However, if you want to focus on data artifacts we make that possible as well!
Some common data artifacts that Cyber Triage parses from NTUser.dat are:
- Terminal Server Client (outbound logons)
- Userassist (Process)
- RunMRU (Process/Data access)
- MountPoint2 (Network share)
- OfficeMRU (Data access)
- OpenSaveMRU (Data access)
- Run/Runonce and other registry based persistence (Triggered Tasks)




Common Challenges in NTUSER.DAT Forensics
Challenge | Notes |
---|---|
“Dirty Hive” |
|
Data interpretation |
|
Timestamp Inconsistency |
|
Missing Artifacts |
|
We hope this blog post helped you better understand NTUser.dat forensics and the insight investigators can gain by accessing NTUser.dat’s data.
If you’d like to see Cyber Triage parsing artifacts from NTUser.dat for yourself, you can.