首页> 中国专利> 针对网络安全设备进行渗透测试的方法和系统

针对网络安全设备进行渗透测试的方法和系统

摘要

本发明公开了一种针对网络安全设备进行渗透测试的方法,包括步骤:利用搭建的网络仿真环境,自动化配置并提供针对漏洞的渗透测试参数作为全局变量(101);自动执行漏洞的同步与辅助模块的扩展(102);调用渗透测试执行引擎,利用所述渗透测试参数,执行有效载荷的交叉遍历以批量进行漏洞检测和攻击测试(103);以及当全部有效载荷执行完毕后,自动生成攻击报表分析模块(104)。本发明还公开了一种针对网络安全设备进行渗透测试的系统。所述方法和系统大幅度提高了设备对已知和未知漏洞的发现和检测完备性,提高了在真实网络环境中实现漏洞的攻击、检测、和评估能力,并且大大提高了安全测试人员渗透测试的效率。

著录项

  • 公开/公告号CN102468985A

    专利类型发明专利

  • 公开/公告日2012-05-23

    原文格式PDF

  • 申请/专利号CN201010532859.9

  • 发明设计人 白敏;徐亮;谭菲菲;

    申请日2010-11-01

  • 分类号H04L12/26(20060101);H04L29/06(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人李舒;刘鹏

  • 地址 100089 北京市海淀区北洼路4号益泰大厦五层

  • 入库时间 2023-12-18 05:17:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-23

    授权

    授权

  • 2012-09-05

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20101101

    实质审查的生效

  • 2012-05-23

    公开

    公开

说明书

技术领域

本发明涉及网络安全领域,尤其涉及一种针对网络安全设备进行 渗透测试的方法和系统,更具体地涉及基于一种安全漏洞测试工具如 metasploit的渗透测试的方法和系统。

背景技术

渗透测试通常是通过模拟恶意黑客的攻击行为,来评估计算机网 络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术 缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来 进行的,并且从这个位置有条件主动利用安全漏洞。所谓“漏洞”指 的是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷, 从而可以使攻击者能够在未授权的情况下访问或破坏系统。

渗透测试一方面可以从攻击者的角度,检验业务系统的安全防护 措施是否有效,各项安全策略是否得到贯彻落实;另一方面可以将潜 在的安全风险以真实事件的方式凸现出来,从而有助于提高相关人员 对安全问题的认识水平。通过渗透测试可以发现一些隐蔽或潜在的安 全问题,通过对其进行安全加固,可以有效地防止真实安全事件的发 生。渗透测试通常是一个渐进的并且逐步深入的过程,一般选择不影 响业务系统正常运行的攻击方法进行测试。

渗透测试的工具有很多,基于网站的渗透如IBM Rational AppScan 7、DTools、casi等;基于系统的渗透如nmap、Nessus、NetCat、 Metasploit framework、Immunity CANVAS、Core Impact等;基于数 据库的渗透如DSQLTools、pangolin、oscanner等。

Canvas是Aitel′s ImmunitySec出品的一款安全漏洞检测工具。 它包含150个以上的漏洞利用。对于渗透测试人员来说,Canvas是比 较专业的安全漏洞利用工具。Canvas也常被用于对IDS和IPS的检测 能力的测试。但是Immunity CANVAS、Core Impact都是商业工具,无 法用做二次开发。

Metasploit是一款开源的安全漏洞检测工具。由于Metasploit 是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的 安全性。Metasploit Framework是一个编写、测试和使用Exploit代 码的完善环境。Exploit表示能够进行攻击并得到目标系统控制权的恶 意代码。这个环境为渗透测试、shellcode编写和漏洞研究提供了一个 可靠的平台。所谓Shellcode为攻击程序的核心代码,能够取得系统 的控制权(一般是取得一个shell),是一些汇编代码抽取成的16进 制码。Metasploit Framework作为一个缓冲区溢出测试使用的辅助模 块,也可以说是一个漏洞利用和测试平台。它集成了各平台上常见的 溢出漏洞和流行的shellcode,并且不断更新,使得缓冲区溢出测试变 得方便和简单。

渗透测试是一种完全站在攻击者角度对目标系统进行的安全性 测试,但是,目前渗透测试还主要依赖于安全测试人员手工对漏洞的 发现与探测,或利用一些渗透测试工具进行简单的测试和对已知漏洞 库进行测试,由于实现上的难度、时间成本等种种原因,渗透测试的 效率低,安全漏洞的覆盖率低,漏洞攻击较单一,不能覆盖漏洞攻击 的多种情况及攻击变形。

发明内容

本发明针对上述目前现有技术中渗透测试的效率低下、安全漏洞 覆盖率低等技术问题,提出一种基于安全漏洞的检测工具,例如 MetaSploit,实现自动化批量进行漏洞检测和攻击,大大提高了针对 网络安全设备进行漏洞检测的效率,同时提高了各类漏洞攻击的检测 率和阻断率。

根据本发明的一个方面,提供了一种针对网络安全设备进行渗透 测试的方法,该方法包括以下步骤:利用搭建的网络仿真环境,自动 化配置并提供针对漏洞的渗透测试参数作为全局变量;自动执行漏洞 的同步与辅助模块的扩展;调用渗透测试执行引擎,利用所述渗透测 试参数,执行有效载荷的交叉遍历以批量进行漏洞检测和攻击测试;以 及当全部有效载荷执行完毕后,自动生成攻击报表分析模块。

根据本发明的另一方面,提供了一种针对网络安全设备进行渗透 测试的系统,该系统包括:参数配置模块,利用搭建的网络仿真环境, 自动化配置并提供针对漏洞的渗透测试参数作为全局变量;可扩展的 安全工具集及辅助模块,自动执行漏洞同步与辅助模块的扩展;渗透 测试执行引擎,利用所述渗透测试参数,进行有效载荷的交叉遍历以 批量进行漏洞检测和攻击测试;以及攻击报表分析模块:当全部有效 载荷执行完毕后,自动生成攻击报表分析模块。

本发明采用轻量级网络仿真测试环境、可扩展的安全工具集、以 及自动化的渗透测试过程,大幅度提高了设备对已知和未知漏洞的发 现和检测完备性,提高了在真实网络环境中实现漏洞的攻击、检测、 和评估能力,并且大大提高了安全测试人员渗透测试的效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对 于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方 式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相 同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例的渗透测试系统的系统组成示意图;

图2示出了根据本发明实施例的渗透测试系统的模块构成示意图;

图3示出了用于根据本发明实施例的渗透测试系统的轻量级网络 仿真测试环境;

图4示出了按照本发明实施例的针对网络安全设备的渗透测试方 法流程图;

图5示出了按照本发明实施例的同步方式流程图;

图6示出了按照本发明实施例的渗透测试系统的检测原理;以及

图7示出了按照本发明实施例的渗透测试系统的核心函数逻辑关 系。

具体实施例

下面结合附图和具体的实施方式对本发明作进一步的描述。

图1描述了按照本发明实施例的渗透测试系统的系统组成示意图。 所述渗透测试系统包括:参数配置模块11,利用搭建的网络仿真环境 15,自动化配置并提供针对漏洞的渗透测试参数作为全局变量;可扩 展的安全工具集及辅助模块12,自动执行漏洞同步与辅助模块的扩展; 渗透测试执行引擎13,利用所述渗透测试参数,进行自动化的批量漏 洞检测和攻击测试;以及攻击报表分析模块14:当全部有效载荷执行 完毕后,自动生成攻击报表分析模块。所述渗透测试系统基于底层作 业系统16进行交互来完成测试。在作业系统的整套环境中,执行渗透 测试攻击,并及时还原作业系统。

优选地,本发明实施例的系统还可内置不同的策略模板,如针对不 同操作系统Unix、Windows操作系统、数据库等模板,同时允许用户 定制扫描策略和扫描使用的参数集,如扫描线程数量、并发主机数、 扫描端口范围、是否使用危险插件等。通过前期配置好的参数集,形 成一套渗透测试策略库。调用系统内部交叉匹配的各种Payload,形成 完成的攻击方案,发送攻击Exploit。

入侵检测技术的功能包括:监视分析用户及系统活动,查找非法用 户和合法用户的越权操作;检测系统配置的正确性和安全漏洞,并提 示管理员修补漏洞;识别反映已知进攻的活动模式并向相关人士报警; 对异常行为模式的统计分析;能够实时地对检测到的入侵行为进行反 应;评估重要系统和数据文件的完整性;可以发现新的攻击模式。当已 知漏洞利用了以上网络安全问题,渗透测试系统需要最大可能的进行 漏洞检测的覆盖。优选地,为了能更好的渗透其网络的安全性,按照 本发明实施例的渗透测试系统对模拟仿真的环境进行实时漏洞攻击探 测。判断各攻击常用端口,通过短时间的模拟攻击扫描结合客户提供 的详细情况,迅速寻找出目标网络中的薄弱环节,保证了制定的渗透 测试方案的整体效率。将已测试到的不能检测出的攻击漏洞进行知识 库的补充和规则库的新增,从而完善了网络安全检测设备的能力。

图2描述了按照本发明实施例的渗透测试系统的模块构成示意图。

在图2中,网络仿真环境215包含Exploit设计器211及多端口 212部分,渗透测试前完成Exploit攻击的必备环境,例如执行渗透测 试前期利用Exploit设计器211进行统一化参数配置等,基于该仿真 环境实现攻击目标的环境透明性。Exploit模块201能够进行攻击并 得到目标系统的控制权,有效载荷(payload)模块202用于生成 shellcode,可指定为C、Perl、Ruby等格式。辅助工具203及扩展模 块205完成了同自动化引擎协同工作时同步的漏洞扩展及即时插入漏 洞Exploit攻击代码。NOPs模块204用于填充返回地址前的内存(栈) 的无用信息,使控制指针向后滑,直到指向的恶意地址,执行payload。 SVN模块206与CVE模块207用于同步漏洞知识库。利用灵活的Ruby 扩展库(Ruby Extension Library),完成系统扩展漏洞更新的检测, 在知识库中不断更新漏洞定义,完善攻击检测样本。Payload代码模块 208用于系统的核心组成部分——自动化攻击引擎,对配置文件的自动 调用。通过获取基类库,交叉循环遍历漏洞工具集中的payload组合, 读取相应的已知全局变量参数自动生成攻击特征码。

图3描述了用于针对网络安全设备进行渗透测试的轻量级网络仿 真测试环境。本发明实施例所采用的轻量级仿真环境表示在没有多余 协同工作环境下仅通过简单的单一客户端300及服务器端320模拟多 台client及server,无需考虑物理网络架构,只需从逻辑上具备即可, 从而提高了网络环境的简易性。具体而言,只需将网络安全设备310 (例如网络入侵防护系统,NIPS)部署在该仿真网络环境中检测网络 中的漏洞攻击即可。该网络仿真测试环境包括以下部分:

(1)Client端300:网络应用客户端301通过提取Meta客户端 各Exploit中的有效载荷(Payload)参数,形成参数配置 文件330。

(2)中间设备端310:通过对网络中正常的数据报文及带有攻 击特征的报文进行检测,NIPS 310检测网络中的测试人员 在实际网络环境下利用各种攻击方式311(包括对带有攻 击特征的报文进行检测/阻断)对目标网络发起模拟攻击, 从而判断是否可以危害目标网络的安全。

(3)Server端320:仿真网络中具有多个漏洞必备的条件,网 络应用服务端321开启相应的网络端口和数据通道,等待 渗透测试攻击接受相应的shellcode并返回相应数据包。

(4)参数配置库340:该参数库定义了渗透测试攻击范围,即 包含哪些类型的漏洞攻击。同时该参数库能够对参数进行 自动更新与收集。执行攻击时读取已有参数配置库,包含 Exploit、Payload类型、平台、目标等。利用网络仿真环 境开启各端口和模拟各操作系统,达到统一读取和配置参 数的目的。

轻量级网络仿真环境的搭建,实现了内部测试中必备的功能和条 件,提供灵活的Server服务器和可扩展的网络仿真环境。并能够灵活 的对各类攻击进行响应和回包。

优选地,按照本发明实施例,能够进行有效的资产管理。具体而言, 本发明通过对仿真环境中的网络设备进行灵活的变更与配置,而不影 响自动化渗透测试环境的灵活应用及配置。一般来说,普通的渗透测 试,对漏洞攻击的环境要求比较严格,且每次执行攻击后需要将系统 还原或权限恢复,对资产管理极为不便。采用模拟仿真环境,解决了 对漏洞环境要求高的问题,通过模拟仿真接受攻击数据包,并自动化 返回会话所必须的信息,能够成功建立攻击,并便于资产管理。

图4描述了按照本发明实施例的针对网络安全设备进行渗透测试 的方法流程图。

本发明实施例利用混合匹配方式,不受漏洞执行平台及系统类型的 影响,采用多线程匹配技术,将内置参数模板和内置及扩展的Payload 进行关联,形成交叉遍历方式,提高漏洞检测度。

所述渗透测试方法的流程具体步骤如下:

步骤401:利用搭建的网络仿真环境,自动化配置并提供针对漏洞 的渗透测试参数作为全局变量。对于自动化攻击和安全设备的检测来 说,该仿真环境对漏洞种类来说是透明的。仿真环境提供必需的端口、 服务及地址轮询。

本发明实施例的网络仿真环境为轻量级网络仿真环境,具备通用攻 击测试场景,Client端和Server端之间搭建网络安全产品。具备攻击 与被攻击的地址与端口条件等。该网络仿真测试环境的配置考虑了渗 透测试中必须的条件,可支持各系统操作漏洞,并能在多进程并发、 多任务下支持系统的漏洞检测。

按照本发明实施例,参数配置库可存取大量payload参数,并且可 以采取批量更新和实时更新的方式进行批量更新或添加。

优选地,所述payload参数配置根据例如metasploit提供的系统 接口划分为不同类型的参数配置,主要的payload数据包括但不限于: (1)操作系统。所述操作系统包括但不限于Windows、Linux、Unix、 Solaris、FreeBSD等常用操作系统,以及适合可用的操作系统不同版 本等;(2)payload类型。执行渗透测试前,必须为将要对目标主机 起作用的Exploit选择一个Payload,类似于在目标机器上运行而获 得权限的核心代码。因此系统将需要遍历到的payload模块灵活配置 在参数表中。这样能有效发现高危WINDOWS系统漏洞或者有相应插件 的应用软件的漏洞。(3)攻击目标的地址:开启仿真环境中的多个被 攻击IP,及端口,确保连接处理正常。

优选地,所述payload参数配置还集合了常用的所有网络安全诊断 检测经验,包括但不限于:开放的端口、应用的协议、操作系统设置 的规则以及设备。

优选地,本发明实施例还可通过自定义端口扫描范围和端口扫描方 式,支持多种口令猜测方式,包括但不限于利用以下Http,Nntp,Imap, Telnet,Pop3,Ftp,Windows SMB等协议进行口令猜测,以及允许外挂用 户提供的字典。

优选地,按照本发明实施例,可以将系统所必需配置的参数进行集 中管理,通过渗透测试执行引擎自动读取各参数,同时利用Payload 模块部分的多种攻击特征执行渗透测试。

步骤402:自动执行漏洞的同步与辅助模块的扩展。通过与官网自 动化连接进行漏洞库的更新,及内部仿真环境搭建中对漏洞分析的知 识库进行漏洞的更新,从而实现在系统漏洞攻击前进行漏洞更新,达 到每次欲测试遍历的漏洞均为当前最新漏洞,同时网络安全工具集插 件和辅助模块可实时扩充。

由于漏洞发现的不断更新,需要实时有效的同步最新发现的漏洞, 和检测攻击代码。本发明实施例提供一种能够及时更新本地漏洞攻击 库的方式,能够实时获取到外部官网相应的漏洞信息和核心文件的下 载。重点关注漏洞的新增与更新,通过与SVN(近年来崛起的版本管理 工具)的同步,获取到漏洞攻击扫描应具备的漏洞库相应的Payload, 自由获取开发框架,同时更新漏洞利用模块和引擎程序。

优选地,按照本发明实施例,安全漏洞覆盖包括但不限于:windows 平台漏洞、Unix平台漏洞、软件及其他漏洞,同时支持不同平台及协 议的漏洞遍历扫描。或者,按照分析范围,本发明所覆盖的漏洞包括 但不限于系统级漏洞、系统服务错误、服务漏洞。针对不同平台、协 议和应用,本发明的系统可实现智能批量的溢出漏洞攻击,达到最大 范围的攻击覆盖度。

◆同步方式一

在MetaSploit这个平台中,仅包含了262个已经编写好的攻击, 177个有效载荷,以及数量繁多的辅助模块。基于此,实时的增加和更 新漏洞字典的覆盖度更为重要。对于实时更新的包括微软漏洞和其他 厂商或软件的漏洞。。

当公开发布一个新的漏洞,该网络渗透系统的自动更新模块通过同 步SVN库https://www.metasploit.com/svn/framework3/trunk/,进 行相关的漏洞内容和payload代码的同步。同步内容包括:安装路径 下各模块文件夹的所有内容均会更新。

图5描述了按照本发明的一种同步方式流程图。具体地,在步骤 501首先执行自动升级脚本的操作;随后在步骤502,执行“svn up”, 统计出更改的payload和encoder;在步骤503,重新生成攻击配置文 件;在步骤504,进行编码变形,重新生成各种payload;以及在步骤 505,执行攻击测试。

◆同步方式二

CVE(公共漏洞和暴露)类似一个字典表,为广泛认同的信息安全 漏洞或者已经暴露出来的弱点给出一个公共的名称。

这种已知的漏洞CVE“公共漏洞列表”相当于字典,提供了统一 的对已知安全漏洞相关通用名称,其目的是促进不同的安全工具和漏 洞数据库之间达到数据一致和数据共享。通过与漏洞发布官网如 SecurityFocus进行同步,进行已知漏洞库与系统已有漏洞库的比对, 完成“知识确认”功能,对于缺少的新发现的功能自动获取相应的漏 洞信息以方便使用Ruby代码实时对漏洞库进行新增,MSF进行扩展, 加入自己的Exploit或者shellcode。这意味着,任何一个新的 Exploit的诞生都能快速的集成到MSF中,达到漏洞攻击的Exploit 库的最大化。此时,同步到漏洞的相关信息包括:CVE编号、漏洞来 源、漏洞时间、漏洞类型、严重程度。自动与爬取网页相关漏洞信息 得到的漏洞集合进行新增比对,进行漏洞知识库的同步。将得到的信 息进行筛选,便于渗透测试人员进行重要漏洞的新增。

优选地,根据例如MetaSploit软件提供的接口能够扩展ruby插件, 实时添加漏洞信息。本发明通过与官方网站的自动连接,在利用该软 件进行自动化渗透测试前,实时高效地进行漏洞的补充和扩展,提取 并添加相应的攻击特征,从而大幅度提高了设备对已知和未知漏洞的 发现和检测,并提高了灵活度。

步骤403:调用渗透测试执行引擎,利用所述渗透测试参数,执行 自动化的批量漏洞检测和攻击测试。以此方式,检测网络安全设备对 漏洞攻击的检测能力。通过渗透测试执行引擎调用前期可控参数及漏 洞模块的payload,形成交叉遍历的漏洞集合,向仿真环境中Server 端插入带有恶意攻击的攻击特征。该攻击特征不会导致仿真环境中的 作业系统崩溃也无需还原,而是由网络安全设备进行拦截,并监测是否 属于攻击行为特征。

按照本发明实施例,所述渗透测试执行引擎通过自动调用测试脚本 来加载多种有效载荷。引擎自动执行的所述测试脚本至少包括:配置 批量payloads参数、调用溢出模块引擎、执行攻击命令格式、shell 获取类型。其中,通过自动调用例如Netcat(NC,号称网络工具中的 “瑞士军刀”)程序批量打开需要的端口,按照以下三种连接模式来 获取所述shell获取类型:

直接连接:溢出模块直接得到shell。

被动连接:溢出后需要之前自动打开的NC连接端口。

反弹连接:与事先打开的NC监听进行连接。

通过以上三种模式的连接,简单的自动化渗透测试即能帮助渗透测 试人员混合使用正面和负面的流量来测试轻负载下的安全基础设施, 确定攻击检测的覆盖度和有效性。

优选地,本发明实施例通过在公共配置参数模板中配置UDP端口数 量、TCP端口数量、全连接模式、并发进程数,使扫描过程高效准确。

优选地,在网络仿真设备性能足够好的情况下,Server端开启多 线程服务,模拟多漏洞主机,等待漏洞攻击发送payload,同时网络检 测设备检测是否检测出该攻击包。

优选地,在并发执行渗透测试时,并发攻击任务一般设置为5-10 个,多个网卡IP轮询,在保证攻击执行有效的情况下,Server端不崩 溃。

优选地,并发扫描的任务数应不小于10个,同时进行多个并发扫 描任务,系统不崩溃,同时被测网络安全设备(DUT设备)能够并行处 理高数据量的包传输,没有对设备性能产生大量影响。

利用自动化的渗透测试执行工具,提高了在真实网络环境中实现漏 洞的攻击、检测、和评估能力。同时大大提高了安全测试人员渗透测 试的效率,实时快速的添加对漏洞的审计与防范,并方便了渗透测试 人员可以探查漏洞进行测试。

步骤404:当全部payload执行完毕,生成攻击报表分析模块。

按照本发明实施例,渗透人员可以无需一直观察或等待每一个攻击 结果的显示。引擎自动判断通过网络安全设备的攻击特征是否被检测 到,如果没有被检测到,则结果为fail,并将安全工具集的当前攻击 状态打印至报表。循环交叉遍历多组Exploit和Payload,直至结束并 记录日志,生成攻击报表分析模块。

在本步骤中,可以采用自动评级技术,将所有漏洞进行严重级别分 类,利用辅助模块,采用自动生成可控结果进行分析。

按照本发明实施例,对灵活配置的攻击漏洞生成监测报表,自动给 出结果。生成报表结果的目的在于能够辅助测试人员进行结果的对比 分析,找到网络安全系统中薄弱的检测点进行修复。优选地,自动化 生成的报表展示不同的扫描类型和扫描结果。

本发明实施例还能够对生成的报表进行集中管理。例如,按照本发 明实施例,能够实现对报告模块的定制和生成。攻击报表展示的内容 提取MetaSploit中本身返回的信息,将攻击成功返回的结果提供给渗 透测试者,此处报表模块完整输出渗透测试结果的展示,重点关注网 络安全检测设备对攻击包的检测对比。将检测设备对攻击的检测策略 设置为阻断,总体结果判定为Pass或Fail。对于结果为Pass结果的 payload,说明系统已经成功判定及拦截;而对于结果为Fail的攻击, 说明攻击成功,直接提取系统返回的攻击记录写入日志,方便测试人 员进行漏洞类型的排查和重现。

优选地,本发明实施例还提供漏洞评级技术。在系统内部自建漏洞 评级系统,针对已知高危漏洞进行内部漏洞等级评定。根据自有漏洞 鉴别机制,内建BaseScore10分制评级,表示自建安全漏洞评级,根 据评估算法计算出不同的BaseScore以给渗透测试人员进行漏洞优先 评级选取及检测漏洞修改的优先级。依据shellcode变形种类及漏洞 在不同平台及内核的覆盖范围,转换为相应的安全漏洞等级系数,包 括危害程度、攻击类型、漏洞影响、访问权限等将结果转化为相应的 评级系数。该检测分数机制帮助测试人员对漏洞严重级别较高及设备 不易检测到的漏洞进行优先检测修复。

优选地,本发明实施例还提供状态签名。对于已执行的漏洞,返回 执行结果并进行状态签名,将执行成功或失败的“Payload遍历树”的 节点打上标签,提供可视化报表,并提供下一轮复测的查询机制,可 以再次遍历没有攻击成功的Payload。

优选地,本发明实施例还提供关联分析。针对已打上标签的 Payload树进行关联分析,利用10分制评级,对标记的重要节点进行 操作系统及漏洞级别关联,将报表提供给渗透测试者进行二次分析。

图6中描述了按照本发明实施例的渗透测试系统的检测原理。如图 6所示,在步骤601,读取可选xml配置节点信息;在步骤602,结合 多Exploit及Payload的组合;在步骤603,由exploit设计器进针对 仿真网络对象行设计;在步骤604,生成攻击测试用例;在步骤605, 通过网络安全设备对该行为进行检测;以及在步骤606,判断是否该特 征在安全设备的已有漏洞规则库中。

图7描述了实现按照本发明实施例的渗透测试系统的核心函数逻 辑关系示意图。以下描述该核心函数各逻辑块接口之间的关系。

步骤701:灵活配置各字段内容,函数接口直接调用该参数值。所 述参数值包括全局变量和局部变量。所述全局变量包括但不限于:是 否调试信息记录、日志信息记录范围的参数、编码模块的定位、空字 符段模块。而局部变量则是一些临时变量,包括但不限于保存设置 Exploit时输入漏洞宿主的IP地址和端口,及相应渗透测试指定调用 的模块。

优选地,所述参数值还可包括:

[MoPayloads]:主要Payload模块参数及路径,如设置为 osx/x86/bundleinject/bind_tcp,制定遍历的系统架构及Payload方 式。

[RMHOST]:该参数匹配为远程主机IP,即攻击的IP地址,可以是 一个网段或者一个IP地址文件,也就是一个IP列表,每个IP独占一行。

[LHOST]:该参数匹配为本机IP,标识主机地址。

[LPORT]:该参数匹配为本机监听端口,用于反弹连接的监听端口。

步骤702:函数初始化,快速创建测试用例集,自动设定各必选字 段及可选自定义字段。提前提供应用接口中的参数配置,形成配置参 数文档化。自动调用其中的测试套件及用例。具体函数包括:例如,

Initialization server;

Initialization driver:

Framework.exploits.create();

Framework.payload.create()

步骤703:调取设置参数,例如目的地址及端口等。

步骤704:调用自动化批处理引擎,进行系统级及服务级的payload 漏洞攻击。通过调用不同的Shellcode变形进行渗透测试完备率的覆 盖,同时自动化脚本提高了攻击效率。

步骤705:添加条件判断断言,检测是否返回预期结果。

断言指定预期结果返回类别,通常依据各类型漏洞判断接收在各漏 洞类型返回的定量值。如依据协议分类判断、服务类型判断、各系统 级应用软件漏洞判断。如果断言通过,则继续执行攻击的下一步骤检 测,直到攻击执行完毕,等待结果返回。如果完毕执行步骤706。

步骤706:重置服务器并输出日志。该步骤对结果进行分析,可以 确认并修改结果。系统针对遍历扫描的漏洞攻击,形成结果报表,同 时对于失败条目给出统计。通过提供可供渗透测试人员针对攻击检测 平台得出的结论,统计出攻击检测失败的一类,基于以上失败类型, 对网络检测设备漏洞攻击检测功能完善添加后进行重复攻击检测。在 生成报表的同时,可提供XML报表结构体接口,其包含漏洞信息、扫 描信息、扫描插件、产品以及扫描任务的基本信息的XML描述。

步骤707:循环读取配置参数,自动执行下一攻击。

按照本发明实施例的系统架构摒弃并节省了渗透测试前期按部就 班的繁琐配置,对于MSF架构中包含当前流行的操作系统和应用软件 的Exploit,以及上百个Payload,通过利用预置参数模板进行漏洞攻 击的交叉遍历,同时利用自动化的渗透测试执行引擎,最大可能地完 成了shellcode的攻击,增强了漏洞检测的完备性,大大提高了测试 人员进行渗透测试的效率。

本发明提供了一种基于安全漏洞检测工具(例如Metasploit)进 行自动化扫描漏洞。通过批量提取例如MetaSploit系统中各漏洞的 Exploit中相应有效载荷参数,形成可配置、可读写的灵活参数文件, 同时提供相应的遍历Payload攻击测试交叉方案。依据设置如 Metasploit接口提供的常用和可选参数,遍历Metasploit中各种漏洞 的Exploit及有效载荷,根据不同攻击方法的shellcode变形,发现 NIPS对不同攻击类型的检测覆盖程度。使用该方法测试NIDS/NIPS对 多种漏洞的检测,有效提高安全测试人员渗透测试的效率,并提高 NIDS/NIPS检测漏洞的能力。

应该注意的是,上述实施例对本发明进行说明而不是对本发明进行 限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可 设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考 符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利 要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除 存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件 以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利 要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。 单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词 解释为名称。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号