Windows注册表
参考视频:https://www.bilibili.com/video/BV1GG411A7by
参考文章:https://blog.csdn.net/weixin_45300266/article/details/122359920
0x01 注册表概述
注册表是Windows中的一个核心的数据库,用于存储系统和应用程序的设置信息,储存的数据对windows 和Windows上运行的应用程序和服务至关重要,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行。它包括了计算机软、硬件的相关配置和状态信息,利用注册表来统一集中的管理这些信息,增强了系统的稳定性。
注册表是帮助windows控制硬件、软件、用户环境和windows界面的一套数据文件。
如果对注册表不熟悉,建议在修改前备份注册表,慎重对注册表进行修改。
打开方式:Win键+R键打开运行窗口,输入regedit即可打开注册表编辑器
注册表相关术语
根键:以HKEY开头,根键的作用是将注册表的各项进行分类。
子键:在某一个项(父项)下面出现的项(子项),包含在根键中的所有键。
值项:值项是显示在“注册表编辑器“右边的,它由三个部分组成:名称、类型、数据组成。其作用就是控制Windows的各个方面。
- 名称:不包括反斜线的字符、数字、代表符和空格的任意组合。同一键中不可有相同的名称。
- 类型:包括字符串、多字符串、二进制和双字节这四种。
- 数据:值项的具体值,它的大小可以占用64KB。
0x02 注册表结构分析
注册表的数据类型
注册表的数据类型主要有以下四种:
注册表的根键(5个)
在注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来的,类似于目录结构。Windows中共有五大根键:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT主键下的子键很简单,主要包括两类,一类是文件扩展名子键,另一类是文件类型子键。、
文件扩展名子键主要包括系统内定的文件扩展名和应用程序自储存的扩展名,文件扩展名子键均以“.”开头,后跟文件扩展名,可以包括任意多个字符;
文件类型子键是“*”子键和其他的不以“.”开头的子键,其中包括文件类型、类标识符以及程序标识符。文件名扩展子键中指明了该类文件的关联文件类型以及打开方式等。
HKEY_CURRENT_USER
该主键主要保存当前登录用户的配置信息,如环境变量,个人程序以及桌面设置等,他也是自动变化的,取决于当前登录的用户。
AppEvents | 该子键存储了系统事件的声音设置 |
---|---|
Control Panel | 该子键存储了系统桌面、光标、图标、键盘鼠标等的设置信息。 |
KeyBoard Layout | 该子键存储了Windows中键盘布局设置。 |
Network | 该子键存储了当前用户的网络设置信息。 |
Software | 该子键存储了系统中各种软件的配置信息,他是HKEY_CURRENT_USER主键下最主要的子键,也是USER.DAT文件的主要部分。 |
HKEY_LOCAL_MACHINE
注册表HKEY_LOCAL_MACHINE根键包含5个子键,分别为HARDWARE子键、SAM子键、SECURITY子键、SOFTWARE子键和SYSTEM子键。
HARDWARE键 | 在该键值中存储了计算机硬件配置中的一些不确定的信息。 |
---|---|
SAM键 | 该键值中存储了包括安全提供者的当前的用户名及组策略等。 |
Security键 | 该键值存储了具有管理权限的每个用户和组等信息。 |
Software键 | 安装在计算机中的软件的设置。本部分的设置对于排除故障和定制系统很有用。 |
System键 | 该键值存储了系统中的设备驱动程序等信息。 |
HKEY_USERS
该主键下记录的是Windows中所有用户的设置信息,它的值是变化的,并取决于计算机是否激活了用户配置文件。若未激活用户配置文件,则可以看到称为.DEFAULT的单一子键,此根键中保存的是默认用户( default),当前登录用户和软件(software)的信息,其中DEFAULT子项是其中最重要的,它的配置是针对未来将会被创建的新用户的。
Console | 这个键保存命令提示符窗口的选项、布局、荧屏颜色和字体设置 |
---|---|
Control Panel | 所有在控制面板里配置设置的信息全保存在这个键和它的子键中 |
Environment | 这个键保存了环境设置,特定的临时性文件的位置 |
Keyboard Layout | 键盘布局设置被设置成标准美国英国标准传统键盘布局。 |
Software | 软件的安装设置被保存在这个键中,缺省用户只有微软程序的设置 |
HKEY_CURRENT_CONFIG
根键保存当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。
注册表的关键键值
用户信息
用户信息,可通过查看注册表的方式就能够解决net user显示用户不全的问题。HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
正常情况下注册表的子键最多可以展示到\SAM\SAM,并且该子键下面并没有任何的值。
如果需要查看它的全部内容,就需要右键修改\SAM\SAM子键的Administrator的权限,将它设置为完全控制,然后刷新注册表子键便可以看到新增了很多的目录。
启动项信息
启动项信息,记录应用程序或服务在系统启动的信息。攻击者很可能会通过这种方式来启动他们在目标机器上种植的木马程序,以与远程服务器建立连接。
- 系统开机自启动项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
-
特定用户登录时启动
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- RunOnce启动:如果攻击者只是希望软件在启动时运行一次,则可以在此设置子键
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
启动服务信息
启动服务信息,可以记录系统启动时将会启动的所有服务信息,如果键值设置为2,服务将自动启动;如果设置为3,则必须手动启动服务;如果设置为4,则该服务被禁用。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
可以看到每次任务管理器都有AWVS的原因找到了,这个服务是开机自启动的=。=。
IP地址信息
IP地址信息,跟踪用户接口的IP地址,可以查看分配给接口的IP地址、子网掩码及DHCP服务器租用IP的时间。可以由此信息判断攻击者在入侵或犯罪时是否使用了某个特定的IP。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
无线接入点信息
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
这是无线接入点信息,能够记录曾经连接过的无线接入点信息,从而定位到无线AP的位置
最近的文档
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
RecentDocs键,可以通过文件扩展来跟踪系统上使用或打开的最新文档。
可以进入对应的后缀查看最近打开的对应格式的文件
比如下面这个就是我最近打开过的一个PyTest.docx文档
IE输入记录
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\TypedURLs
可以查看IE浏览器的url输入记录
USB存储设备信息
USB存储设备信息,可以记录USB存储设备插入的信息。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR
挂载设备信息
挂载设备信息,可以记录已挂载的设备的信息,如CD-ROM,DVD,硬盘驱动器,闪存驱动器等。HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
0x03 注册表基本操作
备份与还原
由于注册表是最重要的系统文件之一,因此对于它的保护和备份就特别重要。系统在每次成功启动之后都将此次启动时的注册表作一个备份。
一般保护注册表安全主要是通过禁止修改注册表这是主动防御;其次对注册表进行备份,在注册表遭受入侵破坏后还原注册表。
在注册表编辑器界面,点击左上角的文件,有导入与导出,即对应还原与备份,导出时可以选择导出的范围。
注册表破坏后的常见现象:
- 无法启动系统
- 无法运行或正常运行合法的应用程序
- 找不到启动系统或运行应用程序所需的文件
- 没有访问应用程序的权限
- 不能正确安装或装入驱动程序
- 不能进行网络连接
- 注册表条目有错误
注册表损坏的原因
- 应用程序错误:这个出现的时候比较多,在安装或使用应用程序时或多或少都有错误,都可能导致不同的后果。另外在系统中安装过多的软件后,也有可能出现彼此之间的冲突。
- 驱动程序不兼容:主要出现在系统自动安装的驱动程序上。
- 硬件问题:主要问题出现在硬件质量上,比如硬盘或内存质量不过关造成读写错误,或超频或CMOS或病毒等。
- 误操作:由于不了解注册表而产生的误操作,可能会导致注册表出现错误,有的时候甚至会导致系统崩溃。
几种恢复注册表的方法:
重新启动系统恢复注册表
重启就可以修正各种在注册表中出现的错误了,但是以硬盘上的注册表的信息正确为前提的。注册表导入法恢复
把导出的出的注册表备份文件文件再导入即可恢复注册表。利用高级启动选项恢复注册表
重启计算机,启动时按F8键进入高级选项菜单,选择最后一次正确的配置即可。
注册表锁定与解锁
为防止注册表被人为破坏,除了备份还可以进行主动防御:锁定注册表编辑
方法一:制作一个锁定注册表的.reg注册表文件,双击运行即可。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]"DisableRegistryTools"=dword:00000001
方法二:通过本地组策略编辑器锁定
运行框输入gpedit.msc,依次找:【用户配置】→【管理模版】,在管理模板中找到并点击【系统】。在系统对应右侧窗口找到并左键双击:阻止访问注册表编辑工具;将【未配置】更改为【已启用】,再点击:应用→确定,退出组策略编辑器。
解锁同样是在组策略编辑器,将【已启用】修改为【禁用】即可
0x04 注册表✖️️镜像取证
此处配合https://www.cnblogs.com/M0urn/articles/17761218.html食用
本文来自博客园,作者:M0urn,转载请注明原文链接:https://www.cnblogs.com/M0urn/articles/17762515.html