Registry Explorer和RECmd 1.2.0.0发布!
此版本在多个不同方面都有变化。让我们从主要的注册表解析器开始。
此版本新增了使用通配符扩展路径以匹配所有对应路径的功能。我们将在讨论RECmd及其新功能时看到这一功能的应用。
此外,解析器在恢复已删除值时,会检查非常驻值数据记录是否已被重新分配给其他内容。我们将在下面讨论Registry Explorer的变化时看到这种情况的具体表现。
让我们更仔细地看看这两个工具。
Registry Explorer
一般的变更日志如下:
- 新增:更新了控件和nuget包
- 新增:在值列表中用红色渐变显示已删除的值
- 新增:当已删除的值的非常驻数据指向的数据记录已被重新分配到其他位置的另一个单元时,用紫色渐变显示
- 修复:处理与保存路径、加载书签等相关的边缘错误
此版本最大的变化来自于Dave Cowen在进行的工作,这与Maxim Suhanov参加《Forensic Lunch》节目有关。Maxim展示了在某些情况下,跟踪键中值的列表仍然可以持有对已删除值的引用。Registry Explorer现在会检查这种情况,并以不同于活动值的方式显示恢复的值。
当这种情况发生时,你还会得到一个新的键图标。下面显示了新图标和这种情况的示例。

我上面提到的另一种情况是,当恢复的具有非常驻数据的值指向一个已在其他地方被重用的数据记录时。这种情况使用紫色渐变显示,如下所示:

请注意,此处的值同时将“已删除”和“数据记录已重新分配”布尔值设置为true。虽然有些工具在这种情况下根本不会显示任何数据,但Registry Explorer会显示该值指向的数据,以便您自行决定它是否相关。此外,与其他工具不同,Registry Explorer实际上可供任何人使用,免费,永久,并且是开源的。=)
技术详细信息视图也已更新,添加了“数据记录已分配”条件。
图例也已更新以显示此新信息。

RECmd
最后,让我们谈谈RECmd。简而言之,RECmd基本上已被完全重写,增加了对插件的支持和一个全新的批处理模式。
RECmd的新选项如下所示:

这使得RECmd与我其他具有通用开关、递归等功能的软件保持一致。请注意,与我其他基于注册表的命令行工具一样,有一个--nl开关,如果您没有事务日志(或只是不想使用它们),可以使用此开关禁用事务日志支持。
搜索功能(“s*”选项)没有改变,其他查找相关功能(base64和大小)也没有改变。
请注意,现在有一个--debug和--trace开关。--debug开关有助于故障排除和查看底层发生的情况。而--trace则提供了超级详细的信息流,有助于诊断问题。我建议坚持使用--debug!
现在,批处理模式!
最大的变化是--bn开关。这用于“批处理模式”,我们稍后会看到。
在深入讨论之前,让我们看看RECmd.exe现在的位置。它已被移动到与RegistryExplorer.exe相同的目录,因为这两个程序现在共享相同的插件。

如果您曾在Registry Explorer中使用过插件,您就会知道它们可以使分析过程变得多么美好。虽然Registry Explorer允许将插件数据导出到Excel,但在重复执行相同操作时,这可能会很繁琐(问问Dave Cowen就知道了!)。
但是,插件究竟如何在RECmd中发挥作用呢?答案是通过批处理模式!
批处理模式本质上是自动化RECmd以解析配置单元、搜索键并导出为通用格式的一种方式。
让我们仔细看看如何定义批处理文件。批处理文件使用YAML配置来定义规则。下面是一个示例:

那么,这里发生了什么?
批处理文件的规范如下:
标头
- 描述:此批处理文件将要查找的内容的一般描述
- 作者:制作此批处理文件的人员姓名(也可以包含更多信息,如联系信息)
- 版本:随着更改发生应递增的版本号
- Id:标识此批处理文件的唯一(在所有其他批处理文件中)GUID
- 键:要查找的内容的列表
键集合 每个条目包括:
- 描述:对此键将找到内容的用户友好描述。可以是键名称,也可以是对其含义的更友好描述等。
- HiveType:此条目对应的配置单元类型。有效选择为:NTUSER、SAM、SECURITY、SOFTWARE、SYSTEM、USRCLASS、COMPONENTS、BCD、DRIVERS、AMCACHE、SYSCACHE
- KeyPath:要查找的键的路径
- ValueName:可选值,存在时在KeyPath下查找
- Recursive:是否递归处理KeyPath
- Comment:类似于描述,您可以在此处添加最终出现在CSV中的各种内容
HiveType决定了条目对应的配置单元类型。这可以节省时间,因为RECmd不会在SOFTWARE配置单元中搜索永远不会存在的键(例如,因为它们是NTUSER特定的)。
对于KeyPath,支持通配符。例如,“ControlSet00*\Services"将扩展为"ControlSet001\Services"和"ControlSet002\Services”,当然前提是有两个ControlSet键。这可以根据需要任意扩展,所以这样也可以正常工作:
SOFTWARE\Microsoft\Office\*\*\User MRU\*
RECmd将看到这些通配符并确定哪些键实际存在。然后这些键被处理并提取到CSV。有关更多示例,请参阅示例文件,但这真的就是这么简单!
这不仅可以节省您的时间,而且实际上会找到您不可能事先知道存在的结果,除非事先搜索以找到所有可能的键路径、更新配置等。这是一个巨大的时间节省器!
RECmd附带了几个示例批处理文件,您可以使用,包括Mike Cary的一个非常全面的文件(RECmd_Batch_MC.reb)。Mike的批处理文件包含超过40个键/值对,并包括通配符使用、递归等示例。
创建批处理文件后,您告诉RECmd在哪里找到它。下面是一个示例:

现在这个特定示例中,只有NTUSER配置单元存在于-d目录中,但由于我们可以在批处理文件中定义任何类型的配置单元(SYSTEM或SOFTWARE等),如果我们将其指向不同的位置,例如通过Arsenal Image Mounter挂载的E01文件,它可能看起来像这样:

当RECmd在批处理模式下运行时,会发生几件事。首先,找到的每个键和值都被添加到一个“规范化”的CSV文件中。这意味着您将能够使用像Timeline Explorer这样的工具以一致的方式查看跨配置单元的键和值。这里的挑战是在放入此类规范化文件的数据过多和过少之间找到平衡。
例如,其中一个文件可能看起来像我们下面看到的。接下来的两张图像来自同一个文件,但由于整体宽度而分成两张图像。


首先,我们看到我们获得了数据来源的配置单元的完整路径。
接下来的几个字段来自批处理配置。Hive Type让您快速按特定配置单元分组。Description让您根据需要记录内容。Category允许您将不同的键和值分组到同一类别中(例如,UserAssist和AppCompatCache与“执行”相关)。
接下来,我们得到Key Path和Value Name。在第二个屏幕截图中,我们继续看到Value Type。Value Type将反映实际的值类型(如果它是直接的键/值)或“(plugin)”,这告诉我们使用了插件来填充这些条目。
接下来,我们看到Value Data、Value Data2和Value Data 3列。这些是来自每个插件的“规范化”列。现在有些插件有10个感兴趣的内容,有些则较少。这就是平衡发挥作用的地方。每个插件将其每行数据“映射”到这三个字段之一。这可能包括路径、运行计数、焦点时间、执行时间等。在这些情况下,您将在数据本身中看到描述(如上文UserAssist插件所示)。
继续下去,我们还有来自批处理配置的Comment,键是否被递归处理,以及键是否被删除。接下来是键的最后写入时间戳,最后,当使用插件时,插件详细信息文件的完整路径。
为了让最后一部分更容易理解,让我们退一步。
当RECmd在批处理模式下运行时,将在--csv目录中生成几个文件。下面是一个示例:

在这个特定示例中,我们看到来自两次RECmd批处理模式执行的数据。让我们分解它们。
我们先看绿框。注意所有文件都以相同的时间戳开头。这使您可以按整个RECmd运行分组。列表中的第一个文件然后引用“RECmd”和“Batch”以及用于该运行的批处理文件(BatchExample)。此文件是我们刚刚讨论的规范化视图。
但是,还要注意,我们有四个TypedURLs文件和一个UserAssist文件。注意这如何紧接在时间戳之后,再次将它们分组在一起。最后,在键名之后,我们看到此数据来源的注册表配置单元的完整路径。
看第二个,在红框中,它非常相似,但我们看到了摘要以及两个TypedURLs和三个UserAssist键,以及数据来源的文件名。根据您的批处理文件,您最终可能会生成数十个插件CSV文件。
回到我们的规范化CSV输出,当您扫描数据时,您很可能在规范化视图中拥有所需的内容来确定发生了什么。但请记住,有些插件可能有10个字段,而您在规范化视图中可能只得到3-4个。
如果您想深入查看详细信息,完全像插件生成的那样呢?这就是“插件详细信息文件”发挥作用的地方。如果您在Timeline Explorer中打开此文件,您将看到与在Registry Explorer中加载配置单元并转到相同键并查看插件生成的数据完全相同的数据。
下面是一个TypedURLs CSV可能看起来的示例:

通过同时提供规范化视图和快速方便的详细信息访问,您可以更快地找到答案。
从研究的角度考虑这种能力。如果您在更改后总是反复查看syscache.hve文件,一个简单的批处理配置,命中配置单元中的键(从而调用Syscache插件),不仅会生成摘要,还会将插件生成的确切、完整细节提取到CSV中!然后可以根据需要摄取或处理此文件。
这种事情的用例是无限的,因为我不必与您使用RECmd有任何关系。您可以创建任意多的批处理文件。您可以制作新插件(或请我制作。我很乐意帮忙),并且插件DLL可以直接放入Plugins文件夹。这使Registry Explorer和RECmd都能从插件中受益。
RECmd和批处理模式从自动化分析的角度开辟了大量可能性,此外还有更常见的用例,即在一个地方查看大量注册表键。
话虽如此,RECmd的真正亮点在于其输出的标准化,这让您可以使用像Timeline Explorer这样的工具进行过滤,能够透视到插件数据等等。
我真心希望这些变化能为您的案例带来很多好的答案。
如果有什么不清楚的地方,请随时联系,一如既往,如果您遇到任何问题,请告诉我,我会尽快修复。
享受吧!您可以在往常的地方获取更新。