详解Windows注册表分析取证

大多数都知道windows系统中有个叫注册表的东西,但却很少有人会去深入的了解它的作用以及如何对它进行操作。然而对于计算机取证人员来说注册表无疑是块巨大的宝藏。通过注册表取证人员能分析出系统发生了什么,发生的时间以及如何发生的等。在本文中我将为大家详细介绍Windows注册表的工作原理,以及如何对收集用户留下的各类指纹信息。

什么是注册表?

注册表是用于存储Windows系统用户,硬件和软件的存储配置信息的数据库。虽然注册表是为了配置系统而设计的,但它可以跟踪用户的活动,连接到系统的设备,什么时间什么软件被使用过等都将被记录在案。所有这些都可用于取证人员,分析溯源用户的恶意或非恶意行为。

蜂巢

在注册表中,有根文件夹。这些根文件夹被称为蜂巢。 以下是5个注册表的配置单元:

  • HKEY_USERS:包含所有加载的用户配置文件
  • HKEYCURRENT_USER:当前登录用户的配置文件
  • HKEY_CLASSES_ROOT:包含所有已注册的文件类型、OLE等信息
  • HKEYCURRENT_CONFIG:启动时系统硬件配置文件
  • HKEYLOCAL_MACHINE:配置信息,包括硬件和软件设置

注册表结构

注册表由键、子键和值项构成,一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。通常,值是0或1,意味着开或关,也可以包含通常以十六进制显示的更复杂的信息。

访问注册表

在我们普通的windows系统上,我们可以使用Windows内置的regedit实用程序来访问注册表。我们只需在左下角开始界面的搜索框内键入regedit,然后单击便可打开我们的注册表编辑器。

注册表信息取证价值

对于计算机取证人员来说注册表无疑是块巨大的宝藏。通过注册表取证人员能分析出系统发生了什么,发生的时间以及如何发生的等。在注册表中可以获取到的信息包括:

  • 用户以及他们最后一次使用系统的时间
  • 最近使用过的软件
  • 挂载到系统的任何设备,包括闪存驱动器,硬盘驱动器,手机,平板电脑等的唯一标识符。
  • 系统连接过的特定无线接入点
  • 什么文件何时被访问过
  • 列出在系统上完成的任何搜索等

注册表中的无线证据

许多黑客会通过攻破目标网络的无线来进行入侵。这种情况如果调查人员对提取的IP进行溯源,往往会最终定位在邻居家或周围其他无线AP。

例如早在2012年1月,一位匿名者成员John Borrell
III,就曾入侵了盐湖城和犹他州警察局的电脑系统。最终联邦调查局通过追踪,定位到了俄亥俄州托莱多的祝福圣礼教堂的Wi-Fi
AP地址。黑客显然是破解了教堂无线AP的密码,然后利用该IP在互联网上使用,以达到隐藏自己的目的。最终,联邦调查局还是通过各种调查技术以及侦察工作找到了他。最终Borrell在联邦监狱被定罪,并被判处两年有期徒刑。

在收缴了Borrell电脑后,取证人员可以通过检查其系统注册表来收集他此前连接过教会AP的证据。可以通过查看以下注册表位置获取:


  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles 

在以上位置我们可以找到机器连接到的无线接入点的GUID列表。我们点击其中的任意一个,它都将为我们显示一些关于无线的详细信息,其中包括SSID名称和以十六进制表示的最后连接日期。

从以下截图可以获知,Borrell于2014年11月连接过SSID为“HolidayInnColumbia”的无线AP。

RecentDocs键

Windows注册表会跟踪用户活动的大量信息。通常情况下,这些注册表项旨在使Windows运行更加高效和顺利。但对于调查取证人员来说,这些键值就好比是用户或攻击者活动的线路图。

这些键值中其中有一个叫“RecentDocs”的键,可以通过文件扩展来跟踪系统上使用或打开的最新文档。我们可以在以下位置找到它:


  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs 

如果你想查看用户最近使用的Word文档,那么我们可以在.doc或.docx扩展名下进行查找,这取决于它们创建的Word文档的版本(每个键可以容纳最近10个文档)。例如我们点击.docx扩展的键,可以看到这里为我们列出了最近使用过的10个文档。

当我们点击其中一个键时,它会显示有关文档的信息,如下所示。我们可以在十六进制,左侧和ASCII格式的右侧查看文档数据。从以下数据可以得知,该文件是一个Metasploit的课程大纲。

在某些时候攻击者可能会上传一个.tar文件,这将是一个非常好的证据。因为一般来说Windows机器上不应该显示一个.tar文件扩展名,所以我们可以对.tar键中的文件做进一步的检查,或许可以发现有关攻击或攻击者的蛛丝马迹。

在民事或政策违规调查中,证据可能会在各种图形文件扩展名中找到(例如.jpg,.gif或.png)。

TypedURLs键

当用户在Internet Explorer中输入URL时,该值将被存储在以下注册表中:


  1. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs 

当打开该键时,它会为我们列出用户使用IE访问的最后URL浏览记录。在这些记录中或许我们可以找到恶意软件的来源,或在民事或政策违规类的调查中,获知用户正在看的内容是什么。

键值将从urI1(最近的)~ urI25(之前的)。

IP地址

注册表还跟踪用户接口的IP地址。请注意接口可能有多个,该注册表项将跟踪每个接口的IP地址及相关信息。


  1. HKEY_LOCAL_MACHINE\System\Services\CurrentControlSet\services\Tcpip\Parameters\Interfaces 

如下所示,我们可以找到分配给接口的IP地址,子网掩码以及DHCP服务器租用IP的时间。这样,我们就可以判断嫌疑人在入侵或犯罪时是否使用了某个特定的IP。

启动项在注册表中的位置

作为一名取证人员,我们经常需要找到哪些应用程序或服务会在系统启动时被启动。因为攻击者很可能会通过这种方式来启动他们在目标机器上种植的木马程序,以与远程服务器建立连接。我们可以在以下位置找到该启动项:


  1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 

这些子项中指定的任何软件/位置都将在每次系统启动时启动。Rootkit和其它恶意软件通常会被放置在这里。

RunOnce启动

如果攻击者只是希望软件在启动时运行一次,则可以在此处设置子键。


  1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce 

启动服务

下面的键列出了系统启动时将会启动的所有服务。如果键值设置为2,服务将自动启动;如果设置为3,则必须手动启动服务;如果设置为4,则该服务被禁用。


  1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 

启动遗留应用程序

运行16位应用程序时,列出的程序运行在:


  1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW 

特定用户登录时启动

在以下键中,键值将在特定用户登录时运行。


  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 

注册表中的存储设备证据

攻击者常常会使用Flash驱动器或硬盘驱动器进行恶意攻击,然后将其移除,以避免留下任何的证据。然而经验丰富的取证人员,仍然可以在注册表中找到这些存储设备的证据。

不同版本的Windows系统,注册表可能也有所不同。一名专业的取证人员,需要了解不同版本间的差异。由于Windows 7目前仍然是使用最广泛的操作系统,所以这里我将以Windows 7为例。

USB存储设备

想象一下在某些场景中,攻击者可能在你的电脑插入了一个USB设备,并拷贝走了你大量重要的数据文件。这时我们就可以通过以下键值,来查找USB存储设备插入和使用的证据。


  1. HK_Local_Machine\System\ControlSet00x\Enum\USBSTOR 

展开USBSTOR可以查看到,所有曾经连接过该系统的USB存储设备列表。

在上面的截图中,我圈出了一个可疑的USB设备。当我们展开它时,它会显示该设备的唯一标识符。通过点击此标识符,我们可以找到有关设备的更多信息。

如上图所示,当我们点击USB存储标识符时,它会在右侧窗口中显示全局唯一标识符(GUID),FriendlyName和硬件ID等。

挂载设备

如果攻击者使用任何必须挂载的硬件设备来读取或写入数据(CD-ROM,DVD,硬盘驱动器,闪存驱动器等),注册表将记录已挂载的设备。 此信息存储在:


  1. HKEY_LOCAL_MACHINE\System\MountedDevices 

如下所示,当我们点击该键时,它为我们提供了一个很长的列表,列表中都是曾经挂载过的设备。

如果我们需要获取更多有关这些挂载设备的信息,我们可以简单的点击它,它将打开一个小的应用程序,使我们能够以ASCII读取数据。如图所示,该设备是Teac制造的IDE CD-ROM。

如果系统上没有TEAC CD ROM,那么取证人员就知道他们需要找到这块硬件才能找到进一步的犯罪证据。

通过本文的学习,我们知道注册表不仅仅是一个用于存储Windows系统用户,硬件和软件的存储配置信息的数据库,更是计算机犯罪取证中的一个宝库。想要成为一名合格的计算机取证人员,必须要熟练运用和掌握注册表的相关知识。

本文作者:secist

来源:51CTO

时间: 2024-09-21 20:06:45

详解Windows注册表分析取证的相关文章

Win2k注册表备份恢复详解_注册表

Windows 2000 将它的配置信息存储在名为注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000 在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注册表中的某一主键或子键保存为文本文件,或者打印出

详解房卡麻将分析系列 "牌局回放" 之 播放处理

详解房卡麻将分析系列 "牌局回放" 之 播放处理 昨天红孩儿给大伙讲了讲"牌局回放"的数据记录处理,有了数据的存储,下面就是数据的显示了. 实话讲,好久没用过 SQL Server 来做数据库了, 网狐的服务器是基于WIN,IOCP,  SQL Server 这套路子.配置好后,可以在QPTreasureDB数据库中看到三个牌局相关的表. 其中dbo.PrivateGameRecord是存储当前游戏的房间及玩家,最终胜负信息的. dbo.PrivateGameRec

保护Windows注册表

保护注册表是很重要的,有很多不同的工具可以实现这一目的.当没有安全设置时,用户可能的错误会更多.幸运的是,他们可以有几中方法来保护Windows注册表,在注册表失败时他们可以用额外的拷贝来恢复注册表.下面就是其中的一些方法:   1.使用windows备份软件   注:Win95和Win98备份程序有部分区别,在这里只讲Win98的备份程序.   Win98中包括一个备份程序.当安装Win98时如果你选择"自定义安装",或者你可以在控制面板中的添加/删除程序里安装它.当你安装了这个备份

用CB控制Windows注册表

Windows注册表中包含了系统配置.机器硬件配置.Win32应用程序和用户的其他配置信息.注册表根据系统信息分为六个根键(RootKey),其中每个根键各有一个由子键和键值组成的树状结构,每个子键代表一个特定的配置项目. 用C++Builer控制注册表的关键在于了解TRegistry 类.在C++Builder的VCL类库中,提供了TRegistry类,通过在应用程序中生成这个类的实例,我们可以实现对注册表的控制.在TRegistry类中,重点应该掌握如下问题: 1.TRegistry类的生成

快速扫除windows注册表垃圾的方案

注册表在windows系统中是一个重要的数据库,存储着系统和应用程序的设置信息,在安装软件时都会加载很多信息表,但是卸载的时候无法自动全部删除,会遗留下很多注册表冗余垃圾,这时候我们就要对它进行垃圾的扫除,减轻注册表的负担. 快速扫除windows注册表垃圾的方案 1.使用第三方安全软件清理注册表垃圾 利用超级兔子.优化大师.安全卫士一系列的第三方软件清理,下面小编就以金山卫士为例,打开主界面,找到垃圾清理-清理注册表,开始扫描清理即可,金山卫士会自动把注册表备份,就不用我们在单独备份了,要是出

快速清理windows注册表垃圾的方法

  大家在安装系统的软件的时候,总会伴随着很多的信息表和应用程序的设置信息.但是有的时候,我们不需要用到一些软件就把它卸载了,相应的注册表却卸载不了.不能完全被删除.那么系统上就会留下好多的注册表冗余垃圾,我们就应该对这些垃圾进行清楚大扫除,减轻注册表的负担.系统的空间. 快速扫除windows注册表垃圾的方案 1.使用第三方安全软件清理注册表垃圾 利用超级兔子.优化大师.安全卫士一系列的第三方软件清理,下面小编就以金山卫士为例,打开主界面,找到垃圾清理-清理注册表,开始扫描清理即可,金山卫士会

详解jQuery的表单验证插件--Validation_jquery

大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言.该插件是由 Jörn Zaefferer 编写和维护的,他是 jQuery 团队的一名成员,是 jQuery UI 团队的主要开发人员,是 QUnit 的维护人员.该插件

第七篇Bootstrap表单布局实例代码详解(三种表单布局)_javascript技巧

Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单.下面逐一给大家介绍,有兴趣的朋友一起学习吧. 创建垂直或基本表单: •·向父 <form> 元素添加 role="form". •·把标签和控件放在一个带有 class .form-group 的 <div> 中.这是获取最佳间距所必需的. •·向所有的文本元素 <input>.<textarea> 和 <select> 添加 class .form-cont

Illustrator提醒已检测到Windows注册表存在问题解决教程

给各位Illustrator软件的使用者们来详细的解析分享一下提醒已检测到Windows注册表存在问题的解决教程. 教程分享: 1.安装好 Adobe illustrator后,打开居然弹出如下窗口   2.点击"是",软件启动正常,可以正常使用 3.可每次打开它都会出现那个窗口,不怎么影响使用,但很不爽吧 4.出现这种问题的原因,,小编初步推测是因为安装了不同版本的Ai 或者ps,id等软件,或安装了多个版本的ai等,使的ai的部分组件不能再系统注册.关于好多网友说的软件冲突,卸载部