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

一种基于分布式的无状态端口扫描方法

2022-11-30 08:52:15 来源:中国专利 TAG:


1.本发明涉及节点管理领域,具体为一种基于分布式的无状态端口扫描方法。


背景技术:

2.随着互联网的发展,网络技术已经渗透到生活的各个领域,例如:出行、购物、点餐、教育等等。与此同时网络安全问题也愈发严重,渗透测试是评估一个网络是安全等级重要手段,信息收集是渗透测试中的关键一环,而其中的收集目标开发端口信息收集是渗透测试中信息收集的重要组成部分。对目标端口扫描利用的是tcp/ip协议中的三次握手建立可靠连接的过程,三个握手过程如下:主机以自己的随机端口向目标服务器的某个端口发送syn数据包,目标服务器存活且端口开发将回回复主机syn ack数据包,主机收到后回复ack数据包。由此经过三次握手建立可靠的tcp连接,现有的端口扫描工具如nmap,zmap以及masscan。nmap是一款开源的扫描工具,可用于端口扫描。但是其在真正工作的时候还是需要占用部分tcp/ip协议栈资源。zmap和masscan可以实现快速的无状态扫描,无状态扫描就是不关心tcp的连接状态,不占用系统tcp/ip协议栈资源,只要把syn数据包发出去就行,扫描速度非常快。但是以上工具中nmap扫描存在占用系统tcp/ip协议栈且速度远不及zmap和masscan的问题。zmap和masscan虽然解决了nmap存在的问题但是每个端口只发一个扫描数据包且并不能确定扫描数据包是否到达目标存在目标端口漏扫的问题。以上三个工具共同的问题是扫描过程中使用单个ip对目标端口进行扫描时容易被防火墙等安全设备通过检测源ip发现扫描行为将ip封禁,导致接下来无法进行正常扫描。而使用代理进行扫描会降低扫描速度且代理ip存在不稳定、收费等问题。
3.现有的分布式端口探测技术中,“一种分布式网络资产探测方法”中使用在不同国家地区部署多个探测节点,统一的管理节点将探测任务分发给各个探测节点去探测之后将探测结果上传。该探测方法使用统一的管理节点,要求使用者拥有多个各个国家地区的虚拟专用服务器,正常部署多个节点存在使用成本高的问题,大量部署更是一大笔开销。
[0004]“分布式资产探测方法与系统”以及“基于分布式的网络资产主动探测方法及系统”中,也是在不同区域部署分扫描节点,通过主节点将任务下发给各个分节点,扫描完成后分节点将结果上传给主节点。这两种方法和段梦军等人提出的方法存在问题是一样的:使用了统一的管理节点,使用成本高,不适合大量部署等。
[0005]
综上,nmap是一款好用的扫描工具,能够使用多种扫描方式对端口进行扫描,但是其扫过过程中并非使用无状态扫描,这就意味着在真实工作中需要使用系统tcp/ip协议栈资源来维护部分连接。
[0006]
zmap和masscan使用无状态扫描,不需要占用系统tcp/ip协议栈资源,但是二者在扫描过程中并不知道自己发出的扫描数据包是否到达了目标,扫描过程中存在数据包丢失导致端口漏扫问题。
[0007]
以上三款工具在扫描过程中一般情况下都是通过单个ip对目标进行扫描,这时容易被防火墙等安全设备检测到并且将ip封禁,导致接下来的扫描无法正常进行。使用代理
ip会降低扫描速度且代理ip存在不稳定、收费等情况。
[0008]“一种分布式网络资产探测方法”、“分布式资产探测方法与系统”以及“基于分布式的网络资产主动探测方法及系统”这三种分布式扫描方法,都存在以下问题:整个分布式扫描系统部署的所有费用需要部署者自行承担;虽然有多个区域的ip防止ip被封的问题,但是仍然不够,部署大量节点开支难以承受;使用统一的管理节点,分节点只能被安排扫描任务,无法下其他节点下达扫描任务;统一的管理节点出现问题,整个分布式扫描系统便无法工作。
[0009]
为此我们提出了一种基于分布式的无状态端口扫描方法。


技术实现要素:

[0010]
(一)解决的技术问题
[0011]
针对现有技术的不足,本发明提供了一种基于分布式的无状态端口扫描方法,解决了上述的问题。
[0012]
(二)技术方案
[0013]
为实现上述所述目的,本发明提供如下技术方案:一种基于分布式的无状态端口扫描方法,包括以下方法:
[0014]
s1:通过节点1创建由各个节点形成分布式节点;
[0015]
s2:节点1创建扫描任务,下达监听任务,将需要监听的目标回复的syn ack数据包任务下达给其他分布式节点,其他节点接收到任务后开启对目标ip的syn ack数据包监听功能;
[0016]
s3:节点1使用伪造源ip用无状态的方式发送给目标服务器;
[0017]
s4:目标服务器收到伪造源ip后,服务器存活且对应端口开放便会回复syn ack数据包给syn扫描数据包中源ip的节点;
[0018]
s5:其他节点收到ip为扫描目标ip的syn ack数据包,从syn ack数据包中提取出源ip和源端口以及标志位,将三者作为一条映射并且记录;
[0019]
s6:节点1再进行一次扫描,重复一次s2;
[0020]
s7:节点1两轮扫描结束后将向其他分布式节点下达任务结束信息,其他节点收到后将监听记录结果上传给节点1;
[0021]
s8:节点1对收到的各个节点上传的监听记录结果进行汇总,然后从汇总结果中提取出目标ip所对应的端口以及标志位,用于判断端口是否开发。
[0022]
优选的,所述s1中创建各个节点形成一张统一的网络状态表内容如下:
[0023]
第一步:节点1创建一个分布式扫描网络其中网络id为area1,生成的网络状态表内容有网络id:area1、成员ip:ip1以及成员id:id1;
[0024]
第二步:后续节点n通过使用网络id area1、节点n-1的id、节点n-1的ip加入网络,节点n-1接收节点n的请求后将网络状态表更新为:网络id:area1、成员ip:ip1.......ip(n-1)以及ipn、成员id:id1.......id(n-1)以及idn,更新后将新的网络状态表发给节点n,节点n收到后更新整个网络状态表,并且节点n-1发送节点n的ip和id给除节点n以外的节点,其他节点收到后更新整个网络状态表为:网络id:area1、成员ip:ip1.......ip(n-1)以及ipn、成员id:id1.......id(n-1)以及idn,最终各个节点形成分布式节点。
[0025]
优选的,所述s3中节点1使用的伪造源ip为其分布式节点其他成员的ip的syn扫描数据包。
[0026]
优选的,所述分布式节点中任何一个节点也和节点1一样具有下达监听任务的权力。
[0027]
(三)有益效果
[0028]
与现有技术相比,本发明提供了一种基于分布式的无状态端口扫描方法,具备以下有益效果:
[0029]
1、该基于分布式的无状态端口扫描方法,通过使用分布式和无状态端口扫描方式对分布式任务分发、分布式实现方式和无状态扫描方式的改变,使得扫描时可以使用若干个ip,对同一个端口进行二次扫描操作,提高端口检测率减少ip被封的风险。
[0030]
2、该基于分布式的无状态端口扫描方法,分布式扫描节点网络可以由发起者自定义网络id,其他人加入,根据网络id不同实现多个分布式扫描网络。
[0031]
3、该基于分布式的无状态端口扫描方法,分布式扫描节点生成的方式,保证了分布式扫描网络一定的安全性。
[0032]
4、该基于分布式的无状态端口扫描方法,扫描过程中引入了二次发包的机制,减少了端口漏扫的情况。
[0033]
5、该基于分布式的无状态端口扫描方法,通过给其他节点下达监听命令的方式,减少了其他节点的资源开销。
附图说明
[0034]
图1是本发明的分布式节点网络图包含了一张分布式节点网络状态表;
[0035]
图2是本发明端口扫描过程中的工作方式图。
具体实施方式
[0036]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
请参阅图1-2,一种基于分布式的无状态端口扫描方法,包括以下步骤:
[0038]
如图1所示,整个分布式扫描网络,各个节点都有一份相同的网络状态表,其中ip1,ip2,ip3,..,ipn分别代表节点1到n的ip;id1,id2,id3,..,idn分别代表节点1到节点n的id,通过网络状态表中的网络ip可以联系到整个分布式网络的各个节点。图1的分布式网络形成过程如下:
[0039]
(1)节点1创建一个分布式扫描网络其中网络id为area1,该分布式网络中只有一个成员节点1生成的网络状态表内容有网络id:area1,成员ip:ip1,成员id:id1。
[0040]
(2)节点2通过使用网络id area1、节点1的id、节点1的ip加入网络,节点1接受节点2的请求后将网络状态表更新为:网络id:area1、成员ip:ip1,ip2、成员id:id1,id2;更新后将新的网络状态表发给节点2。
[0041]
(3)节点3通过使用网络id area1、节点2的id、节点2的ip加入网络,节点2接受节
点3的请求后将网络状态表更新为:网络id:area1、成员ip:ip1,ip2,ip3、成员id:id1,id2,id3;更新后将新的网络状态表发给节点3,节点3收到后更新整个网络状态表。并且节点2发送节点3的ip和id给除节点3以外的节点,其他节点收到后更新网络状态表为:网络id:area1、成员ip:ip1,ip2,ip3、成员id:id1,id2,id3;
[0042]
(4)节点4通过使用网络id area1、节点3的id、节点3的ip加入网络,节点3接受节点4的请求后将网络状态表更新为:网络id:area1、成员ip:ip1,ip2,ip3,ip4、成员id:id1,id2,id3,id4;更新后将新的网络状态表发给节点4,节点4收到后更新整个网络状态表。并且节点3发送节点4的ip和id给除节点4以外的节点,其他节点收到后更新网络状态表为:网络id:area1、成员ip:ip1,ip2,ip3,ip4、成员id:id1,id2,id3,id4;
[0043]
(5)以此类推节点n通过使用网络id area1、节点n-1的id、节点n-1的ip加入网络,节点n-1接收节点n的请求后将网络状态表更新为:网络id:area1、成员ip:ip1,ip2,ip3.......,ip(n-1)、ipn;成员id:id1,id2,id3.......,id(n-1),idn;更新后将新的网络状态表发给节点n,节点n收到后更新整个网络状态表。并且节点n-1发送节点n的ip和id给除n节点以外的节点,其他节点收到后更新整个网络状态表为:网络id:area1、成员ip:ip1,ip2,ip3.......,ip(n-1)、ipn;成员id:id1,id2,id3.......,id(n-1),idn;最终各个节点形成一张统一的网络状态表。
[0044]
扫描工作方法如图2所示,以节点1为例具体过程如下:
[0045]
(1)节点1创建扫描任务,通过步骤图2中

将需要监听的目标回复的syn ack数据包任务下达给其他分布式节点,其他节点接收到任务后开启对目标ip的syn ack数据包监听功能。
[0046]
(2)节点1伪造源ip为其分布式节点其他成员的ip的syn扫描数据包,通过图2中步骤

使用无状态的方式发送给目标服务器。
[0047]
(3)目标服务器收到syn握手数据包后,如果服务器存活且对应端口开放便会回复syn ack数据包给syn扫描数据包中源ip的节点。如图2中步骤

所示。
[0048]
(4)其他节点收到ip为扫描目标ip的syn ack握手数据包便会从syn ack握手数据包中提取出源ip和源端口以及标志位将三者作为一条映射并且记录。
[0049]
(5)第一轮扫描完成后节点1会再进行一次扫描,重复一次步骤(2)减少扫描数据包丢失导致端口漏扫的概率。
[0050]
(6)节点1两轮扫描结束后将会通过图2中的步骤

向其他分布式节点下达任务结束信息,其他节点收到后将会通过图2中的步骤

将记录的结果上传给节点1。
[0051]
(7)节点1收到各个节点上传的监听记录结果进行汇总,然后从汇总结果中提取出目标ip所对应的端口以及标志位,用于判断端口是否开发。
[0052]
节点分布式节点中任何一个节点也和节点1一样具有下达监听任务的权力。
[0053]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献