CN117857092A - 一种网络资产端口扫描方法 - Google Patents
一种网络资产端口扫描方法 Download PDFInfo
- Publication number
- CN117857092A CN117857092A CN202311635089.4A CN202311635089A CN117857092A CN 117857092 A CN117857092 A CN 117857092A CN 202311635089 A CN202311635089 A CN 202311635089A CN 117857092 A CN117857092 A CN 117857092A
- Authority
- CN
- China
- Prior art keywords
- scanning
- result
- port
- finished
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000002159 abnormal effect Effects 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 9
- 239000000523 sample Substances 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 abstract description 5
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000013102 re-test Methods 0.000 abstract description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络资产端口扫描方法,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:S1,主线程读取扫描列表并对数据包的各种参数进行初始化;S2,创建相应发包协程发送探测数据包;S3,创建接收协程接收响应包;S4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;S5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试。本发明基于协程与无状态扫描方式进行扫描,同时对扫描带宽及异常结果进行复测,减少服务器资源浪费的同时提高了端口扫描的准确率及效率,用于解决现有情况下网络资产状态监测结果不准确、效率较低的问题。
Description
技术领域
本发明涉及端口扫描方法领域,特别涉及一种网络资产端口扫描方法。
背景技术
随着互联网技术的发展,接入互联网的设备以惊人的速度增加,巨量的网络资产为企业提供服务的同时也带来了巨大的维护成本与安全隐患。互联网暴露的端口与服务中存在的漏洞与不当配置往往是黑客入侵的重要手段,因而掌握网络资产的准确端口开放情况至关重要。
常见的端口扫描技术较为单一,一般为利用Zmap、Nmap或masscan进行端口扫描。其中Nmap扫描准确度较高,但由于是有状态扫描导致扫描速率低,Zmap和masscan为无状态扫描,因其无需维护TCP连接状态,扫描速率极高,但扫描结果的丢包率与误报率高,导致无法精确且快速地收集资产开放端口;同时主流端口扫描器都基于多线程或多进程,会导致较多的资源消耗。
常见基于有状态扫描方式效率低而无状态扫描方式丢包可能性大,尤其发包带宽较高时,扫描结果准确率低。常见扫描方式基于多线程,线程调度及初始化使用资源较多,消耗时长较长。
发明内容
本发明的目的在于提供一种网络资产端口扫描方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种网络资产端口扫描方法,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:
S1,主线程读取扫描列表并对数据包的各种参数进行初始化,创建扫描任务提交到协程池;
S2,创建相应发包协程发送探测数据包,进行数据包的发送;
S3,创建接收协程接收响应包;
S4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;
S5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试,结束扫描。
优选的,在步骤S1中,在参数初始化阶段需要打乱IP地址顺序;利用哈希算法将各个地址和端口进行哈希,生成具有唯一性的数据,填入发送的请求包的seq字段,作为接收响应包时判断来源的依据。
优选的,在步骤S1中,参数初始化阶段使用洗牌算法打乱IP地址顺序,并且地址和端口具体包括:目的IP地址、目的端口、源IP地址和源端口。常见的防火墙与IDS检测端口扫描与DDOS行为的策略一般为配置防护阈值,当对一个网段或主机的探测包到达一定阈值时,则被防火墙认为是扫描行为。本发明中参数初始化阶段使用洗牌算法打乱IP地址顺序,避免因为对一个网段频繁扫描而被防火墙检测出扫描行为。
优选的,在步骤S2中,初始化一个协程上下文,获取数据包参数,根据参数,生成探测包,发起异步发送操作,并保存当前协程上下文,主动切换当前协程,直至回调函数传入发送完成的信号后唤醒,使用令牌桶算法进行发包的带宽限制。
优选的,在步骤S2中,根据从队列中获取待扫描地址与端口的参数,生成探测包,传统的扫描为有状态扫描,需要进行三次握手,消耗的资源与时间较多,而无状态的扫描直接绕过TCP/IP协议收发数据,不占用系统TCP/IP协议栈资源,能以更高的速率进行端口探测。网络带宽一定的情况下,若数据包发送过于频繁,丢包情况大大增加,为保证扫描结果的准确性,对于发包协程,本专利使用令牌桶算法进行带宽的限制,降低因网络阻塞和抖动带来的扫描结果误报。
优选的,在步骤S3中,初始化一个协程上下文,嗅探网卡流量,接收响应包,对各个地址和端口的请求包数据进行哈希计算,通过对比校验结果与预期结果判断源请求包,将结果更新至状态表与输出汇总队列。
优选的,在步骤S3中,地址和端口具体包括:目的IP地址、目的端口、源IP地址、源端口。
优选的,在步骤S4中,本地维护一个状态表,状态表中根据发送协程与接收协程情况动态地修改每个扫描结果的状态,任务队列结束后,将那些没有返回包的目标进行重试,到达一定次数后放弃。
优选的,在步骤S4中,扫描结果的状态包括:未发送、已发送、已回复与已放弃。
优选的,在步骤S5中,当结果输出到输出队列与本地状态表后,扫描任务结束后根据状态表进行路径的选择;
路径一:在扫描任务没有选择结束时,需要继续扫描任务,将结果数据,重新输入至步骤S2的创建发包协程发送探测数据包处,以主路径进行再次扫描,直至结束;
路径二:在扫描任务结束后,且无异常扫描结果,便结束扫描;
路径三:在扫描任务结束后,且有异常扫描结果,当异常扫描结果达到阈值后,便结束扫描;
路径四:在扫描任务结束后,且有异常扫描结果,当异常扫描结果,没有达到阈值,便将异常结果作为扫描任务,重新输入至步骤S1的创建输出队列处,以主路径进行再次扫描,直至结束。
本发明的技术效果和优点:
本发明基于协程与无状态扫描方式进行扫描,同时对扫描带宽及异常结果进行复测,减少服务器资源浪费的同时提高了端口扫描的准确率及效率,用于解决现有情况下网络资产状态监测结果不准确、效率较低的问题,能够以较高的准确率与较高的速率完成网络资产情况的监测,进一步提高对网络资产的监管能力,降低因互联网暴露端口造成的安全隐患,通过协程与无状态扫描的方式,在使用更少资源的情况下,高效且精准地识别网络资产开放端口,基于协程进行端口扫描,提高服务器资源利用率与扫描效率;维护本地状态表,提高扫描结果精度,防止未报备开放端口导致的服务器被入侵;防止未报备开放端口导致的数据泄露;精确管理网络资产开放端口情况。
附图说明
图1为本发明整体流程图。
图2为本发明创建探测数据包的具体流程图。
图3为本发明创建接收响应包的具体流程图。
图4为本发明输出汇总队列与状态表的具体流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了如图1-4所示的一种网络资产端口扫描方法,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,基于协程与无状态扫描方式进行扫描,同时对扫描带宽及异常结果进行复测,减少服务器资源浪费的同时提高了端口扫描的准确率及效率,用于解决现有情况下网络资产状态监测结果不准确、效率较低的问题,能够以较高的准确率与较高的速率完成网络资产情况的监测,进一步提高对网络资产的监管能力,降低因互联网暴露端口造成的安全隐患,包括以下步骤:
S1,主线程读取扫描列表并对数据包的各种参数进行初始化,创建扫描任务提交到协程池;
S2,创建相应发包协程发送探测数据包,进行数据包的发送;
S3,创建接收协程接收响应包;
S4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;
S5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试,结束扫描,能够确保较高的扫描速率与扫描结果精度,同时节省资源。
进一步的,在步骤S1中,在参数初始化阶段需要打乱IP地址顺序;利用哈希算法将各个地址和端口进行哈希,生成具有唯一性的数据,填入发送的请求包的seq字段,作为接收响应包时判断来源的依据,在步骤S1中,参数初始化阶段使用洗牌算法打乱IP地址顺序,并且地址和端口具体包括:目的IP地址、目的端口、源IP地址和源端口,主线程读入扫描列表,对IP地址、端口与seq字段进行初始化。常见的防火墙与IDS检测端口扫描与DDOS行为的策略一般为配置防护阈值,当对一个网段或主机的探测包到达一定阈值时,则被防火墙认为是扫描行为。本发明中参数初始化阶段使用洗牌算法打乱IP地址顺序,避免因为对一个网段频繁扫描而被防火墙检测出扫描行为。
进一步的,在步骤S2中,初始化一个协程上下文,获取数据包参数,根据参数,生成探测包,发起异步发送操作,并保存当前协程上下文,主动切换当前协程,直至回调函数传入发送完成的信号后唤醒,使用令牌桶算法进行发包的带宽限制,根据从队列中获取待扫描地址与端口的参数,生成探测包,传统的扫描为有状态扫描,需要进行三次握手,消耗的资源与时间较多,而无状态的扫描直接绕过TCP/IP协议收发数据,不占用系统TCP/IP协议栈资源,能以更高的速率进行端口探测。网络带宽一定的情况下,若数据包发送过于频繁,丢包情况大大增加,为保证扫描结果的准确性,对于发包协程,本专利使用令牌桶算法进行带宽的限制,降低因网络阻塞和抖动带来的扫描结果误报。
进一步的,在步骤S3中,初始化一个协程上下文,嗅探网卡流量,接收响应包,对各个地址和端口的请求包数据进行哈希计算,哈希计算是一种非常重要的密码学技术,它可以保证数据的完整性、安全性和不可篡改性,被广泛应用于数字签名、消息认证、密码存储等方面。通过对比校验结果与预期结果判断源请求包,将结果更新至状态表与输出汇总队列,在步骤S3中,地址和端口具体包括:目的IP地址、目的端口、源IP地址、源端口。
进一步的,在步骤S4中,随网络抖动与网络状态变化,丢包是不可避免的,为提高端口扫描结果准确率,本专利中维护一个本地的状态表,本地维护一个状态表,状态表中根据发送协程与接收协程情况动态地修改每个扫描结果的状态,任务队列结束后,将那些没有返回包的目标进行重试,到达一定次数后放弃,在步骤S4中,扫描结果的状态包括:未发送、已发送、已回复与已放弃。
进一步的,在步骤S5中,当结果输出到输出队列与本地状态表后,扫描任务结束后根据状态表进行路径的选择;
路径一:在扫描任务没有选择结束时,需要继续扫描任务,将结果数据,重新输入至步骤S2的创建发包协程发送探测数据包处,以主路径进行再次扫描,直至结束;
路径二:在扫描任务结束后,且无异常扫描结果,便结束扫描;
路径三:在扫描任务结束后,且有异常扫描结果,当异常扫描结果达到阈值后,便结束扫描;
路径四:在扫描任务结束后,且有异常扫描结果,当异常扫描结果,没有达到阈值,便将异常结果作为扫描任务,重新输入至步骤S1的创建输出队列处,以主路径进行再次扫描,直至结束。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种网络资产端口扫描方法,其特征在于,通过运行主线程,由主线程创建一个输出队列、一个协程池和一个输出汇总队列,并在本地维护一个状态表,包括以下步骤:
S1,主线程读取扫描列表并对数据包的各种参数进行初始化,创建扫描任务提交到协程池;
S2,创建相应发包协程发送探测数据包,进行数据包的发送;
S3,创建接收协程接收响应包;
S4,通过接收协程接收响应包将结果输出到输出汇总队列中并更新状态表;
S5,扫描任务结束后根据状态表对异常扫描结果进行扫描重试,结束扫描。
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中,当结果输出到输出队列与本地状态表后,扫描任务结束后根据状态表进行路径的选择;
路径一:在扫描任务没有选择结束时,需要继续扫描任务,将结果数据,重新输入至步骤S2的创建发包协程发送探测数据包处,以主路径进行再次扫描,直至结束;
路径二:在扫描任务结束后,且无异常扫描结果,便结束扫描;
路径三:在扫描任务结束后,且有异常扫描结果,当异常扫描结果达到阈值后,便结束扫描;
路径四:在扫描任务结束后,且有异常扫描结果,当异常扫描结果,没有达到阈值,便将异常结果作为扫描任务,重新输入至步骤S1的创建输出队列处,以主路径进行再次扫描,直至结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311635089.4A CN117857092A (zh) | 2023-12-01 | 2023-12-01 | 一种网络资产端口扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311635089.4A CN117857092A (zh) | 2023-12-01 | 2023-12-01 | 一种网络资产端口扫描方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857092A true CN117857092A (zh) | 2024-04-09 |
Family
ID=90529894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311635089.4A Pending CN117857092A (zh) | 2023-12-01 | 2023-12-01 | 一种网络资产端口扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857092A (zh) |
-
2023
- 2023-12-01 CN CN202311635089.4A patent/CN117857092A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108551446B (zh) | 防攻击的syn报文处理方法、装置、防火墙及存储介质 | |
US9729655B2 (en) | Managing transfer of data in a data network | |
US8127290B2 (en) | Method and system for direct insertion of a virtual machine driver | |
US10116696B2 (en) | Network privilege manager for a dynamically programmable computer network | |
US9544273B2 (en) | Network traffic processing system | |
Izhikevich et al. | {LZR}: Identifying unexpected internet services | |
US8336108B2 (en) | Method and system for collaboration involving enterprise nodes | |
CN109194680B (zh) | 一种网络攻击识别方法、装置及设备 | |
US7440406B2 (en) | Apparatus for displaying network status | |
RU2666289C1 (ru) | Система и способ для ограничения запросов доступа | |
KR20130014226A (ko) | 공격 트래픽 형태별 특성에 따른 dns 플러딩 공격 탐지 방법 | |
US11777960B2 (en) | Detection of DNS (domain name system) tunneling and exfiltration through DNS query analysis | |
US20190334870A1 (en) | Packet tracking | |
US20210258333A1 (en) | Computer networking with security features | |
CN108810008B (zh) | 传输控制协议流量过滤方法、装置、服务器及存储介质 | |
CN107800723A (zh) | Cc攻击防护方法及设备 | |
Fei et al. | The abnormal detection for network traffic of power iot based on device portrait | |
US7552206B2 (en) | Throttling service connections based on network paths | |
US10721148B2 (en) | System and method for botnet identification | |
Khosravifar et al. | An experience improving intrusion detection systems false alarm ratio by using honeypot | |
US20150128260A1 (en) | Methods and systems for controlling communication in a virtualized network environment | |
CN115022069B (zh) | 用于网络攻击检测的ip分片报文重组方法及装置 | |
CN117857092A (zh) | 一种网络资产端口扫描方法 | |
CN113014530A (zh) | Arp欺骗攻击防范方法及系统 | |
US20240146762A1 (en) | Intelligent manipulation of denial-of-service attack traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |