大多数都知道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系统用户,硬件和软件的存储配置信息的数据库,更是计算机犯罪取证中的一个宝库。想要成为一名合格的计算机取证人员,必须要熟练运用和掌握注册表的相关知识。

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

  1. [转帖]Windows注册表内容详解

    Windows注册表内容详解 来源:http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html 对 windows注册表一知半解 不是很清晰 这里学习一下 ...

  2. Windows注册表内容详解

    Windows注册表内容详解 http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html (2011-04-05 10:46:17)   第一课  注册表 ...

  3. winreg操作windows注册表详解示例

    #coding:utf-8 #=====================================================================#=====本程序演示了WINR ...

  4. Windows注册表内容详解(转载)

    (关于windows注册表的整理,来源网络) 前提 一.什么是注册表 ​ 注册表是windows操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是 ...

  5. 小甲鱼PE详解之输入表(导出表)详解(PE详解09)

    小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一 ...

  6. MySQL 8.0.20 安装教程图文详解(windows 64位)

    MySQL 8.0.20 安装教程图文详解(windows 64位)  更新时间:2020年05月09日 15:09:04   转载 作者:瘦肉粥不加糖     这篇文章主要介绍了MySQL 8.0. ...

  7. 10#Windows注册表的那些事儿

    引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...

  8. 【ZZ】详解哈希表的查找

    详解哈希表的查找 https://mp.weixin.qq.com/s/j2j9gS62L-mmOH4p89OTKQ 详解哈希表的查找 2018-03-01 算法与数据结构 来自:静默虚空 http: ...

  9. Java SPI机制实战详解及源码分析

    背景介绍 提起SPI机制,可能很多人不太熟悉,它是由JDK直接提供的,全称为:Service Provider Interface.而在平时的使用过程中也很少遇到,但如果你阅读一些框架的源码时,会发现 ...

随机推荐

  1. 初学Linux基本的命令操作应当记牢

    Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touc ...

  2. vue+express+mysql +node项目搭建

    项目搭建前需要先安装node环境及mysql数据库. 1.利用vue-cli脚手架创建一个vue项目 a.全局安装 npm install -g vue-cli b.初始化项目 vue init we ...

  3. 关于最近练习PYTHON代码的一点心得

    做测试以来,一直想学习代码,以前也断断续续的学习过,不过都是练习一些基础语法,学习的是菜鸟教程,但是效果不大. 最近在练习CODEWAR里做练习题,慢慢强化自己对一些基本语法的理解,熟悉基本的内置函数 ...

  4. JS-MiniUI:百科

    ylbtech-JS-MiniUI:百科 MINIUI是一款优秀的JS前端web框架,提供丰富.强大控件库,能快速开发企业级Web应用软件.该软件以美观精致的界面和快速的页面响应速度获得用户的好评.是 ...

  5. 公司-浪潮:浪潮/inspur

    ylbtech-公司-浪潮:浪潮/inspur 浪潮集团有限公司,即浪潮集团,是中国本土综合实力强大的大型IT企业之一,中国领先的云计算.大数据服务商.浪潮集团旗下拥有浪潮信息.浪潮软件.浪潮国际.华 ...

  6. laravel定义全局变量

    laravel中config()函数可以获取 bootstrap/cache/config.php中的内容,而config文件夹下的所有配置文件夹中的内容可以通过  php artisan confi ...

  7. JavaScript中 函数的创建和调用

    基础概念:定义函数的方式   一般定义函数有两种方式:    1:函数的声明    2:函数表达式 参考资料:https://blog.csdn.net/xixiruyiruyi/article/de ...

  8. UVA1632_Alibaba

    题目链接 大致题意:直线上面有n个点,第i个点坐标为xi,它会在di时间消失,你可以选择从任何位置出发,求访问完所有点的最短时间,无解输出no solution 思路:这有一个难点就是,不知道状态该怎 ...

  9. 如何在webpack开发中利用vue框架使用ES6中提供的新语法

    在webpack中开发,会遇到一大推问题,特别是babel6升级到babel7,要跟新一大推插件,而对于安装babel的功能就是在webpack开发中,vue中能够是用ES6的新特性: 例如ES6中的 ...

  10. mybatis之参数处理

    mybatis的mapper接口需要和mapper映射文件进行关联,上一节已经展示接口方法的返回值是如何和mapper映射文件的resultType进行映射.这一节主要讲解接口方法的参数如何与映射文件 ...