一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

渗透测试方法、装置、设备及存储介质与流程

2022-02-22 20:09:36 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,尤其涉及一种渗透测试方法、装置、设备及存储介质。


背景技术:

2.渗透测试可以是指通过模拟恶意黑客的攻击方式对计算机网络的安全性进行测试的一种方法。例如,一个计算机网络中可以包括多台(如至少两个)个人计算机(personal computer,pc)。对该计算机网络进行渗透测试,可以包括:通过对该计算机网络中的pc的用户名和登录密码进行爆破,获取pc的控制权限,以测试该计算机网络是否安全。
3.目前,对计算机网络中的pc的用户名和登录密码进行爆破的方式通常包括:采用固定的用户名字典和密码字典对计算机网络中的pc的用户名和登录密码进行爆破。
4.但是,采用固定的用户名字典和密码字典对计算机网络中的pc的用户名和登录密码进行爆破的方式,爆破成功率和渗透测试的效率低下。


技术实现要素:

5.本技术提供一种渗透测试方法、装置、设备及存储介质,可以适用于对计算机网络进行渗透测试的场景,能够大大提高爆破成功率和渗透测试的效率。
6.本技术的技术方案如下:
7.第一方面,本技术提供一种渗透测试方法,所述方法包括:获取计算机网络中的每一台个人计算机pc的计算机名。提取计算机网络中所有pc的计算机名中的相同字段,得到第一字段。提取计算机网络中的每一台pc的计算机名中区别于其他pc的计算机名的字段,得到每一台pc对应的第二字段。对计算机网络中的每一台pc:根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典;根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典;根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破。
8.本技术实施例提供的该渗透测试方法,可以根据计算机网络中的pc的计算机名动态生成pc对应的用户名字典和密码字典,并采用前述动态生成的pc对应的用户名字典和密码字典对pc的用户名和登录密码进行爆破,能够大大提高爆破成功率和渗透测试的效率。
9.一种实现方式中,所述根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典,包括:根据第一字段生成pc对应的第一用户名;根据pc对应的第二字段生成pc对应的第二用户名;根据第三字段生成pc对应的第三用户名;根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的一种或多种,生成pc对应的用户名字典。
10.一种实现方式中,所述根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典,包括:根据第一字段生成pc对应的第一密码词根;根据pc对应的第二字段生成pc对应的第二密码词根;根据第四字段生成pc对应的第三密码词根;对pc对应
的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根中的一种或多种进行扩展,生成pc对应的密码字典。
11.可选地,所述根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破,包括:根据已知的用户名的格式,从pc对应的用户名字典中选择第一预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第一预测登录密码,并采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码进行爆破;当采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码爆破失败时,根据已知的用户名的格式,从pc对应的用户名字典中选择第二预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第二预测登录密码,并采用第二预测用户名和第二预测登录密码对pc的用户名和登录密码进行爆破。
12.其中,第二预测用户名的格式与已知的用户名的格式之间的相似度小于第一预测用户名与已知的用户名的格式之间的相似度,第二预测登录密码的格式与已知的密码的格式之间的相似度小于第一预测登录密码与已知的密码的格式之间的相似度。
13.当计算机网络中的部分pc的用户名和密码已知时,参考已知的用户名和密码,优先从pc对应的用户名字典和密码字典中选择与已知的用户名和密码的格式相同或相近的用户名和猜测密码进行爆破,可以进一步提高爆破的效率,减少无效爆破的时间。
14.可选地,所述根据第一字段生成pc对应的第一用户名,包括:对第一字段进行拆分和扩展,得到第一字段对应的拆分字段和扩展字段;将第一字段、以及第一字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第一用户名。所述根据pc对应的第二字段生成pc对应的第二用户名,包括:对第二字段进行拆分和扩展,得到第二字段对应的拆分字段和扩展字段;将第二字段、以及第二字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第二用户名。所述根据第三字段生成pc对应的第三用户名,包括:对第三字段进行拆分和扩展,得到第三字段对应的拆分字段和扩展字段;将第三字段、以及第三字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第三用户名。
15.可选地,所述根据第一字段生成pc对应的第一密码词根,包括:对第一字段进行拆分,得到第一字段对应的第一密码词根。所述根据pc对应的第二字段生成pc对应的第二密码词根,包括:对第二字段进行拆分,得到第二字段对应的第二密码词根。所述根据第四字段生成pc对应的第三密码词根,包括:对第四字段进行拆分,得到第四字段对应的第三密码词根。
16.可选地,第三字段为pc的默认用户名,第四字段为pc的默认密码。
17.第二方面,本技术提供一种渗透测试装置,所述装置包括:获取单元,用于获取计算机网络中的每一台个人计算机pc的计算机名;处理单元,用于提取计算机网络中所有pc的计算机名中的相同字段,得到第一字段;提取计算机网络中的每一台pc的计算机名中区别于其他pc的计算机名的字段,得到每一台pc对应的第二字段;处理单元,还用于对计算机网络中的每一台pc:根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典;根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典;根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破。
18.一种实现方式中,处理单元,具体用于根据第一字段生成pc对应的第一用户名;根据pc对应的第二字段生成pc对应的第二用户名;根据第三字段生成pc对应的第三用户名;
根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的一种或多种,生成pc对应的用户名字典。
19.一种实现方式中,处理单元,具体用于根据第一字段生成pc对应的第一密码词根;根据pc对应的第二字段生成pc对应的第二密码词根;根据第四字段生成pc对应的第三密码词根;对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根中的一种或多种进行扩展,生成pc对应的密码字典。
20.可选地,处理单元,具体用于根据已知的用户名的格式,从pc对应的用户名字典中选择第一预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第一预测登录密码,并采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码进行爆破;当采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码爆破失败时,根据已知的用户名的格式,从pc对应的用户名字典中选择第二预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第二预测登录密码,并采用第二预测用户名和第二预测登录密码对pc的用户名和登录密码进行爆破。
21.其中,第二预测用户名的格式与已知的用户名的格式之间的相似度小于第一预测用户名与已知的用户名的格式之间的相似度,第二预测登录密码的格式与已知的密码的格式之间的相似度小于第一预测登录密码与已知的密码的格式之间的相似度。
22.可选地,处理单元,具体用于对第一字段进行拆分和扩展,得到第一字段对应的拆分字段和扩展字段;将第一字段、以及第一字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第一用户名。对第二字段进行拆分和扩展,得到第二字段对应的拆分字段和扩展字段;将第二字段、以及第二字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第二用户名。对第三字段进行拆分和扩展,得到第三字段对应的拆分字段和扩展字段;将第三字段、以及第三字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第三用户名。
23.可选地,处理单元,具体用于对第一字段进行拆分,得到第一字段对应的第一密码词根。对第二字段进行拆分,得到第二字段对应的第二密码词根。对第四字段进行拆分,得到第四字段对应的第三密码词根。
24.可选地,第三字段为pc的默认用户名,第四字段为pc的默认密码。
25.第三方面,本技术提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储介质之间通过所述总线通信,所述处理器执行所述机器可读指令,以执行如第一方面所述的方法。
26.第四方面,本技术提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面所述的方法。
27.第五方面,本技术提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器实现如第一方面所述的方法。
28.上述第二方面至第五方面所具备的有益效果可参考第一方面中所述,不再赘述。
29.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
30.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理,并不构成对本技术的不当限定。
31.图1为本技术实施例提供的渗透测试方法的流程示意图;
32.图2为本技术实施例提供的一种实现方式中生成pc对应的用户名字典的流程示意图;
33.图3为本技术实施例提供的一种实现方式中生成pc对应的密码字典的流程示意图;
34.图4为本技术实施例提供的渗透测试装置的结构示意图。
具体实施方式
35.为了使本领域普通人员更好地理解本技术的技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
36.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
37.还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
[0038]“和/或”用于描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0039]
渗透测试可以是指通过模拟恶意黑客的攻击方式对计算机网络的安全性进行测试的一种方法。例如,一个计算机网络中可以包括多台(如至少两个)个人计算机(personal computer,pc)。对该计算机网络进行渗透测试,可以包括:通过对该计算机网络中的pc的用户名和登录密码进行爆破,获取pc的控制权限,以测试该计算机网络是否安全。
[0040]
目前,对计算机网络中的pc的用户名和登录密码进行爆破的方式通常包括:采用固定的用户名字典和密码字典对计算机网络中的pc的用户名和登录密码进行爆破。
[0041]
例如,用户名字典中可以包括多个预设的用户名,密码字典中可以包括多个预设的密码。对计算机网络中的每一台pc:可以将用户名字典中的每一个用户名作为该pc的预测用户名,将密码字典中的每一个密码作为该pc的预测登录密码,尝试能否成功登录该pc,每一次尝试能否成功登录该pc的过程也即对该pc的用户名和登录密码进行爆破的过程。
[0042]
可以理解的,假设用户名字典中包括m(m为大于1的整数)个预设的用户名,密码字典中包括n(n为大于1的整数)个预设的密码,则预测用户名和预测登录密码的组合一共可以包括“m*n”种,“*”表示乘,采用前述“m*n”种组合,可以对pc进行“m*n”次爆破。
[0043]
但是,目前这种采用固定的用户名字典和密码字典对计算机网络中的pc的用户名和登录密码进行爆破的方式,爆破成功率和渗透测试的效率低下。
[0044]
本技术实施例提供了一种渗透测试方法,该方法可以根据计算机网络中的pc的计算机名动态生成pc对应的用户名字典和密码字典,并采用前述动态生成的pc对应的用户名字典和密码字典对pc的用户名和登录密码进行爆破,能够大大提高爆破成功率和渗透测试的效率。
[0045]
可选地,本技术实施例提供的渗透测试方法的执行主体可以是计算机、服务器等具有数据处理能力的设备。其中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术对该渗透测试方法的执行主体不作限制。
[0046]
以下结合附图对本技术实施例提供的渗透测试方法进行示例性说明。
[0047]
示例性地,图1为本技术实施例提供的渗透测试方法的流程示意图。
[0048]
如图1所示,本技术实施例提供的渗透测试方法可以包括:
[0049]
s101、获取计算机网络中的每一台pc的计算机名。
[0050]
其中,pc的计算机名也即pc的标识信息。对大部分计算机网络而言,一个计算机网络中的pc的计算机名往往有严格的命名要求。
[0051]
例如,在一些大型企业的计算机网络中,pc的计算机名通常包括:pc的所属者(如员工)的姓名和工号、公司的名称或简称、计算机网络所属的地域等信息。
[0052]
在同一个计算机网络中,不同pc的计算机名经常存在相同的字段,也包括不同的字段。例如,对一台pc而言,该pc的计算机名可以包括字段1和字段2,计算机网络中的其他pc的计算机名中也都可以包括字段1,而字段2属于该pc的计算机名中特有的字段。
[0053]
s102、提取所有pc的计算机名中的相同字段,得到第一字段。
[0054]
s103、提取每一台pc的计算机名中区别于其他pc的计算机名的字段,得到每一台pc对应的第二字段。
[0055]
示例性地,假设某个计算机网络中的pc包括pc1、pc2、pc3。pc1的计算机名为“bj-zhangsan-0117”,pc2的计算机名为“bj-lisi-3421”,pc3的计算机名为“bj-wangwu-3213”。对该计算机网络而言,上述s102可以提取到这些pc的计算机名中的相同字段:“bj
‑”
,“bj
‑”
即上述第一字段。上述s103可以提取到pc1的计算机名中区别于其他pc(pc2和pc3)的计算机名的字段为:“zhangsan-0117”,pc2的计算机名中区别于其他pc(pc1和pc3)的计算机名的字段为:“lisi-3421”,pc3的计算机名中区别于其他pc(pc1和pc2)的计算机名的字段为:“wangwu-3213”。字段“zhangsan-0117”即pc1对应的第二字段,字段“lisi-3421”即pc2对应的第二字段,字段“wangwu-3213”即pc对应的第二字段。
[0056]
可选地,上述s102和s103可以是同步执行;或者,也可以是s102先执行、s103后执行;又或者,还可以是s103先执行、s102后执行,在此对s102和s103的执行顺序不作限制。
[0057]
s104、对每一台pc,根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典。
[0058]
图2为本技术实施例提供的一种实现方式中生成pc对应的用户名字典的流程示意图。如图2所示,一种实现方式中,上述根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典的步骤,可以包括:
[0059]
s201、根据第一字段生成pc对应的第一用户名。
[0060]
可选地,根据第一字段生成pc对应的第一用户名,可以包括:对第一字段进行拆分
和扩展,得到第一字段对应的拆分字段和扩展字段;将第一字段、以及第一字段对应的每一个拆分字段和每一个扩展字段分别作为第一用户名。
[0061]
以上述计算机名为“bj-zhangsan-0117”的pc1为示例,第一字段可以是“bj
‑”
,对“bj
‑”
进行拆分和扩展,可以得到“bj
‑”
对应的拆分字段可以包括:“bj”、“b”、“j”等,“bj
‑”
对应的扩展字段可以包括:“bj-1”、“bj-2”、“bj-3”等。根据前述“bj
‑”
对应的拆分字段和扩展字段、以及“bj
‑”
,可以得到pc1对应的第一用户名可以包括:“bj
‑”
、“bj”、“b”、“j”、“bj-1”、“bj-2”、“bj-3”等。
[0062]
也即,s201中可以根据第一字段生成pc对应的一个或多个第一用户名。
[0063]
需要说明的是,本技术实施例对如何对第一字段进行拆分和扩展并不作限制。例如,对第一字段进行拆分可以包括:将第一字段拆分为不同字节长度,得到第一字段对应的拆分字段。又例如,对第一字段进行扩展,可以包括:在第一字段的基础上添加一些常用字段,和/或,在第一字段中的部分字段的基础上添加一些常用字段,得到第一字段对应的扩展字段。其中,常用字段可以是1、2、3等数字,或者,@、*等符号等,在此对常用字段的类型也不作限制。
[0064]
s202、根据pc对应的第二字段生成pc对应的第二用户名。
[0065]
可选地,与根据第一字段生成pc对应的第一用户名的方式类似,根据pc对应的第二字段生成pc对应的第二用户名,可以包括:对pc对应的第二字段进行拆分和扩展,得到第二字段对应的拆分字段和扩展字段;将第二字段、以及第二字段对应的每一个拆分字段和每一个扩展字段分别作为第二用户名。
[0066]
同样以上述计算机名为“bj-zhangsan-0117”的pc1为示例,pc1对应的第二字段可以是“zhangsan-0117”,对“zhangsan-0117”进行拆分和扩展,可以得到“zhangsan-0117”对应的拆分字段可以包括:“zhangsan”、“zhang”、“0117”等,“zhangsan-0117”对应的扩展字段可以包括:“zhangsan01”、“zhangsan02”、“zhangsan03”等。根据前述“zhangsan-0117”对应的拆分字段和扩展字段、以及“zhangsan-0117”,可以得到pc1对应的第二用户名可以包括:“zhangsan”、“zhang”、“0117”、“zhangsan-0117”、“zhangsan01”、“zhangsan02”、“zhangsan03”等。
[0067]
也即,s202中可以根据第二字段生成pc对应的一个或多个第二用户名。
[0068]
也需要说明的是,本技术实施例对如何对第二字段进行拆分和扩展同样不作限制。对第二字段进行拆分和扩展的方式可以与对第一字段进行拆分和扩展的方式相同或相似,在此不作限制。例如,对第二字段进行拆分,可以包括:将第二字段拆分为不同字节长度,得到第二字段对应的拆分字段。又例如,对第二字段进行扩展,可以包括:在第二字段的基础上添加一些常用字段,和/或,在第二字段中的部分字段的基础上添加一些常用字段,得到第二字段对应的扩展字段等。
[0069]
s203、根据第三字段生成pc对应的第三用户名。
[0070]
可选地,第三字段可以是一些常被用于作为计算机的用户名的字段,如:第三字段可以是常见的默认计算机用户名:“admin”、“administrator”等。根据第三字段生成pc对应的第三用户名,可以包括:对第三字段进行拆分和扩展,得到第三字段对应的拆分字段和扩展字段;将第三字段、以及第三字段对应的每一个拆分字段和每一个扩展字段分别作为第三用户名。
[0071]
对第三字段进行扩展和拆分的方式,也可以参照前述实施例中对第一字段进行扩展和拆分的方式,在此不再赘述。例如,对第三字段进行拆分,可以包括:将第三字段拆分为不同字节长度,得到第三字段对应的拆分字段。又例如,对第三字段进行扩展,可以包括:在第三字段的基础上添加一些常用字段,和/或,在第三字段中的部分字段的基础上添加一些常用字段,得到第三字段对应的扩展字段等。
[0072]
可选地,第三字段可以包括一个或多个。当第三字段包括多个时,可以针对每个第三字段,分别根据每个第三字段生成pc对应的第三用户名,这样可以得到多个第三字段分别对应的第三用户名。
[0073]
可以理解的,s203中得到的第三用户名可以是一个或多个。
[0074]
s204、根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名,生成pc对应的用户名字典。
[0075]
示例性地,以上述s201-s203中给出的pc1的示例为例,假设pc1对应的第一用户名包括:“bj
‑”
、“bj”、“b”、“j”、“bj-1”、“bj-2”、“bj-3”;pc1对应的第二用户名包括:“zhangsan”、“zhang”、“0117”、“zhangsan-0117”、“zhangsan01”、“zhangsan02”、“zhangsan03”;pc1对应的第三用户名包括:“admin”、“administrator”;则可以将前述pc1对应的第一用户名、第二用户名、以及第三用户名均作为pc1可能的用户名,得到pc1对应的用户名字典。例如,pc1对应的用户名字典可以如下表1所示。
[0076]
表1
[0077][0078]
类似地,按照上述s201-s204所述的方式,可以对计算机网络中的每一台pc,根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典。
[0079]
可选地,上述根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名,生成pc对应的用户名字典,可以包括:根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的一种或多种,生成pc对应的用户名字典。也即,用户名字典中可以包括前述pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的全部用户名,也可以包括前述pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的部分用户名。
[0080]
s105、对每一台pc,根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典。
[0081]
图3为本技术实施例提供的一种实现方式中生成pc对应的密码字典的流程示意图。如图3所示,一种实现方式中,上述根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典的步骤,可以包括:
[0082]
s301、根据第一字段生成pc对应的第一密码词根。
[0083]
可选地,根据第一字段生成pc对应的第一密码词根,可以包括:对第一字段进行拆分,得到第一字段对应的第一密码词根。
[0084]
以上述计算机名为“bj-zhangsan-0117”的pc1为示例,第一字段可以是“bj
‑”
,对“bj
‑”
进行拆分,可以得到“bj
‑”
对应的第一密码词根可以包括:“bj”。
[0085]
可选地,s301中可以根据第一字段生成pc对应的一个或多个第一密码词根,在此不作限制。
[0086]
另外,需要说明的是,对第一字段进行拆分的方式可以参考前述实施例中所述,在此也不作限制。例如,对第一字段进行拆分可以包括:将第一字段拆分为不同字节长度,得到第一字段对应的第一密码词根。
[0087]
s302、根据pc对应的第二字段生成pc对应的第二密码词根。
[0088]
可选地,与根据第一字段生成pc对应的第一密码词根的方式类似,根据pc对应的第二字段生成pc对应的第二密码词根,可以包括:对pc对应的第二字段进行拆分,得到第二字段对应的第二密码词根。
[0089]
同样以上述计算机名为“bj-zhangsan-0117”的pc1为示例,pc1对应的第二字段可以是“zhangsan-0117”,对“zhangsan-0117”进行拆分,可以得到“zhangsan-0117”对应的第二密码词根可以包括:“zhangsan”、“zhang”等。
[0090]
可选地,s302中可以根据第二字段生成pc对应的一个或多个第二密码词根,在此不作限制。
[0091]
也需要说明的是,本技术实施例对如何对第二字段进行拆分同样不作限制。例如,对第二字段进行拆分,可以包括:将第二字段拆分为不同字节长度,得到第二字段对应的第二密码词根。
[0092]
s303、根据第四字段生成pc对应的第三密码词根。
[0093]
可选地,第四字段可以是一些常被用于作为计算机的密码的字段,如:第四字段可以是常见的默认计算机密码:“pass”、“password”等。根据第四字段生成pc对应的第三密码词根,可以包括:对第四字段进行拆分,得到第四字段对应的第三密码词根。例如,第三密码词根可以包括:“pass”、“password”等。
[0094]
对第四字段进行拆分的方式,也可以参照前述实施例中对第一字段进行拆分的方式,在此不再赘述。例如,对第四字段进行拆分,可以包括:将第四字段拆分为不同字节长度,得到第四字段对应的第三密码词根。
[0095]
可选地,第四字段可以包括一个或多个。当第四字段包括多个时,可以针对每个第四字段,分别根据每个第四字段生成pc对应的第三密码词根,这样可以得到多个第四字段分别对应的第三密码词根。
[0096]
可以理解的,s303中得到的第三密码词根可以是一个或多个。
[0097]
s304、对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根进行扩展,生成pc对应的密码字典。
[0098]
示例性地,以上述s301-s303中给出的pc1的示例为例,假设pc1对应的第一密码词根包括:“bj”;pc1对应的第二密码词根包括:“zhangsan”、“zhang”;pc1对应的第三密码词根包括:“pass”、“password”;则可以将前述pc1对应的第一密码词根、第二密码词根、以及第三密码词根分别进行扩展,分别得到第一密码词根对应的猜测密码,第二密码词根对应的猜测密码,以及第三密码词根对应的猜测密码。将第一密码词根对应的猜测密码,第二密码词根对应的猜测密码,以及第三密码词根对应的猜测密码组成pc1对应的密码字典。
[0099]
例如,对第一密码词根进行扩展,可以包括:在第一密码词根的基础上添加一些常
用字段,得到第一密码词根对应的猜测密码。例如,常用字段可以包括:1、2、3等数字,或者,#、!、
·
、@、*等符号,在此对常用字段的类型不作限制。类似地,可以分别对第二密码词根和第三密码词根进行扩展,得到第二密码词根对应的猜测密码,以及第三密码词根对应的猜测密码。
[0100]
假设第一密码词根对应的猜测密码包括:bj@1,第二密码词根对应的猜测密码包括:zhangsan01!、zhangsan02@、zhangsan03#,第三密码词根对应的猜测密码包括:password、password@1,则pc1对应的密码字典可以如下表2所示。
[0101]
表2
[0102][0103][0104]
类似地,按照上述s301-s304所述的方式,可以对计算机网络中的每一台pc,根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典。
[0105]
应当理解,以上实施例中,对某个字段进行拆分得到的结果中,也可以包括该字段本身。对某个字段进行扩展得到的结果中,也可以包括该字段本身。例如,字段“zhangsan”拆分得到的结果中,可以包括:“zhang”,也可以包括“zhangsan”。字段“zhangsan”扩展得到的结果中,可以包括:“zhangsan01!”,也可以包括“zhangsan”。
[0106]
可选地,上述对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根进行扩展,生成pc对应的密码字典,可以包括:对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根中的一种或多种进行扩展,生成pc对应的密码字典。例如,可以对pc对应的第一密码词根和第二密码词根进行扩展,或者,可以对pc对应的第一密码词根和第三密码词根进行扩展,又或者,可以对pc对应的第二密码词根和第三密码词根进行扩展,又或者,可以对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根都进行扩展,在此也不作限制。
[0107]
s106、对每一台pc,根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破。
[0108]
同样以pc1为例,可以将pc1对应的用户名字典中的每一个用户名作为该pc1的预测用户名,将pc1对应的密码字典中的每一个猜测密码作为该pc1的预测登录密码,尝试能否成功登录该pc1,每一次尝试能否成功登录该pc1的过程也即对该pc1的用户名和登录密码进行爆破的过程。
[0109]
可以理解的,假设pc1对应的用户名字典中包括m(m为大于1的整数)个用户名,密码字典中包括n(n为大于1的整数)个猜测密码,则预测用户名和预测登录密码的组合一共
可以包括“m*n”种,“*”表示乘,采用前述“m*n”种组合,可以对pc1进行“m*n”次爆破。
[0110]
本技术实施例提供的该渗透测试方法,可以根据计算机网络中的pc的计算机名动态生成pc对应的用户名字典和密码字典,并采用前述动态生成的pc对应的用户名字典和密码字典对pc的用户名和登录密码进行爆破,能够大大提高爆破成功率和渗透测试的效率。
[0111]
例如,对于一些大型企业而言,为了较好的对计算机网络进行管理,往往对计算机网络中pc的计算机名和登录密码有严格的命名要求,pc的用户名和/或登录密码极大概率和pc对应的员工的个人信息存在唯一的映射关系,如:pc的计算机名和/或和登录密码往往带有姓名、公司、地域、工号等信息。针对此类场景,本技术实施例提供的该渗透测试方法对前述pc的计算机名和登录密码有严格的命名要求的计算机网络进行渗透测试时,采用该渗透测试方法中动态生成的pc对应的用户名字典和密码字典,可以对pc的用户名和登录密码进行有效爆破,渗透测试的效率可以更高。
[0112]
示例性地,该渗透测试方法中的第一字段可以是公司简称、地域信息,第二字段可以是员工的姓名、工号等。
[0113]
一些实施例中,上述s102中提取所有pc的计算机名中的相同字段,得到第一字段的步骤,以及上述s103中提取每一台pc的计算机名中区别于其他pc的计算机名的字段,得到每一台pc对应的第二字段的步骤,可以通过神经网络来实现。例如,神经网络可以具有相似度计算的功能,提取相似度大于第一阈值(如95%)的字段作为相同字段,实现上述s102所述的步骤。
[0114]
一些实施例中,上述s104中对每一台pc,根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典的步骤,以及上述s105中对每一台pc,根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典的步骤,也可以通过神经网络来实现。例如,神经网络可以具有自然语言处理相关的功能,实现上述s104和s105所述的步骤。本技术对神经网络的具体类型不作限制。
[0115]
一些实施例中,对某个计算机网络进行渗透测试时,可能存在已经获取到该计算机网络中的部分pc的用户名和密码的场景,也即,该场景中,计算机网络中的部分pc的用户名和密码是已知的(如已被爆破)。对于该场景,在执行上述根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破的步骤时,可以参考已知的用户名和密码,优先从pc对应的用户名字典和密码字典中选择与已知的用户名和密码的格式相同或相近的用户名和猜测密码进行爆破。
[0116]
例如,假设pc1对应的用户名字典如上述表1所示,pc1对应的密码字典如上述表2所示,存在pc2的用户名和密码已知,且pc2的用户名为“lisi-3421”,pc2的密码为“lisi01!”,则s106中对pc1的用户名和密码进行爆破时,可以优先选择“zhangsan-0117”作为pc1的预测用户名、“zhangsan01!”作为pc1的预测登录密码。当爆破失败时,可以继续选择下一个预测用户名和预测登录密码。其中,下一个预测用户名的格式与pc2的用户名的格式之间的相似度小于“zhangsan-0117”与pc2的用户名的格式之间的相似度,下一个预测登录密码的格式与pc2的密码的格式之间的相似度小于“zhangsan01!”与pc2的密码的格式之间的相似度。
[0117]
也即,当计算机网络中的部分pc的用户名和密码已知时,s106可以包括:对每一台用户名和密码未知的pc,根据已知的用户名的格式,从pc对应的用户名字典中选择第一预
测用户名,根据已知的密码的格式,从pc对应的密码字典中选择第一预测登录密码,并采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码进行爆破;当采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码爆破失败时,根据已知的用户名的格式,从pc对应的用户名字典中选择第二预测用户名,根据已知的密码的格式,从pc对应的密码字典中选择第二预测登录密码,并采用第二预测用户名和第二预测登录密码对pc的用户名和登录密码进行爆破;其中,第二预测用户名的格式与已知的用户名的格式之间的相似度小于第一预测用户名与已知的用户名的格式之间的相似度,第二预测登录密码的格式与已知的密码的格式之间的相似度小于第一预测登录密码与已知的密码的格式之间的相似度。
[0118]
本实施例中,当计算机网络中的部分pc的用户名和密码已知时,参考已知的用户名和密码,优先从pc对应的用户名字典和密码字典中选择与已知的用户名和密码的格式相同或相近的用户名和猜测密码进行爆破,可以进一步提高爆破的效率,减少无效爆破的时间。
[0119]
需要说明的是,本技术实施例对上述相似度的相关算法不作限制。
[0120]
可以理解的,在实际实施时,本技术实施例所述的服务器、计算机等可以包含有用于实现前述渗透测试方法的一个或多个硬件结构和/或软件模块(单元),这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所申请的实施例描述的各示例的算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0121]
基于这样的理解,本技术实施例还对应提供一种渗透测试装置,可以应用于上述服务器或计算机。图4为本技术实施例提供的渗透测试装置的结构示意图。如图4所示,该渗透测试装置可以包括:
[0122]
获取单元401,用于获取计算机网络中的每一台个人计算机pc的计算机名;处理单元402,用于提取计算机网络中所有pc的计算机名中的相同字段,得到第一字段;提取计算机网络中的每一台pc的计算机名中区别于其他pc的计算机名的字段,得到每一台pc对应的第二字段;处理单元402,还用于对计算机网络中的每一台pc:根据第一字段、pc对应的第二字段、以及预设的第三字段,生成pc对应的用户名字典;根据第一字段、pc对应的第二字段、以及预设的第四字段,生成pc对应的密码字典;根据pc对应的用户名字典和密码字典,对pc的用户名和登录密码进行爆破。
[0123]
一种实现方式中,处理单元402,具体用于根据第一字段生成pc对应的第一用户名;根据pc对应的第二字段生成pc对应的第二用户名;根据第三字段生成pc对应的第三用户名;根据pc对应的第一用户名、pc对应的第二用户名、以及pc对应的第三用户名中的一种或多种,生成pc对应的用户名字典。
[0124]
一种实现方式中,处理单元402,具体用于根据第一字段生成pc对应的第一密码词根;根据pc对应的第二字段生成pc对应的第二密码词根;根据第四字段生成pc对应的第三密码词根;对pc对应的第一密码词根、pc对应的第二密码词根、以及pc对应的第三密码词根中的一种或多种进行扩展,生成pc对应的密码字典。
[0125]
可选地,处理单元402,具体用于根据已知的用户名的格式,从pc对应的用户名字典中选择第一预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第一预测登录密码,并采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码进行爆破;当采用第一预测用户名和第一预测登录密码对pc的用户名和登录密码爆破失败时,根据已知的用户名的格式,从pc对应的用户名字典中选择第二预测用户名;根据已知的密码的格式,从pc对应的密码字典中选择第二预测登录密码,并采用第二预测用户名和第二预测登录密码对pc的用户名和登录密码进行爆破。
[0126]
其中,第二预测用户名的格式与已知的用户名的格式之间的相似度小于第一预测用户名与已知的用户名的格式之间的相似度,第二预测登录密码的格式与已知的密码的格式之间的相似度小于第一预测登录密码与已知的密码的格式之间的相似度。
[0127]
可选地,处理单元402,具体用于对第一字段进行拆分和扩展,得到第一字段对应的拆分字段和扩展字段;将第一字段、以及第一字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第一用户名。对第二字段进行拆分和扩展,得到第二字段对应的拆分字段和扩展字段;将第二字段、以及第二字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第二用户名。对第三字段进行拆分和扩展,得到第三字段对应的拆分字段和扩展字段;将第三字段、以及第三字段对应的每一个拆分字段和每一个扩展字段分别作为pc对应的第三用户名。
[0128]
可选地,处理单元402,具体用于对第一字段进行拆分,得到第一字段对应的第一密码词根。对第二字段进行拆分,得到第二字段对应的第二密码词根。对第四字段进行拆分,得到第四字段对应的第三密码词根。
[0129]
可选地,第三字段为pc的默认用户名,第四字段为pc的默认密码。
[0130]
如上所述,本技术实施例可以根据上述方法示例对服务器或计算机进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
[0131]
关于上述实施例中的渗透测试装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
[0132]
本技术实施例还提供一种电子设备,该电子设备可以是上述服务器或计算机,电子设备包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储介质之间通过所述总线通信,所述处理器执行所述机器可读指令,以执行如上述实施例所述的方法。
[0133]
在示例性实施例中,本技术还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述实施例所述的方法。
[0134]
可选地,上述计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0135]
在示例性实施例中,本技术实施例还提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代
码在电子设备中运行时,所述电子设备中的处理器实现如上述实施例所述的方法。
[0136]
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0137]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献