(网络空间安全技术实践)10.2注册表安全防护编程实验

上传人:繁星 文档编号:88148877 上传时间:2019-04-20 格式:PPTX 页数:28 大小:448.50KB
返回 下载 相关 举报
(网络空间安全技术实践)10.2注册表安全防护编程实验_第1页
第1页 / 共28页
(网络空间安全技术实践)10.2注册表安全防护编程实验_第2页
第2页 / 共28页
(网络空间安全技术实践)10.2注册表安全防护编程实验_第3页
第3页 / 共28页
(网络空间安全技术实践)10.2注册表安全防护编程实验_第4页
第4页 / 共28页
(网络空间安全技术实践)10.2注册表安全防护编程实验_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《(网络空间安全技术实践)10.2注册表安全防护编程实验》由会员分享,可在线阅读,更多相关《(网络空间安全技术实践)10.2注册表安全防护编程实验(28页珍藏版)》请在金锄头文库上搜索。

1、网络空间安全技术实践教程,吕秋云,王小军,胡耿然,汪云路,王秋华 西安电子科技大学出版社,第三篇 网络安全理论与技术实验篇,第十章 网络安全编程实验 10.2注册表安全防护编程实验,网络空间安全技术实践教程,2,10.2注册表安全防护编程实验,实验目的: 本次实验主要通过编程实现注册表子键的创建、删除,以及子键键值查询和修改功能,加深对注册表的理解。同时了解注册表在微软系统安全方面的作用,深入分析注册表部分关键键值的功能(如系统启动项,文件关联等注册表键值)。深刻理解在注册表安全防护方面的实现原理后,设计注册表安全防护工具,利用VS编程实现。,网络空间安全技术实践教程,3,10.2注册表安全防

2、护编程实验,实验要点说明:(实验难点说明) VS的下载及安装 理解注册表编程实现原理 编程实现注册表各安全防护功能,网络空间安全技术实践教程,4,10.2注册表安全防护编程实验,实验准备: (实验环境,实验先有知识技术说明) 操作系统Windows 7及以上 VS2010及以上开发环境,网络空间安全技术实践教程,5,10.2注册表安全防护编程实验,实验原理: 在网络中,病毒、木马、后门以及黑客程序严重影响着信息的安全。这些程序感染微软系统计算机都是通过在注册表中写入信息,从而达到自动运行病毒程序、破坏系统和传播等目的。 注册表是Microsoft Windows中的一个重要的数据库,用于存储系

3、统和应用程序的设置信息。在Windows的注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,就象磁盘文件系统的目录结构一样。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关联的。注册表的根键共有6个,这些根键都是大写的,并以HKEY为前缀。 (1)HKEY_CLASSES_ROOT 管理文件系统,根据在Windows中安装的应用程序的扩展名,该根键指明其文件类型的名称,相应打开该文件所要调用的程序等信息。,网络空间安全技术实践教程,6,10.2注册表安全防护编程实验,实验原理: (2)HKEY_CURRENT_USER 管理系统当前的用户信息,在这个根键中保存

4、了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码,在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。 (3)HKEY_LOCAL_MACHINE 该根键存放本地计算机硬件数据,管理当前系统硬件配置,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息。,网络空间安全技术实践教程,7,10.2注册表安全防护编程实验,实验原理: (4)HKEY_USERS 管理系统的用户信息,在这个根键中保存了存放在本地计算机口令列表中的用户标识和密码列表,同时每个用户的预配置信息都

5、存储在HKEY_USERS根键中,HKEY_USERS是远程计算机中访问的根键之一。 (5)HKEY_CURRENT_CONFIG 管理当前用户的系统配置,在这个根键中保存着定义当前用户桌面配置(如显示器等等)的数据,该用户使用过的文档列表,应用程序配置和其他有关当前用户的安装信息。 (6)HKEY_DYN_DATA 管理系统运行数据,在这个根键中保存了系统在运行时的动态数据,此数据在每次显示时都是变化的,因此,此根键下的信息没有放在注册表中。,网络空间安全技术实践教程,8,10.2注册表安全防护编程实验,实验原理: 以上是注册表树最顶层的6个分支所分别代表的含义,可以由用户有针对性的对其进行

6、修改、编辑等操作,但也可能受到来自网络的恶意攻击。因此,注册表安全就是防止非授权用户访问注册表敏感键值和注册表本身。 而恶意程序为实现自动运行、破坏系统和传播的目的,往往对如下子键或键值感兴趣,是我们防护的主要对象。具体分析如下: (1)系统启动项 Windows操作系统的系统启动项是在注册表中设置的,恶意程序往往会修改系统启动项的键值,达到自我运行的目的。在注册表中常见的自启动位置如下: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion下的Run、RunOnce、RunOnceEx、RunServices和RunServices

7、Once;,网络空间安全技术实践教程,9,10.2注册表安全防护编程实验,实验原理: 在这些注册表位置下,如果添加一新键值,并指定运行的程序,那么只要操作系统启动,该程序自动启动。 (2)文件关联 文件关联是将一种类型的文件与一个可以打开它的程序建立起一种依存关系。当用户双击该类型文件时,系统就会先启动这一应用程序,再用它来打开该类型文件。文件关联也是很多流行病毒、木马经常利用的隐藏和自动运行的手段。可能被病毒修改用于启动病毒的,比较常见的是.exe关联方式被破坏,其他的文件关联也有可能被病毒利用。对应的注册表项主要有如下几项: HKEY_CLASSES_ROOTexefileshellope

8、ncommand; HKEY_CLASSES_ROOTcomfileshellopencommand; HKEY_CLASSES_ROOTtxtfileshellopencommand; HKEY_CLASSES_ROOTbatfileshellopencommand; HKEY_CLASSES_ROOTinifileshellopencommand。,网络空间安全技术实践教程,10,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 打开注册表进行增删查改操作时,首先需要打开注册表的句柄。注册表的句柄可以由调用RegOpenKeyEx()和RegCreateKeyEx

9、()函数得到的;注册表键值的查询可以通过函数RegQueryValueEx()来实现;注册表键值的增加和修改可以通过函数RegSetValueEx()来实现;注册表键值的删除可以通过RegDeleteValue()来实现。 (1)创建注册表键值 创建一个注册表键值,我们首先需要打开或创建子键,接着在该子键下面创建键值,下面以创建子键并创建键值为例,其适用于控制台应用程序的代码示例如下:,网络空间安全技术实践教程,11,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 #include #include main() HKEY hKey1; DWORD dwDispos

10、ition; LONG lRetCode; /创建 lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, “SOFTWAREMicrosoftWindowsNTCurrentVersionIniFileMappingWebSecurity“, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, ,网络空间安全技术实践教程,12,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 /如果创建失败,显示出错信息 if (lRetCode != ERROR_SUCCESS) print

11、f (“Error in creating WebSecurity keyn“); return (0) ; /创建第一个键值 lRetCode = RegSetValueEx ( hKey1, “Hack_Name“, 0, REG_SZ,(byte*)“sixage“, 100); /创建第二个键值 lRetCode = RegSetValueEx ( hKey1, “Hack_Hobby“, 0, REG_SZ, (byte*)“Running“, 100);,网络空间安全技术实践教程,13,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 /如果创建失败,显示

12、出错信息 if (lRetCode != ERROR_SUCCESS) printf ( “Error in setting Section1 valuen“); return (0) ; printf(“注册表编写成功!n“); return(0); 程序运行完后,如图10-2-1所示,结果是在如下所示的注册表目录中:HKEY_LOCAL_MACHINE SOFTWAREMicrosoftWindowsNTCurrentVersionIniFileMappingWebSecurity创建2个键值Hack_Hobby和Hack_Name,关键代码已经用加黑标出。,网络空间安全技术实践教程,14

13、,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 (2)查询注册表键值 在安全防护软件中,检查键值是否被修改是一项常规功能。例如:中了“冰河”木马的计算机注册表都将被修改了扩展名为txt的文件的打开方式,在注册表中txt文件的打开方式定义在HKEY_CLASSES_ROOT主键下的“txtfileshellopencommand”中,如图10-2-2所示,图中的键名为:NULL,该正常的值为“%systemroot%system32notepad.exe %1”。我们可以通过,打开该键值,查询其内容是否和正常值一致来判别是否中了“冰河”木马。,网络空间安全技术实践教

14、程,15,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 下面以控制台下的运行的程序为例,打开关联的注册表键值,查询键值的内容是否和正常一样,一样则认为没有中毒,不一样则认为有毒。具体的程序代码如下,关键代码已经用加黑标出。 #include #include main() HKEY hKEY; LPCTSTR data_Set = “txtfileshellopencommand“; long ret0 = (RegOpenKeyEx(HKEY_CLASSES_ROOT,data_Set,0, KEY_READ, ,网络空间安全技术实践教程,16,10.2注册表安

15、全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 /查询有关的数据 LPBYTE owner_Get = new BYTE80; DWORD type_1 = REG_EXPAND_SZ ; DWORD cbData_1 = 80; long ret1=RegQueryValueEx(hKEY, NULL, NULL, ,网络空间安全技术实践教程,17,10.2注册表安全防护编程实验,实验步骤: 1)注册表键值增删查改编程实现 if(strcmp(const char *)owner_Get,“%systemroot%system32notepad.exe %1“) = 0) pri

16、ntf(“没有中冰河“); else printf(“可能中了冰河“); printf(“n“); ,网络空间安全技术实践教程,18,10.2注册表安全防护编程实验,实验步骤: 2)利用MFC实现可视化增删改注册表 (1)建立工程,设计界面 先建立一个基于对话框的工程C*RegSEC,建立成功后,设计好注册表编辑界面。如图10-2-3所示,设计好后,分别给各个控件填上恰当的名字或者ID。,网络空间安全技术实践教程,19,(2)为控件添加变量 完成上述内容后,右键选择类向导,添加成员变量,如图10-2-4所示。,(3)实现创建注册表键值功能 添加好成员变量后,回到设计界面。双击创建按钮,进入代码编辑段,完成创建键值的功能。在CJiaocaiRegSecDlg:OnBnClickedButton1( )函数中,添加如下代码:,10.2注册表安全防护编程实验,实验步骤: 2)利用MFC实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号