一种网络渗透测试方法

文档序号:10515536阅读:181来源:国知局
一种网络渗透测试方法
【专利摘要】本发明提出一种网络渗透测试方法,包括步骤:(1)基于现有的网络拓扑和漏洞信息列表,根据不同网段间的可访问性建立网络攻击路径;(2)遍历网络攻击路径,每两个相邻网段为一组,以前一个网段中的一台主机作为攻击者,后一个网段中的一台主机作为攻击目标,针对攻击目标的每个漏洞构建单漏洞利用模型SVEM;(3)基于后向搜索算法进行SVEM的合成,构建从攻击机到目标主机的攻击图;(4)根据攻击图分解出所有可能的攻击路径,针对每条路径中的漏洞进行攻击,得到有效的攻击路径。本发明能根据网络环境自动规划攻击路径并且实现自动渗透攻击的方案,快速高效的对目标系统进行渗透测试,节省大量的人力物力。
【专利说明】
一种网络渗透测试方法
技术领域
[0001 ]本发明涉及计算机信息安全领域,尤其是一种网络渗透测试方法。
【背景技术】
[0002]随着网络的发展以及应用,人们对计算机网络的依赖越来越强。与此同时,网络系统的安全问题也越来越突出。渗透测试作为一种模拟攻击者对目标系统进行安全测试的方法,应用也越来越广泛。然而,随着网络环境越来越复杂,要完成对网络环境中指定目标系统的渗透测试的难度也越来越大。通常情况下,安全测试人员需要花费大量的时间去规划攻击路径以及完成对漏洞的验证。现有的渗透测试方案大多只针对简单网络环境的目标主机,没有与攻击图有效结合。如果存在一种根据网络环境自动规划攻击路径并且实现自动渗透攻击的方案,就可以快速高效的对目标系统进行渗透测试,节省大量的人力物力。

【发明内容】

[0003]发明目的:为解决上述技术问题,提供一种根据网络环境自动规划攻击路径并且实现自动渗透攻击的方案,本发明提出一种网络渗透测试方法。
[0004]技术方案:本发明提出的技术方案为:
[0005]—种网络渗透测试方法,包括步骤:
[0006](I)建立网络攻击路径:基于目标网络的网络拓扑信息和漏洞信息列表,确定攻击主机和目标主机所在的网段;利用各网段之间的可达性,寻找所有能够从攻击主机所在网段到达目标主机所在网段的路径,寻找所得路径即为网络攻击路径;
[0007](2)根据步骤(I)得到的网络攻击路径构建单漏洞利用模型集合,方法为:
[0008](2-1)选取其中一条网络攻击路径,从该网络攻击路径中攻击主机所在的网段开始逐个遍历该网络攻击路径中的其他网段;
[0009](2-2)根据遍历的顺序,在相邻的两个网段中,遍历两个网段中的所有主机,并且以前一个网段中的主机作为攻击者,以后一个网段中的主机作为攻击目标,针对攻击目标的每个漏洞构建单漏洞利用模型;
[0010](2-3)根据步骤(2-1)至(2-2)所述方法遍历所有网络攻击路径,所得到的所有单漏洞利用模型形成单漏洞利用模型集合;
[0011](3)采用后向搜索算法,根据单漏洞利用模型集合构建网络攻击图;
[0012](4)根据网络攻击图,寻找能够使攻击主机获取目标主机管理员权限的所有路径作为渗透攻击路径;
[0013](5)对每条渗透攻击路径中的所有漏洞进行攻击,获得有效的攻击路径。
[0014]进一步的,所述步骤(I)中的网络拓扑信息包括:网络ID、网段以及相邻网段的可达性;漏洞信息列表包括:网络中所有主机的ID、IP、所在网段ID以及漏洞ID、漏洞类型、漏洞攻击者权限以及漏洞利用成功获得的目标主机权限;其中,漏洞ID为其CVE编号,漏洞利用成功获得的目标主机权限分为三个级别:无、普通用户权限和系统管理员权限。
[0015]进一步的,所述步骤(2)中构建相邻网段间的单漏洞利用模型的方法为:
[0016]针对攻击目标的所有漏洞分别构建单漏洞利用模型,每个单漏洞利用模型中,以攻击者权限和攻击目标存在的漏洞的信息作为输入库所集合,以漏洞利用的过程作为变迀集合,以漏洞利用成功后取得的权限作为输出库所集合。
[0017]进一步的,所述步骤(3)中构建攻击图的具体步骤为:
[0018](3-1)从渗透测试的目标主机开始,找到所有利用目标主机漏洞获得管理员权限的单漏洞利用模型,即找到所有输出库所为目标主机管理员权限的单漏洞利用模型;
[0019](3-2)以步骤(3-1)找到的单漏洞利用模型的攻击者权限作为上一次攻击获得的攻击目标的主机权限;
[0020](3-3)循环执行步骤(3-2)直至找到的单漏洞模型的攻击者为攻击主机。
[0021 ]进一步的,所述步骤(5)中获得有效的攻击路径的方法为:
[0022]在对每条渗透攻击路径中的某个漏洞进行攻击时,利用该漏洞所在单漏洞利用模型中的漏洞CVE编号寻找漏洞利用库中该漏洞的利用代码的路径;然后以PRC远程调用方式将漏洞攻击所需的参数传递给本地或远程的渗透测试框架,并通过返回的会话判断该漏洞利用是否成功;若某条渗透攻击路径中攻击所有漏洞后返回的会话具有最终目标主机的管理员权限则说明该渗透攻击路径为有效的攻击路径;否则,判定该渗透攻击路径为无效的攻击路径。
[0023]有益效果:与现有技术相比,本发明具有如下优势:
[0024]1、针对渗透测试的特点,简化了传统用于网络风险评估的单漏洞利用模型,使之能够应用于自动化渗透测试中,进行多主机、多阶段的渗透攻击;
[0025]2、降低了构建攻击图的复杂度。对渗透测试过程进行合理假设:攻击者只要获取到局域网中一台主机的权限,就相当于控制了整个局域网,因此不考虑同一个局域网内主机的相互交互,只考虑跨网段攻击的情况,从而可以减小攻击图构建的复杂度;
[0026]3、实现了渗透测试过程的自动化。以渗透测试环境的描述结果为输入,能够针对复杂网络环境自动进行攻击路径规划然后进行渗透攻击,对攻击路径以及漏洞进行有效性验证。
【附图说明】
[0027]图1为实施例中渗透测试模型的架构图;
[0028]图2为实施例中网络渗透测试的流程图;
[0029]图3为现有技术中单漏洞利用模型的CPN网络结构;
[0030]图4为实施例中的一个单漏洞利用模型;
[0031]图5为实施例中渗透测试网络的网络拓扑结构;
[0032]图6为实施例中的网络攻击图。
【具体实施方式】
[0033]下面结合附图对本发明作更进一步的说明。
[0034]实施例:如图1所示为渗透测试模型,它包括的四个组成部分:渗透测试环境描述语言(PTDL)、单漏洞利用模型(SVEM)、网络攻击图模型以及自动攻击模型。
[0035]渗透测试环境描述语言采用XML进行描述,包括网络环境描述和主机漏洞信息描述两个子部分,其中网络描述部分为一系列对于具体网络的描述,每个具体网络包括网络ID、网段以及邻接可达网络ID;主机漏洞信息描述部分包括一系列具体主机的相关信息,包括主机ID、主机IP、主机所在网络ID以及一系列主机漏洞列表,每个漏洞包括漏洞CVE编号、漏洞类型、漏洞攻击者权限以及漏洞利用获得权限。
[0036]图2所示为本实施例中网络渗透测试的流程图,用于此次渗透测试的网络拓扑结构如图5所示,渗透测试的具体步骤如下:
[0037]步骤一、建立渗透测试环境描述文件,以XML格式记录相应的网络环境以及主机漏洞信息。
[0038]步骤二、以步骤一建立的XML文件为输入,解析渗透测试环境,根据网络之间的可达性,建立从攻击主机所在网络到目标主机所在网络的网络攻击路径。如图5所示的网络中,建立的网络攻击路径为Outer->DMZ_>Internal。
[0039]步骤三、根据网络攻击路径Outer->DMZ->Internal建立0uter->DMZ和DMZ->Internal两个网段的单漏洞利用模型集合。建立单漏洞利用模型时以前一个网段中的主机为攻击者,以后一个网段中的主机为攻击目标,每个单漏洞利用结构如图3所示。
[0040]图3中的单漏洞利用模型SVEM是以颜色Petri网为基础,可以表示成:
[0041 ] SVEM=<Ppre,t,Pcon>
[0042]其中,Ppre3S输入库所集合,表示脆弱性利用需要满足的前提条件,包括攻击者权限和目标系统存在的漏洞;t为变迀集合,表示脆弱性利用过程;P-为输出库所集合,表示脆弱性利用成功之后取得的结果。如图4是一个具体的单漏洞利用模型,HO作为攻击者具有HO主机的ROOT权限,并且可以访问Hl主机,HO针对Hl的漏洞编号CVE-2007-5423的漏洞展开攻击,漏洞利用成功之后攻击者HO可以获得Hl主机的USER权限。
[0043]步骤四、利用步骤三中的单漏洞利用集合,建立完整的网络攻击图。网络攻击图为由单漏洞利用模型组合而成的CPN网络,通过网络攻击图可以将所有的攻击路径可视化。如图6所不为图5所不的网络拓扑图对应的网络攻击图。由网络攻击图分解出的一条攻击路径为
[0044]H0_R00T->H0_Hl_CVE-2015-7857->Hl_USER->Hl_H3_CVE-2009-1979->H3_R00T,首先HO利用Hl的编号为CVE-2015-7857的漏洞获得Hl的USER权限,然后利用H3的编号为CVE-2009-1979的漏洞获得H3的ROOT权限。整个攻击过程都是有HO发起,获得Hl的权限之后,以Hl为跳板,继续对H3展开攻击,最终获得H3的ROOT权限。
[0045]步骤五、由网络攻击图分解出对应的网络攻击路径,确定攻击路径之后,针对每个主机漏洞搜索相应的漏洞利用代码,然后利用相应代码展开攻击,攻击成功可以获得目标主机的对应权限,具体为:
[0046]渗透攻击针对每一条网络攻击路径展开,对网络攻击路径中的漏洞进行利用时,利用SVEM中的漏洞编号寻找漏洞利用库中的漏洞利用代码的路径,然后以RPC远程调用的方式将必需的参数传递给本地或远程的Metasploit渗透测试框架,通过返回的会话可以判断是否利用成功,如果某条攻击路径中的漏洞全部利用成功,即说明该攻击路径的存在,以及相应漏洞的存在性。在渗透攻击中,漏洞利用代码路径是其中的一个参数,一般来说还需要其他参数。不同的漏洞在进行利用的过程中,需要的参数是不同的,比如某个远程利用漏洞,需要提供IP地址、端口等信息,而本地利用漏洞则需要提供已经取得的本地权限的会话ID0
[0047]步骤六、根据渗透攻击的结果形成渗透测试报告,得出有效的攻击路径以及验证对应漏洞的存在性,同时从整体攻击效果方面给出漏洞的危害性,同时也对如何解决整体安全问题提出建议。
[0048]以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种网络渗透测试方法,其特征在于,包括步骤: (1)建立网络攻击路径:基于目标网络的网络拓扑信息和漏洞信息列表,确定攻击主机和目标主机所在的网段;利用各网段之间的可达性,寻找所有能够从攻击主机所在网段到达目标主机所在网段的路径,寻找所得路径即为网络攻击路径; (2)根据步骤(I)得到的网络攻击路径构建单漏洞利用模型集合,方法为: (2-1)选取其中一条网络攻击路径,从该网络攻击路径中攻击主机所在的网段开始逐个遍历该网络攻击路径中的其他网段; (2-2)根据遍历的顺序,在相邻的两个网段中,遍历两个网段中的所有主机,并且以前一个网段中的主机作为攻击者,以后一个网段中的主机作为攻击目标,针对攻击目标的每个漏洞构建单漏洞利用模型; (2-3)根据步骤(2-1)至(2-2)所述方法遍历所有网络攻击路径,所得到的所有单漏洞利用模型形成单漏洞利用模型集合; (3)采用后向搜索算法,根据单漏洞利用模型集合构建网络攻击图; (4)根据网络攻击图,寻找能够使攻击主机获取目标主机管理员权限的所有路径作为渗透攻击路径; (5)对每条渗透攻击路径中的所有漏洞进行攻击,获得有效的攻击路径。2.根据权利要求1所述的一种网络渗透测试方法,其特征在于,所述步骤(I)中的网络拓扑信息包括:网络ID、网段以及相邻网段的可达性;漏洞信息列表包括:网络中所有主机的ID、IP、所在网段ID以及漏洞ID、漏洞类型、漏洞攻击者权限以及漏洞利用成功获得的目标主机权限;其中,漏洞ID为其CVE编号,漏洞利用成功获得的目标主机权限分为三个级别:无、普通用户权限和系统管理员权限。3.根据权利要求2所述的一种网络渗透测试方法,其特征在于,所述步骤(2)中构建相邻网段间的单漏洞利用模型的方法为: 针对攻击目标的所有漏洞分别构建单漏洞利用模型,每个单漏洞利用模型中,以攻击者权限和攻击目标存在的漏洞的信息作为输入库所集合,以漏洞利用的过程作为变迀集合,以漏洞利用成功后取得的权限作为输出库所集合。4.根据权利要求3所述的一种网络渗透测试方法,其特征在于,所述步骤(3)中构建攻击图的具体步骤为: (3-1)从渗透测试的目标主机开始,找到所有利用目标主机漏洞获得管理员权限的单漏洞利用模型,即找到所有输出库所为目标主机管理员权限的单漏洞利用模型; (3-2)以步骤(3-1)找到的单漏洞利用模型的攻击者权限作为上一次攻击获得的攻击目标的主机权限; (3-3)循环执行步骤(3-2)直至找到的单漏洞模型的攻击者为攻击主机。5.根据权利要求4所述的一种网络渗透测试方法,其特征在于,所述步骤(5)中获得有效的攻击路径的方法为: 在对每条渗透攻击路径中的某个漏洞进行攻击时,利用该漏洞所在单漏洞利用模型中的漏洞CVE编号寻找漏洞利用库中该漏洞的利用代码的路径;然后以PRC远程调用方式将漏洞攻击所需的参数传递给本地或远程的渗透测试框架,并通过返回的会话判断该漏洞利用是否成功;若某条渗透攻击路径中攻击所有漏洞后返回的会话具有最终目标主机的管理员权限则说明该渗透攻击路径为有效的攻击路径;否则,判定该渗透攻击路径为无效的攻击路径。
【文档编号】H04L29/06GK105871885SQ201610308035
【公开日】2016年8月17日
【申请日】2016年5月11日
【发明人】栾俊超, 王箭, 薛明富, 陈梦珽
【申请人】南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1