Windows Registry Security Check
1. Windows注册表 2. Windows注册表包含的攻击向量 3. 注册表安全配置基线标定
1. Windows注册表
注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今
0x1: 注册表的由来
在Windows 3.x操作系统中,注册表是一个极小文件,其文件名为Reg.dat,里面只存放了某些文件类型的应用程序关联,大部分的设置放在Win.ini、System.ini等多个初始化INI文件中。由于这些初始化文件不便于管理和维护,时常出现一些因INI文件遭到破坏而导致系统无法启动的问题。为了使系统运行得更为稳定、健壮,Windows 95/98设计师们借用了Windows NT中的注册表的思想,将注册表引入到Windows 95/98操作系统中,而且将INI文件中的大部分设置也移植到注册表中,因此,注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用
0x2: 作用
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些包括了
1. 软、硬件的相关配置和状态信息 2. 应用程序和资源管理器外壳的初始条件、首选项和卸载数据 3. 联网计算机的整个系统的设置和各种许可 4. 文件扩展名与应用程序的关联 5. 硬件部件的描述、状态和属性 6. 性能记录 7. 其他底层的系统状态信息 8. 其他数据等
具体来说,在启动Windows时,Registry会对照已有硬件配置数据,检测新的硬件信息
1. 系统内核从Resistry中选取信息,包括要装入什么设备驱动程序,以及依什么次序装入,内核传送回它自身的信息,例如版权号等 2. 同时设备驱动程序也向Registry传送数据,并从Registry接收装入和配置参数 3. 设备驱动程序会告诉Resistry它在使用什么系统资源,例如硬件中断或DMA通道等 4. 设备驱动程序还要报告所发现的配置数据 5. 为应用程序或硬件的运行提供增加新的配置数据的服务 6. 配合INI文件兼容16位Windows应用程序,当安装—个基于Windows 3.x的应用程序时,应用程序的安装程序Setup像在windows中—样创建它自己的INI文件或在Win.ini和System.ini文件中创建入口 7. 同时windows还提供了大量其他接口,允许用户修改系统配置数据,例如控制面板、设置程序等
如果注册表受到了破坏,轻则使windows的启动过程出现异常,重则可能会导致整个windows系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题恢复注册表对windows用户来说就显得非常重要
0x3: 注册表的数据结构
注册表由键(或称"项")、子键(子项)和值项构成。一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由以下几个部分组成
1. 名称 2. 数据类型 3. 分配的值
一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值
在注册表编辑器(Regedit.exe)中,数据结构显示如下,其中,command键是open键的子键,(默认)表示该值是默认值,值名称为空,其数据类型为REG_SZ,数据值为:
%systemroot%/system32/NOTEPAD.EXE "%1
注册表的数据类型主要有以下四种
1. REG_SZ: 字符串: 文本字符串 2. REG_MULTI_SZ: 多字符串: 含有多个文本值的字符串 3. REG_BINARY: 二进制数: 二进制值,以十六进制显示 4. REG_DWORD: 双字: 一个32位的二进制值,显示为8位的十六进制值
Relevant Link:
http://baike.baidu.com/view/979.htm
2. Windows注册表包含的攻击向量
0x1: 添加自启动项
入侵服务器后,通过部署自启动项是黑客常用的刘后门手段,总体来说,Windows上部署自启动后门的方式有如下
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67528.html