本发明专利技术公开了一种用于网络安全渗透测试的缓冲区溢出的植入代码快速生成系统,该系统基于植入代码生成的描述语言,渗透测试方根据渗透目标的CPU、操作系统、漏洞信息,描述出植入代码的需求特征,使用特定语言解释器,调用漏洞特征库和执行代码库等数据库,快速产生用于渗透测试的植入代码。该发明专利技术避免了渗透测试过程中手工产生植入代码的繁琐过程,使用者只需给出攻击目标的一些特征,系统就会按照预先生成的产生规则快速生成渗透测试所需要的植入代码,提高了渗透测试的工作效率和准确率。
【技术实现步骤摘要】
本专利技术涉及网络安全的
,特别是一种用于网络安全渗透测试的缓冲区溢 出的植入代码快速生成系统。
技术介绍
缓冲区溢出攻击是一种攻击计算机系统的手段,通过往被攻击程序的缓冲区写入 精心安排的超长内容,造成缓冲区溢出、越界,破坏程序执行逻辑,使之转向执行其他指令, 从而达到攻击者的目的。由于缓冲区溢出涉及CPU、操作系统、高级程序语言和编译器等原 因,长期以来由缓冲区溢出所造成的安全隐患一直是网络安全漏洞的主要原因。渗透测试作为网络安全中用于检测网络防御方案实际效果的主要手段,需要再现 真实的攻击技术,因此缓冲区溢出攻击是渗透测试过程中获取访问权限,入侵目标系统的 重要手段。长期以来,实现缓冲区溢出的主要技术难点集中在实现溢出的植入代码的构造 方面,渗透测试人员需要花费大量的精力寻找或者手工定制二进制代码,在该定制过程中 需要考虑漏洞的具体特征、所在操作系统的内存管理方式和CPU指令类型等诸多因素,任 何微小的错误都会造成测试的失败。因此,如何帮助测试人员快速的生成可用于渗透测试 的缓冲区溢出植入代码,会对渗透测试的工作效率和准确性产生重大影响。
技术实现思路
本专利技术为克服现有技术中存在的不足,提出了一种用于网络安全渗透测试的缓冲 区溢出的植入代码快速生成系统及方法,以解决渗透领域植入代码需要人工分析定制的现 状,提高渗透测试的工作效率和准确率。本专利技术采用的技术方案为一种用于网络安全渗透测试的缓冲区溢出的植入代码 快速生成系统,该快速生成系统主要有以下几部分组成植入代码属性描述器其提供系统的人机交互接口,由渗透测试的使用者对目标 相关属性做出描述,而后输入到语言解释构造器;语言解释构造器其是快速生成系统的核心部件,负责从外部读入植入代码的描 述语言,而后依据语言解释构造器自身的规则,从漏洞特征库和执行代码库中获取有关的 信息,最后加以组合,产生植入代码;漏洞特征库其主要存放具体的漏洞信息,包括该漏洞的用于快速检索的所属的 服务类型、植入代码的类型、返回值地址;执行代码库其在该数据库中主要存放着构造植入代码所需要的可执行代码 (shellcode)信息和填充数据,同时以漏洞特征库里面返回的植入代码类型作为进一步检 索依据,返回满足特定代码需求的shellcode。所述的植入代码类型和主机类型分别为操作系统版本信息和CPU类型。所述的存放着构造植入代码所需要的可执行代码信息和填充数据和CPU、操作系统联系密切,需要以CPU和操作系统的类型作为检索条件。本专利技术与现有技术相比的优点在于(I)、渗透测试人员只需要按照描述语言格式输入需要产生的植入代码属性,既可 以从系统中获取准确的植入代码,提高了渗透测试的效率。(2)、为生成系统提供支撑的漏洞库、执行代码库等数据库系统可以及时获取网络 的资源更新,确保渗透测试的成功运行。附图说明图1为本专利技术所使用的系统结构图2为植入代码四种基本类型的示意图3生成系统工作流程图。具体实施方式下面结合附图和具体实施方式进一步说明本专利技术。一种用于网络安全渗透测试的缓冲区溢出的植入代码快速生成系统,该快速生成 系统主要有以下几部分组成植入代码属性描述器提供系统的人机交互接口,由渗透测试的使用者对目标相 关属性做出描述,而后输入到语言解释构造器。语言解释构造器语言解释构造器是快速生成系统的核心部件,负责从外部读入 植入代码的描述语言,而后依据解释构造器内部的规则,从已知的漏洞特征库和执行代码 库中获取有关的信息,最后加以组合,产生植入代码。漏洞特征库主要存放具体的漏洞信息,包括该漏洞的所属的服务类型(用于快速 检索)、植入代码的类型、返回值地址等,具体的内容需要对漏洞分析得出。执行代码库在该数据库中主要存放着构造植入代码所需要的shellcode信息和 填充数据,这类信息和CPU、操作系统联系密切,因此需要以CPU和操作系统的类型作为检 索条件,同时以漏洞特征库里面返回的植入代码类型作为进一步检索依据,返回满足特定 代码需求的shellcode。本专利技术系统的实施步骤为(I)初始化阶段,渗透测试人员按照预先获取的测试节点的信息(包括渗透测试的 目标IP和端口号、溢出漏洞具体信息、主机的操作系统类型和CPU类型和攻击效果等),使 用描述语言对其进行描述,而后将这些信息输入到植入代码构造语言的解释器中。(2)语言解释器是在收到植入代码的描述语句之后,根据自身的规则,以输入的信 息为条件,执行数据库查询工作,通过对漏洞特征库和执行代码库的查询,获取组成植入代 码的基本元素shellcode、返回地址、填充数据和植入代码的类型。(3)语言解释器按照植入代码的类型,将shellcode、返回地址和填充数据进行组 装,输出产生的植入代码。具体的植入代码组装技术如下植入代码一般由shellcode、返回地址和填充数据三部分组成。其中shellcode负 责溢出后代码的具体执行,是植入代码的核心部分,实现基本的获权访问或其他的系统操作。返回地址表示shellcode的入口地址,渗透测试过程中通过返回地址改变程序的执行流程,转向执行预先准备的代码,通常伴随跳转指令实现。考虑到内存的分配,跳转的地址通常会处于一个较小的地址空间内并具有规律性。同时为了提高跳转的成果概率,需要使用一定数量的填充数据用于保障跳转地址可以落在指定的区域内,保证shellcode的正常执行。针对shellcode、返回地址(简记为R)和填充数据(记做N或者A)的组合方式,可以分为以下几种类型NSR型该类型主要在shellcode后安排一定数量的返回地址,用于指令跳转,前面则安排大量的返回地址,这种情况下代码向前跳转执行指令。该类型适用于缓冲区比较大的情况。RNS型该类型适用于缓冲区比较小的情况,返回地址放在植入代码的前段,其后仿真填充数据,而把shellcode放置在最后的位置,可以安排在缓冲区之外的空间,用以实现获权 访问等活动。AR型该类型的植入代码分做两部分,进入缓冲区的植入代码主要为填充数据和返回地址,shellcode代码则直接放置在其他位置,该类植入代码适合用于本地的渗透测试。NRS型该类型主要通过植入代码的跳转到指定系统动态链接库,再通过动态链接库的函数调用跳转回指定的shellcode。这种方式可以通过动态链接库有效的定位溢出代码,同时也可以避免shellcode在内存限制区域被破坏的情况。植入代码主要由字符集、单词集、表达式和语句四部分组成,其中字符集为〈字符集>二=<字母> I <数字>1〈符号>I〈|P基数>〈字母>::=〈数字=〈符号=-L〈IP基数>::=(112I 25)单词集<单词集>::=〈保留字>1〈常量〉常量=〈字符常量>〈整数常量> I〈ip常量〉<字符常量>::= <字母> I <字符常量 >〈字母> I <字符常量X数字> I <量X符号><整数常量>=<数字〉<整数常量X数字>〈IP 常量 >:::=〈IP基数>·〈IP基数>·〈IP基数>·〈IP基数>表达式<表达本文档来自技高网...
【技术保护点】
一种用于网络安全渗透测试的缓冲区溢出的植入代码快速生成系统,其特征在于,该快速生成系统主要有以下几部分组成:植入代码属性描述器:其提供系统的人机交互接口,由渗透测试的使用者对目标相关属性做出描述,而后输入到语言解释构造器;语言解释构造器:其是快速生成系统的核心部件,负责从外部读入植入代码的描述语言,而后依据语言解释构造器自身的规则,从漏洞特征库和执行代码库中获取有关的信息,最后加以组合,产生植入代码;漏洞特征库:其主要存放具体的漏洞信息,包括该漏洞的用于快速检索的所属服务类型、植入代码的类型、返回值地址;执行代码库:其在该数据库中主要存放着构造植入代码所需要的可执行代码(shellcode)信息和填充数据,以漏洞特征库里面返回的植入代码类型作为检索依据,返回满足特定代码需求的shellcode。
【技术特征摘要】
【专利技术属性】
技术研发人员:焦健,李肖坚,钟达夫,
申请(专利权)人:北京信息科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。