欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Windows注册表取证分析

来源:本站整理 作者:佚名 时间:2019-03-28 TAG: 我要投稿

FireEye咨询师在应急响应过程中经常需要对计算机网络进行取证分析,其中经常会使用Windows注册表数据。Windows注册表数据对发现恶意活动,找出哪些数据通过网络被窃取了非常有用。注册表中许多不同类型的数据都可以提供一些程序执行、应用设置、恶意软件驻留等的证据。
从过去的经验来看,对攻击活动执行取证分析非常困难。许多高级的攻击者都会使用一些反取证技术来隐藏攻击活动。因此,研究人员提供一个可以恢复历史和删除的注册表数据的方法,以执行注册表取证。分析过程主要针对以下历史注册表数据:
· 注册表事务日志(.LOG)
· 事务型注册表事务日志 (.TxR)
· 删除的注册表记录
· 备份的系统数据 (REGBACK)
· 用系统备份(System Restore)备份的数据
Windows注册表格式
Windows注册表保存在许多hives文件中。Hives是含有一个保存了key、值、数据和相关元数据的单元的简单文件系统的二进制文件。注册表hives在4KB的页面中读写,这个4KB的页也叫做bins。对Windows注册表hive的格式详细描述参见http://sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf或https://github.com/msuhanov/regf/blob/master/Windows%20registry%20file%20format%20specification.md。
注册表事务日志
为了最大化注册表的可靠性,windows在执行注册表文件写操作时可以使用事务日志。当注册表hive由于锁定或破坏无法直接写的时间可以使用事务日志。
注册表日志会写入与对应注册表hive相同目录中的文件。文件名也是相同的,唯一的区别是hive文件的扩展为.log。Windows可能会使用多个日志,那么使用的扩展可能就是.LOG1、.LOG2等。更多关于注册表事务日志格式的信息,参见https://github.com/msuhanov/regf/blob/master/Windows%20registry%20file%20format%20specification.md#format-of-transaction-log-files。
注册表事务日志是Windows 2000中引入的,原始事务日志格式数据在事务日志开始时写入的。位图被用来表明日志中有哪些页面,以及页面的顺序。因为文件的开始位置经常会被覆写,因此很难从这些日志中恢复原来的数据。因为每次使用后,都有不同量的数据会写入到事务日志中,因此文件经过多次使用后仍然有可能存在一些以前的页面。但每个页面的位置必须通过当前hive中搜索页面来引用,恢复连续数据的可能性很小。
Windows 8.1中引入了新的注册表事务数据。新的日志使用的方式相同,但是格式是不同的。新的日志工作方式像一个环,其中最老的数据回被新数据覆写。新日志格式中的每个记录都含有一个序列号和注册表offset来使其很容易决定写的顺序以及哪些页面会被覆写。因此日志格式修改,数据被覆写的频率变低了,因此从这些日志文件中可以恢复出一些老的事务数据。
恢复的数据量取决于注册表的活动。从真实系统的事务日志样本数据来看,恢复需要的时间从几天到几周不等。但Windows系统更新这类注册表经常更新的活动会导致减少可恢复的数据的范围。
虽然新的日志格式含有更多可恢复的信息,但将注册表页集合变成有用的数据非常复杂。
首先,需要追踪注册表的所有页面以确定每次写导致的数据变化。还需要确定这些变化是否会导致新数据和记录的产生。
目前处理注册表事务文件使用的算法如下:
· 用序列号降序对所有写操作进行分类,这样可以处理最近的写操作。
· 对分配和未分配的单元进行分析来找出分配和删除的记录。
· 与原始hive中的记录进行比较。现在没有的记录都被标记为删除或logged。
事务日志示例
本例中,研究人员在Run key下创建了注册表值,可以在用户登入系统后开启执行malware.exe。

图1: 恶意用户在Run key中创建值
之后,恶意软件会被移除。注册表值在删除前就被覆写了。

图2: 恶意值被覆写和删除
虽然被删除的值仍然在hive中,但是因为被覆写了,因此现有的取证工具无法恢复出数据。

图3: 覆写的值仍然在注册表hive中
但本例中,事务日志中的数据仍然在,而且可以恢复。

图4: 事务日志中含有原始值
Transactional Registry Transaction Logs (.TxR)
除了transaction log journal外,也有事务注册表子系统使用的日志。应用可以使用事务注册表来执行复杂的注册表动作。这是应用安装器最常用的,因为可以简化失败的操作回滚。
Transactional registry logs会使用Common Log File Sytstem (CLFS)格式。日志文件保存的格式为.TxR..regtrans-ms。
这些文件都保存在和hive相同的目录中,当用户登出后就会被清理。但系统hive日志保存在%SystemRoot%\System32\config\TxR中,这些日志文件并不会被自动清除。因此,可能从系统事务日志数据中恢复出来历史数据。
transactional logs的格式并不好理解,而且没有现成的文档。
研究人员实验确定了基本的记录格式,确定了创建和删除注册表的记录,以及注册表值写和删除的记录。相关的key路径、值名、数据类型和数据都在日志记录中,事务日志记录格式详情参见。
虽然大多数注册表事务日志中的数据对入侵调查并没有什么用,但是在一些案例中这些数据是非常有用的。尤其是研究人员发现创建和删除计划任务都回使用注册表事务。通过对注册表事务日志进行分析,研究人员找出了攻击者在系统中创建计划任务的证据,而这些数据只存在于这一个位置。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载