注册表修改测试

admin 2023年3月10日23:43:00评论56 views字数 2069阅读6分53秒阅读模式
注册表修改测试
注册表修改测试

本文由孙林轩编译,陈裕铭、Roe校对,转载请注明。

在查看一些关于恶意软件和其他威胁参与者如何“使用”注册表满足他们的需求的各种公开报告后,我想从DFIR的角度,看看这些行为的效果及影响。我想从一种类似于我从事应急响应期间所熟知的方法开始。特别是事件早期,在EDR之前,在诸如Sysmon或启用安全事件日志中的过程跟踪之前。

注册表修改测试

第一个情境是间接注册表写入,关于重命名RunOnce键的持久性机制。在一篇标题为“间接注册表写入”的文章中,文章描述了重命名RunOnce键、添加值,然后将该键重新重命名为“RunOnce”的持久性机制,其目的显然是为了避免规则/筛选器专门查找添加到RunOnce项的值。正如大多数取证分析师可能知道的那样,RunOnce密钥的用途正是“启动可执行程序一次”。之前我读过有关从RunOnce密钥启动的恶意可执行文件的文章,文中提到文件一旦执行,恶意软件本身就会为该密钥重新写入该键的值,其目的是允许RunOnce密钥和恶意软件一起运行,就像恶意软件是从Run键启动的一样。

我想从纯粹黑盒的角度来执行此次测试。即使用EDR工具,或依赖Windows事件日志。根据电脑配置,或许可以查看Sysmon事件日志,或者如果系统已重新启动,同时还可以查看Microsoft-Windows-Shell-Core%4Operational.evtx事件日志或使用Events Ripper以过滤异常的可执行文件。

注册表修改测试

方法

首先应使用“reg save”创建Software配置单元的备份。然后,重命名了RunOnce键,并添加了一个值(即“Calc”),并将键重命名回“RunOnce”,以上这些都是通过RegEdit完成的。然后,关闭了RegEdit并使用“reg save”创建了Software配置单元的第二个副本。紧接着打开RegEdit,删除该值,并保存Software配置单元的第三个副本。

在此过程,没有重启系统;相反,我们通过简单地从RunOnce键中删除附加值来“模拟”系统的重新启动。如果系统重新启动, Microsoft-Windows-Shell-Core%4Operational.evtx事件日志中可能会有一个(或两个)事件记录。

最后,我创建了一个特定的 RegRipper 插件来从配置单元文件中提取有关密钥的信息。

第一副本- Software
第一件事就是创建一个基准线,基于关键节点本身的结构。

注册表修改测试

图 1

使用 Perl Parse::Win32Registry模块提供的API,我编写了一个 RegRipper 插件以帮助进行此测试。我想得到关键节点的偏移量,即节点本身在配置单元文件中的位置。同时,我需要获得关键节点的解析信息和原始信息。这样,不仅可以从关键节点本身的结构中看到解析后的数据,还可以看到原始的二进制结构。

使用 Perl Parse::Win32Registry模块提供的API,我编写了一个 RegRipper 插件以帮助进行此测试。我想得到关键节点的偏移量,即节点本身在配置单元文件中的位置。同时,我需要获得关键节点的解析信息和原始信息。这样,不仅可以从关键节点本身的结构中看到解析后的数据,还可以看到原始的二进制结构。

第二个副本 - Software2
在重命名RunOnce键、添加值并将键重命名回“RunOnce”之后,我们保存了软件配置单元的第二个副本,并运行runonce_test.pl插件以检索如图2所示的信息。

注册表修改测试

图2

对比图1和图2发现偏移量没有变化,即配置单元文件本身中键的位置。事实上,我们看到的唯一变化是LastWrite时间(这是预期的)和值的数量,现在设置为1。

第三个副本 - Software3
Software配置单元的第三个副本是我删除已添加的值的位置。同样,这是为了模拟重启系统,并没有考虑到恶意软件在启动后将对自身的引用添加回RunOnce密钥。

图3说明了插件针对软件配置单元的第三个副本运行的输出。

注册表修改测试

图3

同样,关键节点本身的偏移位置没有改变,这是意料之中的。删除该值会将值的数量更改为“0”,并调整键的LastWrite时间。

然后,针对软件配置单元的第三个副本运行del.pl插件(以从配置单元文件中未分配的空间中获取已删除的键和值),在 Notepad++ 中打开输出,搜索“calc”,并找到显示在下图 4。 本次我们选用了RegRipper插件。

注册表修改测试

图4

不幸的是,值节点既不包含时间戳,也不包含对它们所属的原始键节点(父键偏移量)的引用。

注册表修改测试

结论

从这个测试中我们可以看出,仅从注册表配置单元文件中我们可以看到的东西并不多。虽然我们可能有机会通过事件日志看到此活动的某些内容,但这在很大程度上取决于发现事件的活动后多长时间、系统的使用量等。似乎识别此种特定活动需要通过恶意软件RE、EDR、Windows事件日志记录等多方面来共同协作解决。

参考链接:

http://windowsir.blogspot.com/2022/10/testing-registry-modification-scenarios.html

注册表修改测试
注册表修改测试

原文始发于微信公众号(数据安全与取证):注册表修改测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月10日23:43:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   注册表修改测试https://cn-sec.com/archives/1596430.html

发表评论

匿名网友 填写信息