一种渗透任务生成方法、系统、电子设备及存储介质与流程

文档序号:29856194发布日期:2022-04-30 09:26阅读:119来源:国知局
一种渗透任务生成方法、系统、电子设备及存储介质与流程

1.本技术涉及安全检测技术领域,尤其是涉及一种渗透任务生成方法、系统、电子设备及存储介质。


背景技术:

2.渗透测试是指通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。
3.现有的渗透测试方法均是基于渗透工具来进行渗透测试的,而渗透工具所执行的渗透任务是预先以固定的逻辑形式写入代码中,因此所有渗透任务都是有严格的执行顺序的,若设计者或用户未添加运行顺序或运行逻辑,则渗透程序不会自动对渗透任务进行识别和执行,从而降低了漏洞识别的准确率和召回率。


技术实现要素:

4.为了实现渗透任务的自动生成以及执行,本技术提供了一种渗透任务生成方法、系统、电子设备及存储介质。
5.在本技术的第一方面,提供了一种渗透任务生成方法。该方法包括:
6.获取渗透数据,并将所述渗透数据存入消息队列;
7.基于所述消息队列,将所述渗透数据与渗透脚本进行匹配;
8.若匹配成功,则生成并执行渗透任务;
9.所述渗透数据包括历史渗透任务的执行结果。
10.通过采用上述技术方案,根据获取到的渗透数据自动匹配渗透脚本,匹配成功则生成渗透任务,并执行渗透脚本,因此,只要获取到的渗透数据满足渗透脚本的输入,即可驱动渗透脚本的运行,从而实现渗透任务的自动生成以及执行。
11.可选的,该方法还包括:判断预设时间段内是否获取到所述渗透任务的执行结果;若否,则结束渗透。
12.可选的,所述判断预设时间段内未获取到所述渗透任务的执行结果之前还包括:判断所述渗透任务是否执行完毕;若是,则直接结束渗透。
13.可选的,所述判断预设时间段内未获取到所述渗透任务的执行结果之前还包括:若否,则等待未执行完毕的渗透任务;在未执行完毕的渗透任务执行完毕之后,则执行“判断预设时间段内是否获取到所述渗透任务的执行结果”的步骤。
14.可选的,所述基于所述消息队列,将所述渗透数据与渗透脚本进行匹配之前还包括:判断所述渗透数据是否已存在于所述消息队列;若否,则执行“将所述渗透数据与渗透脚本进行匹配”的步骤。
15.可选的,所述渗透数据还包括待渗透目标的相关信息;所述相关信息至少包括whois信息、端口信息、服务信息、软件信息、敏感内容信息中的一种。
16.在本技术的第二方面,提供了一种渗透任务生成系统。该系统包括:
17.获取模块,用于获取渗透数据,并将所述渗透数据存入消息队列;
18.匹配模块,用于基于所述消息队列,将渗透数据与渗透脚本进行匹配;
19.生成执行模块,用于在匹配成功后,生成并执行渗透任务;
20.其中,所述渗透数据包括历史渗透任务的执行结果。
21.可选的,该系统还包括:
22.判断模块,用于判断预设时间段内是否获取到所述渗透任务的执行结果;
23.结果执行模块,用于在预设时间段内未获取到所述渗透任务的执行结果时,结束渗透。
24.在本技术的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
25.在本技术的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本技术的第一方面的方法。
26.应当理解,发明内容部分中所描述的内容并非旨在限定本技术的实施例的关键或重要特征,亦非用于限制本技术的范围。本技术的其它特征将通过以下的描述变得容易理解。
附图说明
27.结合附图并参考以下详细说明,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
28.图1是本技术实施例中渗透任务生成方法的流程图;
29.图2是本技术实施例中渗透任务生成系统的方框图;
30.图3是本技术实施例中电子设备的方框图。
具体实施方式
31.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
32.渗透测试是指尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,从攻击者的角度对渗透目标(例如:网络、系统、主机应用)的安全性作深入的非破坏性的探测,发现系统安全防护最脆弱环节的过程。渗透测试的核心是通过最大限度的信息收集和漏洞分析,寻找渗透目标的安全防护中最薄弱点。
33.基于上述渗透测试的介绍,渗透任务即为通过对渗透目标进行渗透,来获取该渗透目标的相关信息的过程。获取相关信息后,即可先对渗透目标进行初步的漏洞分析。还可以利用漏洞,来获取更多的渗透目标相关数据,因此,漏洞利用也可以作为渗透任务执行。在本技术中,则是直接通过运行多种渗透脚本来进行扫描,获取渗透数据。
34.图1示出了本技术实施例中渗透任务生成方法的流程图。参见图1,该方法包括以下步骤:
35.步骤s110:获取渗透数据,并将渗透数据存入消息队列。
36.首先,需要说明的是,消息队列是指在消息的传输过程中保存消息的容器,且消息队列具有先入先出的特点。在本技术中,将渗透数据作为消息存储在消息队列中,从而保留
了获取渗透数据的获取顺序。
37.在本技术实施例中,渗透数据包括历史渗透任务的执行结果。具体地,历史渗透任务即为已经执行完毕的渗透任务,当渗透任务执行完毕时,会输出执行结果,该执行结果即为获得的新的渗透数据;获得新的渗透数据后,将渗透数据存储在消息列队中。
38.在一些实施方式中,渗透数据还包括待渗透目标的相关信息,相关信息包括但不限于whois信息、端口信息、服务信息、软件信息、敏感内容信息等。比如,whois信息还可以具体为域名ip、所有者信息、域名注册时间、域名到期时间、域名状态、dns服务器信息等,再比如,敏感内容信息可以具体为敏感目录、敏感文件等。可以根据渗透目标的类型和性质,针对性地获取渗透目标的相关信息。
39.获取相关信息的方式具体可以通过对端口、服务器、软件、中间件、系统防火墙等进行扫描获得,若渗透目标存在web服务,则还可以通过对渗透目标进行敏感路径扫描、子域名爆破、爬虫等方式获得相关信息。需要说明的是,子域名爆破是指探测域名下的所有子域名。
40.示例地,假设对某一个网站进行渗透,该网站即为渗透目标,网站类型即为渗透目标的类型。网站通常具有服务端口、域名等,因此,可以通过对网站端口服务器进行扫描、对网站域名进行强行爆破等,来获取到该网站开启的端口信息、该网站域名下的所有子域名信息等,这些信息均可作为渗透目标的相关信息。
41.获取到渗透数据后,可以根据渗透数据的类型和用处,使用标签信息和属性信息对渗透数据进行标记,并存入消息队列中。例如,渗透数据为端口信息,则这些渗透数据的标签信息可以是“端口”、属性信息可以为该端口信息的名称等。通过对渗透数据赋予标签信息和属性信息,来根据标签信息和属性信息对渗透数据进行分类,从而方便后续匹配渗透脚本的过程。
42.步骤s120:基于消息队列,将渗透数据与渗透脚本进行匹配。
43.在本技术实施例中,渗透脚本按照功能分有多种。其包括但不限于端口扫描脚本、爬虫脚本、服务器扫描脚本、软件扫描脚本、中间件扫描脚本、系统扫描脚本、子域名爆破脚本等,通过使用脚本进行渗透,能够提高渗透速率。
44.具体地,存储在消息队列中的渗透数据与渗透脚本具体的匹配方法为:对所有渗透脚本进行遍历,当渗透脚本所需的所有输入数据都能够在消息队列中的所有渗透数据中找到,则与渗透脚本输入数据对应的渗透数据和该渗透脚本匹配成功。在一些实施方式中,也可以根据标签信息和属性信息来进行渗透脚本匹配。
45.示例地,消息队列中的渗透数据包括有渗透目标的ip地址、域名,将这些渗透数据与脚本进行匹配。假设端口扫描脚本需要输入的数据为ip地址,子域名爆破脚本的输入数据为渗透目标的域名。则该消息队列中的ip地址数据与端口扫描脚本匹配成功,该消息队列中的域名数据与子域名爆破脚本匹配成功。
46.在一些实施方式中,在步骤s120之前还包括以下步骤:
47.判断渗透数据是否已存在于所述消息队列;若否,则执行“将渗透数据与渗透脚本进行匹配”的步骤。
48.具体地,获取到渗透数据后,还需先将获得的新的渗透数据与消息队列中已有的渗透数据进行比对,判断该新的渗透数据是否与已存在于消息队列中的渗透数据相同。若
是,则将获得的新的渗透数据丢弃;若否,则进行脚本匹配。从而避免将同一渗透数据重复存入消息队列,也避免同一渗透任务不会存在多次运行的情况,进而确保了不会产生任务环,导致渗透任务无限进行下去。
49.示例地,假设消息队列中的渗透数据已存在某开放端口的ip地址192.168.1.1-254,若经过端口扫描脚本的运行,再次获得了该开放端口的ip地址192.168.1.1-254,则不将后获得的ip地址存入消息队列中。
50.步骤s130:若匹配成功,则生成并执行渗透任务。
51.具体地,渗透数据与渗透脚本匹配成功后,会生成一个渗透任务,并自动调用匹配成功的渗透脚本,与渗透脚本对应的渗透数据同时也会输入渗透脚本中,并执行该渗透脚本。执行渗透脚本后,渗透脚本会输出执行结果,通过该执行结果可以再进一步的获取更多的数据。因此,该执行结果作为新的渗透数据,继续进行渗透脚本匹配以及执行。
52.需要说明的是,本技术中所说的渗透任务为:在一个大渗透任务下的子渗透任务,其中,渗透任务可以同时运行有多个。示例地,渗透mysql数据库为上述大渗透任务,渗透mysql数据库过程中通过端口获取mysql数据库的渗透数据、通过系统获取mysql数据库的渗透数据均为该大任务下的渗透任务,因此,当渗透数据与渗透脚本匹配成功,就会生成一个渗透任务,且在一个大渗透任务下,可以同时执行有多个渗透任务。
53.在一些实施方式中,渗透任务生成方法还包括以下步骤:
54.步骤s140:判断预设时间段内是否获取到渗透任务的执行结果。
55.若否,则结束渗透。
56.具体地,当在预设时间段内消息队列没有再获得新的执行结果时,可以基本确定所有渗透任务都执行完毕,则结束大渗透任务。若在预设时间段内获得了新的执行结果,则继续循环上述步骤,来进一步获取渗透数据。
57.需要说明的是,预设时间段可以根据历史渗透时间来设定,例如,可以取历史渗透时间的平均值;或者根据经验人为设定。在判断时,具体是在消息队列接收到新的执行结果后开始计时,直至在预设时间段内接受到下一个新的执行结果时,计时数据清零。
58.还是以上述渗透mysql数据库为例,渗透mysql数据库为大渗透任务,在渗透mysql数据库过程中,通过运行端口扫描脚本执行端口扫描的渗透任务、通过运行系统扫描脚本执行系统扫描的渗透任务,以及其他渗透任务;实时接收渗透任务完成时输出的执行结果,当在预设时间段内一直未收到执行结果,则结束渗透mysql数据库这个大渗透任务,说明此时已经对mysql数据库进行了充分的渗透。
59.在一些实施方式中,在判断出预设时间段内未获取到渗透任务的执行结果,结束渗透之前还包括以下步骤:
60.步骤s150:判断渗透任务是否执行完毕。
61.若是,则直接结束渗透。
62.具体地,若在预设时间段内未获取到新的执行结果,可以先检查所有渗透任务都已执行完毕,若都已执行完毕,则直接结束该大渗透任务,即整个渗透流程。检查的方式可以为查询所有渗透任务的任务信息,若任务信息显示已结束,则说明该渗透任务结束。
63.在一些实施方式中,若还有渗透任务在运行,则还包括以下步骤:
64.步骤s160:等待未执行完毕的渗透任务。
65.在未执行完毕的渗透任务执行完毕之后,执行步骤140。
66.具体地,若检测到还有渗透任务在执行,则继续等待未执行完毕的渗透任务,直至消息队列接收到未执行完毕的渗透任务输出的执行结果,接收到执行结果,则再次判断预设时间段内是否获取到渗透任务的执行结果。
67.通过上述步骤,消息队列中新的渗透数据不断增加,只要有满足渗透脚本所需的输入数据,就可以自动调用渗透脚本进行渗透,这种利用渗透数据驱动渗透脚本运行的方式实现了渗透任务的自动生成、匹配以及执行,从而提高了漏洞是被的准确率和召回率。
68.图2示出了本技术实施例中渗透任务生成系统的方框图。参见图2,该系统包括:
69.获取模块210,用于获取渗透数据,并将所述渗透数据存入消息队列;
70.匹配模块220,用于基于所述消息队列,将渗透数据与渗透脚本进行匹配;
71.生成执行模块230,用于在匹配成功后,生成并执行渗透任务;
72.其中,所述渗透数据包括历史渗透任务的执行结果。
73.在一些实施方式中,该系统还包括:
74.判断模块240,用于判断预设时间段内是否获取到渗透任务的执行结果;
75.结果执行模块250,用于在预设时间段内未获取到渗透任务的执行结果时,结束渗透任务。
76.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
77.本技术实施例中提供了一种电子设备,如图3所示,图3所示的电子设备300包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备300还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备300的结构并不构成对本技术实施例的限定。
78.处理器301可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
79.总线302可包括一通路,在上述组件之间传送信息。总线302可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
80.存储器303可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数
字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
81.存储器303用于存储执行本技术方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现前述方法实施例所示的内容。
82.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
83.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本技术的渗透任务生成方法。
84.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1