System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种网络资产端口扫描方法技术_技高网

一种网络资产端口扫描方法技术

技术编号:40912458 阅读:2 留言:0更新日期:2024-04-18 14:40
本发明专利技术公开了一种网络资产端口扫描方法,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:S1,主线程读取扫描列表并对数据包的各种参数进行初始化;S2,创建相应发包协程发送探测数据包;S3,创建接收协程接收响应包;S4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;S5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试。本发明专利技术基于协程与无状态扫描方式进行扫描,同时对扫描带宽及异常结果进行复测,减少服务器资源浪费的同时提高了端口扫描的准确率及效率,用于解决现有情况下网络资产状态监测结果不准确、效率较低的问题。

【技术实现步骤摘要】

本专利技术涉及端口扫描方法领域,特别涉及一种网络资产端口扫描方法


技术介绍

1、随着互联网技术的发展,接入互联网的设备以惊人的速度增加,巨量的网络资产为企业提供服务的同时也带来了巨大的维护成本与安全隐患。互联网暴露的端口与服务中存在的漏洞与不当配置往往是黑客入侵的重要手段,因而掌握网络资产的准确端口开放情况至关重要。

2、常见的端口扫描技术较为单一,一般为利用zmap、nmap或masscan进行端口扫描。其中nmap扫描准确度较高,但由于是有状态扫描导致扫描速率低,zmap和masscan为无状态扫描,因其无需维护tcp连接状态,扫描速率极高,但扫描结果的丢包率与误报率高,导致无法精确且快速地收集资产开放端口;同时主流端口扫描器都基于多线程或多进程,会导致较多的资源消耗。

3、常见基于有状态扫描方式效率低而无状态扫描方式丢包可能性大,尤其发包带宽较高时,扫描结果准确率低。常见扫描方式基于多线程,线程调度及初始化使用资源较多,消耗时长较长。


技术实现思路

1、本专利技术的目的在于提供一种网络资产端口扫描方法,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种网络资产端口扫描方法,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:

3、s1,主线程读取扫描列表并对数据包的各种参数进行初始化,创建扫描任务提交到协程池;

4、s2,创建相应发包协程发送探测数据包,进行数据包的发送;

5、s3,创建接收协程接收响应包;

6、s4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;

7、s5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试,结束扫描。

8、优选的,在步骤s1中,在参数初始化阶段需要打乱ip地址顺序;利用哈希算法将各个地址和端口进行哈希,生成具有唯一性的数据,填入发送的请求包的seq字段,作为接收响应包时判断来源的依据。

9、优选的,在步骤s1中,参数初始化阶段使用洗牌算法打乱ip地址顺序,并且地址和端口具体包括:目的ip地址、目的端口、源ip地址和源端口。常见的防火墙与ids检测端口扫描与ddos行为的策略一般为配置防护阈值,当对一个网段或主机的探测包到达一定阈值时,则被防火墙认为是扫描行为。本专利技术中参数初始化阶段使用洗牌算法打乱ip地址顺序,避免因为对一个网段频繁扫描而被防火墙检测出扫描行为。

10、优选的,在步骤s2中,初始化一个协程上下文,获取数据包参数,根据参数,生成探测包,发起异步发送操作,并保存当前协程上下文,主动切换当前协程,直至回调函数传入发送完成的信号后唤醒,使用令牌桶算法进行发包的带宽限制。

11、优选的,在步骤s2中,根据从队列中获取待扫描地址与端口的参数,生成探测包,传统的扫描为有状态扫描,需要进行三次握手,消耗的资源与时间较多,而无状态的扫描直接绕过tcp/ip协议收发数据,不占用系统tcp/ip协议栈资源,能以更高的速率进行端口探测。网络带宽一定的情况下,若数据包发送过于频繁,丢包情况大大增加,为保证扫描结果的准确性,对于发包协程,本专利使用令牌桶算法进行带宽的限制,降低因网络阻塞和抖动带来的扫描结果误报。

12、优选的,在步骤s3中,初始化一个协程上下文,嗅探网卡流量,接收响应包,对各个地址和端口的请求包数据进行哈希计算,通过对比校验结果与预期结果判断源请求包,将结果更新至状态表与输出汇总队列。

13、优选的,在步骤s3中,地址和端口具体包括:目的ip地址、目的端口、源ip地址、源端口。

14、优选的,在步骤s4中,本地维护一个状态表,状态表中根据发送协程与接收协程情况动态地修改每个扫描结果的状态,任务队列结束后,将那些没有返回包的目标进行重试,到达一定次数后放弃。

15、优选的,在步骤s4中,扫描结果的状态包括:未发送、已发送、已回复与已放弃。

16、优选的,在步骤s5中,当结果输出到输出队列与本地状态表后,扫描任务结束后根据状态表进行路径的选择;

17、路径一:在扫描任务没有选择结束时,需要继续扫描任务,将结果数据,重新输入至步骤s2的创建发包协程发送探测数据包处,以主路径进行再次扫描,直至结束;

18、路径二:在扫描任务结束后,且无异常扫描结果,便结束扫描;

19、路径三:在扫描任务结束后,且有异常扫描结果,当异常扫描结果达到阈值后,便结束扫描;

20、路径四:在扫描任务结束后,且有异常扫描结果,当异常扫描结果,没有达到阈值,便将异常结果作为扫描任务,重新输入至步骤s1的创建输出队列处,以主路径进行再次扫描,直至结束。

21、本专利技术的技术效果和优点:

22、本专利技术基于协程与无状态扫描方式进行扫描,同时对扫描带宽及异常结果进行复测,减少服务器资源浪费的同时提高了端口扫描的准确率及效率,用于解决现有情况下网络资产状态监测结果不准确、效率较低的问题,能够以较高的准确率与较高的速率完成网络资产情况的监测,进一步提高对网络资产的监管能力,降低因互联网暴露端口造成的安全隐患,通过协程与无状态扫描的方式,在使用更少资源的情况下,高效且精准地识别网络资产开放端口,基于协程进行端口扫描,提高服务器资源利用率与扫描效率;维护本地状态表,提高扫描结果精度,防止未报备开放端口导致的服务器被入侵;防止未报备开放端口导致的数据泄露;精确管理网络资产开放端口情况。

本文档来自技高网...

【技术保护点】

1.一种网络资产端口扫描方法,其特征在于,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:

2.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤S1中,在参数初始化阶段需要打乱IP地址顺序;利用哈希算法将各个地址和端口进行哈希,生成具有唯一性的数据,填入发送的请求包的seq字段,作为接收响应包时判断来源的依据。

3.根据权利要求2所述的一种网络资产端口扫描方法,其特征在于,在步骤S1中,参数初始化阶段使用洗牌算法打乱IP地址顺序,并且地址和端口具体包括:目的IP地址、目的端口、源IP地址和源端口。

4.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤S2中,初始化一个协程上下文,获取数据包参数,根据参数,生成探测包,发起异步发送操作,并保存当前协程上下文,主动切换当前协程,直至回调函数传入发送完成的信号后唤醒,使用令牌桶算法进行发包的带宽限制。

5.根据权利要求4所述的一种网络资产端口扫描方法,其特征在于,在步骤S2中,根据从队列中获取待扫描地址与端口的参数,生成探测包。

6.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤S3中,初始化一个协程上下文,嗅探网卡流量,接收响应包,对各个地址和端口的请求包数据进行哈希计算,通过对比校验结果与预期结果判断源请求包,将结果更新至状态表与输出汇总队列。

7.根据权利要求6所述的一种网络资产端口扫描方法,其特征在于,在步骤S3中,地址和端口具体包括:目的IP地址、目的端口、源IP地址、源端口。

8.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤S4中,本地维护一个状态表,状态表中根据发送协程与接收协程情况动态地修改每个扫描结果的状态,任务队列结束后,将那些没有返回包的目标进行重试,到达一定次数后放弃。

9.根据权利要求8所述的一种网络资产端口扫描方法,其特征在于,在步骤S4中,扫描结果的状态包括:未发送、已发送、已回复与已放弃。

10.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤S5中,当结果输出到输出队列与本地状态表后,扫描任务结束后根据状态表进行路径的选择;

...

【技术特征摘要】

1.一种网络资产端口扫描方法,其特征在于,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:

2.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤s1中,在参数初始化阶段需要打乱ip地址顺序;利用哈希算法将各个地址和端口进行哈希,生成具有唯一性的数据,填入发送的请求包的seq字段,作为接收响应包时判断来源的依据。

3.根据权利要求2所述的一种网络资产端口扫描方法,其特征在于,在步骤s1中,参数初始化阶段使用洗牌算法打乱ip地址顺序,并且地址和端口具体包括:目的ip地址、目的端口、源ip地址和源端口。

4.根据权利要求1所述的一种网络资产端口扫描方法,其特征在于,在步骤s2中,初始化一个协程上下文,获取数据包参数,根据参数,生成探测包,发起异步发送操作,并保存当前协程上下文,主动切换当前协程,直至回调函数传入发送完成的信号后唤醒,使用令牌桶算法进行发包的带宽限制。

5.根据权利要求4所述的一种网络资产端口扫描方法,其特征在于,在步骤s2中,根据从队列中获取待扫...

【专利技术属性】
技术研发人员:王思萍魏明洋上官淑婷
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1