Windows registry in forensic analysis
Windows registry contains information that are helpful during a forensic analysis
Windows registry is an excellent source for evidential data, and knowing the type of information that could possible exist in the registry and location is critical during the forensic analysis process.
Let’s analyze the main keys…
Recent opened Programs/Files/URLs
MRU is the abbreviation for most-recently-used.
This key maintains a list of recently opened or saved files via Windows Explorer-style dialog boxes (Open/Save dialog box).
For instance, files (e.g. .txt, .pdf, htm, .jpg) that are recently opened or saved files from within a web browser are maintained.
Documents that are opened or saved via Microsoft Office programs are not maintained.
Whenever a new entry is added to OpenSaveMRU key, registry value is created or updated in
This key correlates to the previous OpenSaveMRU key to provide extra information: each binary registry value under this key contains a recently used program executable filename, and the folder path of a file to which the program has been used to open or save it.
The list of files recently opened directly from Windows Explorer are stored into
This key corresponds to %USERPROFILE%Recent (My Recent Documents) and contains local or network files that are recently opened and only the filename in binary form is stored.
The list of entries executed using the Start>Run command in mantained in this key:
If a file is executed via Run command, it will leaves traces in the previous two keys OpenSaveMRU and RecentDocs.
Deleting the subkeys in RunMRU does not remove the history list in Run command box immediately.
By using Windows “Recent Opened Documents” Clear List feature via Control Panel>Taskbar and Start Menu, an attacker can remove the Run command history list.
In fact, executing the Clear List function will remove the following registry keys and their subkeys:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU HKCU\Software\Microsoft\Internet Explorer\TypedURLs HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
This key contains two GUID subkeys: each subkey maintains a list of system objects such as program, shortcut, and control panel applets that a user has accessed.
Registry values under these subkeys are weakly encrypted using ROT-13 algorithm which basically substitutes a character with another character 13 position away from it in the ASCII table.
This key contains a listing of 25 recent URLs (or file path) that is typed in the Internet Explorer (IE) or Windows Explorer address bar: the key will only show links that are fully typed, automatically completed while typing, or links that are selected from the list of stored URLs in IE address bar.
Websites that are accessed via IE Favorites are not recorded, and if the user clears the URL history using Clear History via IE Internet Options menu, this key will be completely removed.
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
This key maintains the configuration of Windows virtual memory: the paging file (usually C:pagefile.sys) may contain evidential information that could be removed once the suspect computer is shutdown.
This key contains a registry value called ClearPagefileAtShutdown which specify whether Windows should clear off the paging file when the computer shutdowns (by default, windows will not clear the paging file).
During a forensic analysis you should check this value before shutting down a suspect computer!
This key contains recent search terms using Windows default search.
There may be up to four subkeys:
- 5001: Contains list of terms used for the Internet Search Assistant
- 5603: Contains the list of terms used for the Windows files and folders search
- 5604: Contains list of terms used in the “word or phrase in a file” search
- 5647: Contains list of terms used in the “for computers or people” search
All programs listed in Control Panel>Add/Remove Programs correspond to one subkey into this key:
Subkeys usually contains these two common registry values:
- DisplayName — program name
- UninstallString — application Uninstall component’s file path, which indirectly refers to application installation path
Other possible useful registry values may exist, which include information on install date, install source and application version.
The list of mounted devices, with associated persistent volume name and unique internal identifier for respective devices is contained into
This key lists any volume that is mounted and assigned a drive letter, including USB storage devices and external DVD/CDROM drives.
From the listed registry values, value’s name that starts with “DosDevices” and ends with the associated drive letter, contains information regarding that particular mounted device.
Similar informations are contained also in
which is located under the respective device GUID subkey and in the binary registry value named Data.
This key is a point of interest during a forensic analysis: the key records shares on remote systems such C$, Temp$, etc.
The existence of ProcDump indicates the dumping of credentials within lsass.exe address space. Sc.exe indicates the adding of persistence such as Run keys or services. The presence of .rar files may indicate data exfiltration.
The history of recent mapped network drives is store into
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU
In addition, permanent subkey (unless manually removed from registry) regarding mapped network drive is also created in
and the subkey is named in the form of ##servername#sharedfolder.
contains addition information about list of mounted USB storage devices, including external memory cards.
When used in conjunction with two previous keys will provide evidential information.
There are different keys related to automatic run of programs.
This first key usually contains programs or components paths that are automatically run during system startup without requiring user interaction: malware usually leaves trace in this key to be persistent whenever system reboots.
RunOnce and RunOnceEx (only Win98/Me)
These keys identifies programs that run only once, at startup and can be assigned to a specific user account or to the machine:
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
RunServices and RunServicesOnce
Can control automatic startup of services.
They can be assigned to a specific user account or to a computer:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Services HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Services HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ServicesOnce HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ServicesOnce
Command Processor Autorun
This key contains command that is automatically executed each time cmd.exe is run:
HKLM\SOFTWARE\Microsoft\Command Processor HKCU\Software\Microsoft\Command Processor
Modification to this key requires administrative privilege.
Usually malware exploits this feature to load itself without user’s knowledge.
This key has a registry value named Shell with default data Explorer.exe.
Malware appends the malware executable file to the default value’s data to stay persistence across system reboots and logins (modification to this key requires administrative privilege).
This key contains list of Windows services:
Each subkey represents a service and contains service’s information such as startup configuration and executable image path.
For more information about malware persistence techniques, please refer to my previous article:
This key allows administrator to map an executable filename to a different debugger source, allowing user to debug a program using a different program:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
Modification to this key requires administrative privilege.
This feature could be exploited to launch a completely different program under the cover of the initial program.
This key contains instruction to execute any .exe extension file:
Normally, this key contains one default value with data “%1” %*, but if the value’s data is changed to something similar to somefilename.exe “%1” %* , investigator should suspect some other hidden program is invoked automatically when the actual .exe file is executed.
Malware normally modify this value to load itself covertly
This technique apply to other similar keys, including:
Windows Protect Storage
Protected Storage is a service used by Microsoft products to provide a secure area to store private information.
Information that could be stored in Protected Storage includes for example Internet Explorer AutoComplete strings and passwords, Microsoft Outlook and Outlook Express accounts’ passwords.
Windows Protected Storage is maintained under this key:
HKCU\Software\Microsoft\Protected Storage System Provider
Registry Editor hides these registry keys from users viewing, including administrator.