RECmd: command line tool for Windows Registry analysis
During an incident response, a fast analysis could be required, often on systems that aren't the workstation usually used by the analyst.
So, I always suggest to create a small and simple toolkit that can be copied on a USB stick.
My own toolkit is mainly composed of command line tools with the smallest amount of requirements , and today i wanto to share a small cheatsheet for Eric Zimmerman's RECmd tool [1].
The tool
RECmd [3] is a command-line tool is useful to access, search and recover, and export any data found in the Windows registry.
Is the command-line version of GUI app RegistryExplorer [2], with wich it shares the same plugins.
However, the GUI version of the tool is larger than 60 Mb, while the command line version is only 6MB, very useful in a small, portable, toolkit.
A brief cheatsheet
Search the registry
Scan NTUSER.dat for the key name that contains "Skype":
RECmd.exe -f .\NTUSER.dat --sk Skype
Search UsrClass.dat for the key value that contains "Skype":
RECmd.exe -f .\UsrClass.dat --sd Skype
Scan the whole directory registry_files for the key value that contains "Skype", with last write time >= Startdate and containing either "AppName" or "DisplayName", without recover deleted keys (--recover false) and without replay and apply all registry hive logs automatically (--nl):
RECmd.exe --d "C:\Temp\registry_files\" --sk "Skype" --StartDate "02/01/202020 10:00:00" --RegEx --sv "(App|Display)Name" --recover false --nl
The Batch Mode
A really useful feature of RECmd is the Batch Mode: using the same plugins of Registry Explorer, it allows to export data from the plugin into a normalized, standard CSV output.
When a plugin is used to process a key or key/value, the data generated by the plugin are also saved out to a CSV for further analysis.
A batch file is composed by two section, an Header and a Keys section.
The Header
- Description: A general description of what this batch file is going to find
- Author: Name of this batch file (can be more, too, like contact information)
- Version: A version number that should be incremented as changes happen
- Id: A unique (across all other batch files) GUID (Global Unique Identifier) that identifies this batch file
The Keys section
Each key contains:
- Description: A user-friendly description of what this key will find. Can be anything from the key name to a friendlier description of what it means.
- HiveType: The type of hive this entry corresponds to. Valid choices are NTUSER, SAM, SECURITY, SOFTWARE, SYSTEM, USRCLASS, COMPONENTS, BCD, DRIVERS, AMCACHE, SYSCACHE
- KeyPath: The path to the key to look for
- ValueName: OPTIONAL value that, when present, is looked for under KeyPath
- Recursive: Whether or not to process KeyPath recursively
- Comment: Like Description in that you can add various things here that end up in the CSV
Example batch file:
Description: Sample RECmd batch file of a whole lot of stuff
Author: Eric Zimmerman
Version: 1
Id: ab13eb5f-31db-5cdc-83df-88ec12dc1a
Keys:
-
Description: Typed URLs
HiveType: NTUSER
Category: Browser history
KeyPath: Software\Microsoft\Internet Explorer\TypedURLs
Recursive: false
Comment: A comment about Typed URLs
-
Description: WordWheelQuery
HiveType: NTUSER
Category: User searches
KeyPath: Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery
Recursive: true
Comment: Dear lawyer, this is what a bad guy searched for
-
Description: Network MRU
HiveType: NTUSER
Category: Network shares
KeyPath: Software\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU
ValueName: MRUList
Recursive: false
Comment: An example limited to a key and value
-
Description: UserAssist
HiveType: NTUSER
Category: Execution
KeyPath: Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
Recursive: true
Comment: No comment
-
Description: Some non-existent key
HiveType: SYSTEM
Category: Fake
KeyPath: Software\Wizzo\john\doe
Recursive: true
Comment: this is only here to show you what will happen if a key isnt found!
-
Description: Some non-existent key 2
HiveType: NTUSER
Category: Fake
KeyPath: Software\Wizzo\john\doe
Recursive: true
Comment: Another non-existent key to keep you on your toes
-
Description: MountedDevices
HiveType: SYSTEM
Category: Devices
KeyPath: MountedDevices
Recursive: false
Comment: Drive info yo!
-
Description: MountedDevicesNope
HiveType: SYSTEM
Category: Devices
KeyPath: MountedDevicesNope
Recursive: false
Comment: So close
-
Description: Select current
HiveType: SYSTEM
Category: Devices
KeyPath: Select
ValueName: Current
Recursive: false
Comment: What is the current control set?
-
Description: Setup
HiveType: SYSTEM
Category: Devices
KeyPath: Setup
Recursive: false
Comment: The entire setup key + values