大多数都知道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的证据。可以通过查看以下注册表位置获取:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
在以上位置我们可以找到机器连接到的无线接入点的GUID列表。我们点击其中的任意一个,它都将为我们显示一些关于无线的详细信息,其中包括SSID名称和以十六进制表示的最后连接日期。
从以下截图可以获知,Borrell于2014年11月连接过SSID为“HolidayInnColumbia”的无线AP。
RecentDocs键
Windows注册表会跟踪用户活动的大量信息。通常情况下,这些注册表项旨在使Windows运行更加高效和顺利。但对于调查取证人员来说,这些键值就好比是用户或攻击者活动的线路图。
这些键值中其中有一个叫“RecentDocs”的键,可以通过文件扩展来跟踪系统上使用或打开的最新文档。我们可以在以下位置找到它:
- 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时,该值将被存储在以下注册表中:
- HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs
当打开该键时,它会为我们列出用户使用IE访问的最后URL浏览记录。在这些记录中或许我们可以找到恶意软件的来源,或在民事或政策违规类的调查中,获知用户正在看的内容是什么。
键值将从urI1(最近的)~ urI25(之前的)。
IP地址
注册表还跟踪用户接口的IP地址。请注意接口可能有多个,该注册表项将跟踪每个接口的IP地址及相关信息。
- HKEY_LOCAL_MACHINE\System\Services\CurrentControlSet\services\Tcpip\Parameters\Interfaces
如下所示,我们可以找到分配给接口的IP地址,子网掩码以及DHCP服务器租用IP的时间。这样,我们就可以判断嫌疑人在入侵或犯罪时是否使用了某个特定的IP。
启动项在注册表中的位置
作为一名取证人员,我们经常需要找到哪些应用程序或服务会在系统启动时被启动。因为攻击者很可能会通过这种方式来启动他们在目标机器上种植的木马程序,以与远程服务器建立连接。我们可以在以下位置找到该启动项:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
这些子项中指定的任何软件/位置都将在每次系统启动时启动。Rootkit和其它恶意软件通常会被放置在这里。
RunOnce启动
如果攻击者只是希望软件在启动时运行一次,则可以在此处设置子键。
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
启动服务
下面的键列出了系统启动时将会启动的所有服务。如果键值设置为2,服务将自动启动;如果设置为3,则必须手动启动服务;如果设置为4,则该服务被禁用。
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
启动遗留应用程序
运行16位应用程序时,列出的程序运行在:
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
特定用户登录时启动
在以下键中,键值将在特定用户登录时运行。
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
注册表中的存储设备证据
攻击者常常会使用Flash驱动器或硬盘驱动器进行恶意攻击,然后将其移除,以避免留下任何的证据。然而经验丰富的取证人员,仍然可以在注册表中找到这些存储设备的证据。
不同版本的Windows系统,注册表可能也有所不同。一名专业的取证人员,需要了解不同版本间的差异。由于Windows 7目前仍然是使用最广泛的操作系统,所以这里我将以Windows 7为例。
USB存储设备
想象一下在某些场景中,攻击者可能在你的电脑插入了一个USB设备,并拷贝走了你大量重要的数据文件。这时我们就可以通过以下键值,来查找USB存储设备插入和使用的证据。
- HK_Local_Machine\System\ControlSet00x\Enum\USBSTOR
展开USBSTOR可以查看到,所有曾经连接过该系统的USB存储设备列表。
在上面的截图中,我圈出了一个可疑的USB设备。当我们展开它时,它会显示该设备的唯一标识符。通过点击此标识符,我们可以找到有关设备的更多信息。
如上图所示,当我们点击USB存储标识符时,它会在右侧窗口中显示全局唯一标识符(GUID),FriendlyName和硬件ID等。
挂载设备
如果攻击者使用任何必须挂载的硬件设备来读取或写入数据(CD-ROM,DVD,硬盘驱动器,闪存驱动器等),注册表将记录已挂载的设备。 此信息存储在:
- HKEY_LOCAL_MACHINE\System\MountedDevices
如下所示,当我们点击该键时,它为我们提供了一个很长的列表,列表中都是曾经挂载过的设备。
如果我们需要获取更多有关这些挂载设备的信息,我们可以简单的点击它,它将打开一个小的应用程序,使我们能够以ASCII读取数据。如图所示,该设备是Teac制造的IDE CD-ROM。
如果系统上没有TEAC CD ROM,那么取证人员就知道他们需要找到这块硬件才能找到进一步的犯罪证据。
通过本文的学习,我们知道注册表不仅仅是一个用于存储Windows系统用户,硬件和软件的存储配置信息的数据库,更是计算机犯罪取证中的一个宝库。想要成为一名合格的计算机取证人员,必须要熟练运用和掌握注册表的相关知识。