Monday, March 31, 2014

Daily Blog #281: Sunday Funday Winner 3/30/14

Hello Reader,
          This week's sunday funday challenge was an interesting experiment for me. I think most of us are using at least one if not all three of these tools so I thought the common knowledge would be there to allow most of you a shot at this. What I didn't expect was the level of depth the answers went to in responding!


The Challenge:
Compare the following registry forensic tools; Registry Decoder, RegRipper and Yaru and document the following:
1. What do they do differently
2. What approach do they take to registry analysis

The Winning Answer:
 Harlan Carvey
None of the tools perform analysis, per se.  While each tool provides some means for allowing data to be accessed and searched, it is still up to the analyst to actually interpret the data within the context of their examination goals.

-- Yaru --
Yaru is a GUI-based Registry browsing tool from TZWorks.net, and runs on 32- and 64-bit Windows and Linux, and on 64-bit MacOSX.   On Windows, Yaru can snapshot the hives on a running system and allow the analyst to examine them.

Yaru will index a hive, allowing the analyst to see deleted keys and values, as well as unallocated space within the hive file itself.  It will also show cell slack space, as well.  Yaru also allows the analyst to run a "cmd" file (which is apparently a "user defined template"), generate some simple reports, extract password hashes (with the proper
hives loaded, of course).

For analysts used to using tools such as the native RegEdit, and MiTeC's WRR, the interface can take some getting used to.  When a key is clicked on, the content view visible in the right-hand pane is different from what one may be used to.  The key LastWrite time, for example, is referred to as "Timestamp", and is displayed along
with the owner and group SIDs, the key DACL, and the values along with their type and data.

Via the Options menu option, an analyst can search either the allocated or unallocated space, for strings, patterns,etc.

Unlike MiTeC's WRR, Yaru is capable of parsing "big data", that is, value data that is larger than 2K - 3K in size.  A different data structure is used for this type of value data.  However, at the moment, it appears that the only value that uses this data type is the AppCompatCache value.

-- Registry Decoder --
I had not used Registry Decoder until today, and I started with the Google Code site.  I found that most of the links to information about the tool at the digitalforensicssolutions.com site are broken; that is, most of the pages no longer exist.

According to the FAQ at the Google Code site, Registry Decoder appears to have a number of capabilities. The tool consists of two components, one for accessing a live or "online" system, and another for accessing acquired images (physical or logical/partition), including split and .E0x format images.

Registry Decoder provides the analyst with the ability to browse and search loaded hives, perform hive 'diffs',  timelining, and it can generate reports, in PDF, HTML, CSV, and XLS formats.

Registry Decoder also includes case management capabilities, in that when launched, it asks the analyst if they want to create a new case, or open an existing case.  Once the case is loaded and "evidence" can be accessed, the analyst can run a number of plugins (most seem to apparently be replicated from RegRipper plugins).  The plugins
do not appear to be open source, but instead appear to be contained in the executable file itself.  When a plugin is run, the results are presented in a tab in the GUI, and reports can be generated from there.

Registry Decoder appears to have last been updated on 25 Sept 2012.

-- RegRipper --
RegRipper is completely open source; downloading the .zip archive includes not only the Windows EXE and DLL files necessary to run the RegRipper GUI, as well as the companion rip.pl/.exe command line tool, but the source .pl files for both, as well.  The command line component of RegRipper can be run on Linux and MacOSX systems,
albeit with minor modifications to the code that is currently publicly available to address path issues (fix will be included in the next release).  In fact, RegRipper has been incorporated into several Linux-based DFIR CDs, to include SANS SIFT.

RegRipper is not a viewer tool, nor was it intended to be.  It is a tool for running specific plugins against hive files in order to extract and if necessary, decode, information from specific keys and values within the hive.  RegRipper was designed to work against individual hive files, which can be selected through the RegRipper GUI.  Users will
also select a 'profile' (group of plugins) to run against a hive file, and the report (as well as a log of activity) is generated in text format, so that it can be easily searched.  Hives can be accessed on remote systems via the use of tools such as F-Response, and hives within VSCs can be accessed once the VSC itself has been exposed
via some other means.  RegRipper ships with a number of default 'profiles', one for each hive type; however, the profiles themselves are open source, and analysts can create their own, specific profiles.  The CLI RegRipper component, rip, allows the analyst to run either profiles or individual plugins against hive files, and can be incorporated
into batch files for more automated processing (i.e., Corey Harrell's auto_rip tool).

As RegRipper plugins are open source, they can be created or modified as the analyst deems necessary.  Plugins can extract and parse/decode specific keys and values, and can even correlate data from multiple locations within the same hive file.  Several plugins have been modified to return TLN format output, and anyone can modify
plugins to output in any format that they wish.

Something that has been incorporated into several of the RegRipper plugins is the ability to generate alerts based on defined variances in data.  For example, if a path listed in the data for a value beneath the Run key contains "temp", such as "..\Windows\Temp\.." or "Temporary Internet Files", an alert can be generated.  This capability allows the analyst to set conditions within the plugins to highlight anomalies so that items that may be of particular interest are separated in some way from the rest of the available data.

RegRipper's plugins obviate the need for analysts to memorize key and value paths, retaining intelligence from  previous examinations, and even from other analysts. Viewing tools require the analyst to memorize and navigate through paths, and do not alert the analyst when a system has redirected paths (i.e., Wow6432Node).

RegRipper plugins can be grouped in any way the analyst deems fit, such as specific subsets of plugins for parsing USB device information, as well as using artifact categories (i.e., program execution, auto-start, user activity, file access, networking, system config, etc.).

RegRipper does not do anything to access unallocated space within the hive files, so it does not locate deleted keys and values, nor does it allow an analyst to search unallocated space within the hive file.

While RegRipper functionality does not include a 'diff' capability, any diff utility can be used to compare plugin output between successive runs.

RegRipper, and in particular rip.pl, is a great tool when used by researchers, as it not only exposes the code used to perform various functions, such as decoding shell items, etc., but it also exposes the code used in translating time stamps from within the Registry value data.  It also includes code for dumping arbitrary binary data in hex dump format, making it easier for researchers to develop new plugins and new ways of parsing or presenting data.

RegRipper is unique amongst the presented tools, in that it makes no attempt to present the Registry in its entirety to the analyst.  Rather, RegRipper is intended to provide a facility for sharing IOCs and other previous findings, not only between cases for analyst, but also between analysts.  RegRipper's open source plugin architecture allows analysts
to create and modify plugins to meet their specific needs, as well as to share plugins with other analysts.