CN113542045A - 一种tcp端口状态确定方法及装置 - Google Patents
一种tcp端口状态确定方法及装置 Download PDFInfo
- Publication number
- CN113542045A CN113542045A CN202010317307.XA CN202010317307A CN113542045A CN 113542045 A CN113542045 A CN 113542045A CN 202010317307 A CN202010317307 A CN 202010317307A CN 113542045 A CN113542045 A CN 113542045A
- Authority
- CN
- China
- Prior art keywords
- state
- tcp port
- port
- test
- server
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种TCP端口状态确定方法及装置,该方法包括如下步骤:接收服务端发送的TCP端口扫描请求,所述扫描请求包括需要确定端口状态的TCP端口号;根据所述扫描请求匹配出与所述TCP端口号对应的测试端口号;通过第一线程向服务端依次发送每一个TCP端口的测试报文,所述测试报文包括TCP端口号和测试端口号;根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,所述应答报文包括TCP端口号和测试端口号。通过实施本发明,第一线程只用来发送端口测试报文,第二线程只用来接收服务端的应答报文,两个线程互不影响,缩短了TCP端口扫描时间,提高了TCP端口扫描效率。
Description
技术领域
本发明涉及工业控制技术领域,具体涉及一种TCP端口状态确定方法及装置。
背景技术
漏洞挖掘是工业控制系统安全攻防的焦点,如果工业控制系统中的漏洞被攻击者发现,并利用这些漏洞进行攻击,会造成不可设想的后果。因此,及时发现工控系统的漏洞,对于提升工控系统整体的安全防护能力具有重要的意义。
模糊测试是漏洞挖掘的最常用的方法,漏洞挖掘设备对服务端等工控设备进行TCP协议模糊测试时,需要对工控设备进行TCP端口扫描,确定其开放的服务端的端口。但相关技术中对工控设备的TCP端口的扫描方法是逐一对TCP端口进行扫描,确定TCP端口的状态,即当前一个TCP端口扫描完成后再对下一个TCP端口进行扫描。当网络状态差时,逐一对TCP端口进行扫描确定其端口状态的时间周期长,扫描效率低。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的当网络状态差时,逐一对TCP端口进行扫描确定其端口状态的时间周期长,扫描效率低缺陷,从而提供一种TCP端口状态确定方法及装置。
根据第一方面,本发明实施例公开了一种TCP端口状态确定方法,应用于测试端,包括如下步骤:接收服务端发送的TCP端口扫描请求,所述扫描请求包括需要确定端口状态的TCP端口号;根据所述扫描请求匹配出与所述TCP端口号对应的测试端口号;通过第一线程向服务端依次发送每一个TCP端口的测试报文,所述测试报文包括TCP端口号和测试端口号;根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,所述应答报文包括TCP端口号和测试端口号。
可选地,所述根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,包括:当根据第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息相匹配时,确定所述应答报文包含的TCP端口的状态为开放状态;当根据第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息均不匹配,确定所述应答报文包含的TCP端口的状态为待确定状态。
可选地,所述方法还包括:当第二线程在预设时间内未收到所述服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。
可选地,所述方法还包括:重复通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文直至达到预设次数;当通过第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息相匹配时,将所述应答报文包含的处于待确定状态的TCP端口的状态确定为开放状态;当通过第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息均不匹配或在预设时间内未收到所述服务端发送的应答报文时,将相应的TCP端口的状态确定为关闭状态。
可选地,所述方法还包括:按照目标间隔时间,通过第一线程向所述服务端发送处于开放状态的TCP端口的测试报文;当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态。
可选地,所述当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态之后,所述方法还包括:当达到目标间隔时间,通过第一线程向所述服务端发送处于开放状态或告警状态的TCP端口的测试报文;当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态或关闭状态。
根据第二方面,本发明实施例还公开了一种TCP端口状态确定方法,应用于服务端,包括如下步骤:向测试端发送TCP端口扫描请求,所述扫描请求包括需要测试的TCP端口号;当接收到任一TCP端口的测试报文,根据所述测试报文向所述测试端发送应答报文,所述应答报文包括TCP端口号和测试端口号。
根据第三方面,本发明实施例还公开了一种TCP端口状态确定装置,应用于测试端,包括:第一接收模块,用于接收服务端发送的TCP端口扫描请求,所述扫描请求包括需要确定端口状态的TCP端口号;匹配模块,用于根据所述扫描请求匹配出与所述TCP端口号对应的测试端口号;第一发送模块,用于通过第一线程向服务端依次发送每一个TCP端口的测试报文,所述测试报文包括TCP端口号和测试端口号;第一确定模块,用于根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,所述应答报文包括TCP端口号和测试端口号。
根据第四方面,本发明实施例还公开了一种TCP端口状态确定方法,应用于服务端,包括:第二发送模块,用于向测试端发送TCP端口扫描请求,所述扫描请求包括需要测试的TCP端口号;第二接收模块,用于当接收到任一TCP端口的测试报文,根据所述测试报文向所述测试端发送应答报文,所述应答报文包括TCP端口号和测试端口号。
根据第五方面,本发明实施例还公开了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如第一方面或第一方面任一可选实施方式所述的TCP端口状态确定方法的步骤或如第二方面所述的TCP端口状态确定方法的步骤。
根据第六方面,本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一可选实施方式所述的TCP端口状态确定方法的步骤或如第二方面所述的TCP端口状态确定方法的步骤。
本发明技术方案,具有如下优点:
1.本发明提供的TCP端口状态确定方法及装置,应用于测试端,通过接收服务端发送的TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号,根据扫描请求匹配出与TCP端口号对应的测试端口号,通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号,根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,应答报文包括TCP端口号和测试端口号。通过实施本发明,第一线程只用来发送端口测试报文,第二线程只用来接收服务端的应答报文,第一线程发送下一个端口测试报文时不需要等第二线程的应答报文,两个线程互不影响,缩短了TCP端口扫描时间,提高了TCP端口扫描效率。
2.本发明提供的TCP端口状态确定方法及装置,应用于服务端,通过向测试端发送TCP端口扫描请求,扫描请求包括需要测试的TCP端口号,当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。通过实施本发明,服务端只要接收到TCP端口测试报文就会给测试端发送应答报文,不需要确定上一个TCP端口的状态后再给测试端发送应答报文,提高了TCP端口扫描的效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中TCP端口状态确定系统的一个具体示例图;
图2为本发明实施例2中TCP端口状态确定方法应用于测试端的一个具体示例的流程图;
图3为本发明实施例3中TCP端口状态确定方法应用于服务端的一个具体示例的流程图;
图4为本发明实施例4中TCP端口状态确定装置应用于测试端的一个具体示例的原理框图;
图5为本发明实施例5中TCP端口状态确定装置应用于服务端的一个具体示例的原理框图;
图6为本发明实施例6中计算机设备的一个具体示例的原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本实施例提供一种TCP端口状态确定系统,如图1所示,包括测试端和服务端,在本发明实施例中,测试端可以为漏洞挖掘设备,服务端可以为工控设备,漏洞挖掘设备对工控设备进行TCP协议模糊测试时,需要对工控设备的TCP端口进行扫描,确认TCP端口的状态。具体地,测试端的漏洞挖掘设备创建两个线程函数:发送线程send_thread和接收线程recv_thread,其中发送线程send_thread只用于生成及发送TCP端口的测试报文,接收线程recv_thread只用于接收及解析服务端的工控设备发送的应答报文,两个线程都不需要等待,各自进行工作;测试端的漏洞挖掘设备还创建一个数据结构,用于存储服务端和测试端的端口对应关系及服务端的TCP端口状态。具体TCP端口扫描过程包括如下步骤:
服务端向测试端发送TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号。
示例性地,当服务端的工控设备要进行TCP端口扫描时,向测试端发送TCP端口扫描请求,该扫描请求包括需要确定端口状态的TCP端口号,例如,客户要求扫描的TCP端口号为1-20000,该扫描请求中包括1-20000端口号。该扫描请求的发送方式可以是直接通过串口通信发送,也可以是利用无线/有线网络发送,本发明实施例对该发送方法不作限定,本领域技术人员可以根据实际情况选择。
测试端根据扫描请求匹配出与TCP端口号对应的测试端口号。
示例性地,当测试端接收到服务端的TCP端口扫描请求后,测试端可以根据接收到的TCP端口数量自动从已有端口匹配或生成对应数量的测试端口,本发明实施例对该测试端口的获取方式不作限定,本领域技术人员可以根据测试端的实际情况选择。该测试端口与上述TCP端口一一对应,并将该对应关系存储在数据结构中。
测试端通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号。
示例性地,在本发明实施例中,该第一线程为发送线程send_thread,该测试报文为测试报文,测试端依次创建并发送每一个TCP端口对应的测试报文,该测试报文包括TCP端口号和测试端口号,其中,TCP端口号为测试报文的目标端口,测试端口号为测试报文的源端口,该TCP端口号和测试端口号均为16位的。发送报文后,在数据结构中将该TCP端口的状态记录为待确定状态。发送的测试报文可以是加密的测试报文,也可以为未加密的测试报文,本发明实施例对该测试报文的发送方法不作限定,本领域技术人员可以根据实际情况选择。
服务端接收测试报文,当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。
示例性地,服务端接收测试报文的接收方法与上述测试端向服务端发送测试报文的方式对应,当服务端接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,该应答报文包括TCP端口号和测试端口号,在该应答报文中,TCP端口号为源端口,测试端口号为目的端口,应答报文的发送方式与上述测试报文的发送方式一样,在此不再赘述。
测试端根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态。
示例性地,在本发明实施例中,第二线程为接收线程,该应答报文的状态可以包括:接收到匹配的应答报文、接收到不匹配的应答报文、预设时间内没有接收到应答报文等。测试端根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,例如,当测试端通过第二线程接收到匹配的应答报文时,确定应答报文包含的TCP端口的状态为开放状态。
本发明提供的TCP端口状态确定系统,包括测试端和服务端,测试端创建两个线程函数:发送线程和接收线程,其中发送线程只用于生成及发送TCP端口的测试报文,接收线程只用于接收及解析服务端发送的应答报文,两个线程互不影响且都不需要等待,各自进行工作,缩短了TCP端口扫描时间,可以快速扫描出服务端中开放的TCP端口,提高了TCP端口扫描效率。
作为本发明一个可选实施方式,根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,包括:
当测试端根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,确定应答报文包含的TCP端口的状态为开放状态。
示例性地,测试端通过第二线程接收服务端发送的应答报文并解析得到TCP端口和测试端口,当该TCP端口和测试端口与数据结构中存储的端口关系匹配时,在数据结构中将应答报文中包含的TCP端口的状态记录为开放状态。数据结构中设有一个计数模块,该计数模块的初始值为0,当有一个TCP端口的端口状态被确定为开放状态时,该计数模块的值加1,便于对服务端处于开放状态的TCP端口进行统计。
当根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配,确定应答报文包含的TCP端口的状态为待确定状态。
示例性地,当通过第二线程接收的服务端发送的应答报文与数据结构中的存储每一个端口关系都不匹配时,可以将应答报文包含的TCP端口的状态确定为待确定状态,再次向服务端发送测试报文确定TCP端口的端口状态。也可以直接将应答报文包含的TCP端口的状态直接确定为关闭状态,降低报文发送数量,降低网络负载。
作为本发明一个可选实施方式,当第二线程在预设时间内未收到服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。
示例性地,该预设时间可以为1秒,本发明实施例对该预设时间不作限定,本领域技术人员可以根据实际情况设定。测试端没有在预设时间内收到服务端发送的应答报文可以为测试端发送时丢包,服务端没有接收到测试报文,也可以为测试端发送测试报文的速度太快,服务端来不及处理等。当第二线程在预设时间内未收到服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。
作为本发明一个可选实施方式,该TCP端口扫描方法还包括:
测试端重复通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文直至达到预设次数。
示例性地,测试端通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文,两次发送测试报文,提高了TCP端口状态确定的准确性。该预设次数也可以为多次,本发明实施例对该预设次数不作限定,本领域技术人员可以根据实际情况设定。
当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,将应答报文包含的处于待确定状态的TCP端口的状态确定为开放状态。具体实施方式见上述相关步骤的描述,在此不再赘述。
当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配或在预设时间内未收到服务端发送的应答报文时,将相应的TCP端口的状态确定为关闭状态。当测试端两次或多次向服务端发送测试报文后,TCP端口的状态依旧没有变为开放状态,认为该TCP端口是有问题的TCP端口,将应答报文包含的或没有收到应答报文的处于待确定状态的TCP端口的状态确定为关闭状态。
作为本发明一个可选实施方式,该TCP端口扫描方法还包括:
按照目标间隔时间,测试端通过第一线程向服务端发送处于开放状态的TCP端口的测试报文。
示例性地,目标间隔时间可以为2分钟,本发明实施例对该目标将时间不作限定,本领域技术人员可以根据实际情况设定。在测试端的漏洞挖掘设备对服务端的工控设备进行模糊测试的过程中对数据结构中存储的端口状态为开放状态的TCP端口进行监控,具体监控方法为测试端通过第一线程向服务端发送处于开放状态的TCP端口的测试报文,实时确定TCP端口的状态,该测试报文与上述步骤中的测试报文一样。
当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态。
示例性地,当端口状态为待确定状态时,认为该TCP端口出现异常,将数据结构中的TCP端口的端口状态设置为告警状态,用于告知客户工控设备中的TCP端口异常,便于客户及时发现解决问题。
作为本发明一个可选实施方式,该TCP端口扫描方法还包括:
当达到目标间隔时间,测试端通过第一线程向服务端发送处于开放状态或告警状态的TCP端口的测试报文。
示例性地,测试端对服务端进行模糊测试的过程中,一直监控服务端的TCP端口的端口状态,处于告警状态的TCP端口只是可能出现问题,并不是确定有问题,因此,在本发明实施例中,将测试端通过第一线程向服务端发送处于开放状态或告警状态的TCP端口的测试报文,用于监控处于开放状态或告警状态的TCP端口。
当端口状态为待确定状态时,测试端将TCP端口的端口状态设置为告警状态或关闭状态。
示例性地,在本发明实施例中,当端口状态为开放状态的TCP端口的状态为待确定状态时,测试端将TCP端口的端口状态确定为告警状态;当端口状态为告警状态的TCP端口的状态依然为待确定状态时,测试端将TCP端口的端口状态确定为关闭状态;为了更好的确定处于告警状态的TCP端口的端口状态,可以多次监控该TCP端口,本发明实施例该监控次数不作限定,本领域技术人员可以根据实际情况设定。
实施例2
本发明实施例提供一种TCP端口状态确定方法,如图2所示,包括如下步骤:
S11:接收服务端发送的TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号。
S12:根据扫描请求匹配出与TCP端口号对应的测试端口号。
S13:通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号。
S14:根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,应答报文包括TCP端口号和测试端口号。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
本发明提供的TCP端口状态确定方法,通过接收服务端发送的TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号,根据扫描请求匹配出与TCP端口号对应的测试端口号,通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号,根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,应答报文包括TCP端口号和测试端口号。通过实施本发明,第一线程只用来发送端口测试报文,第二线程只用来接收服务端的应答报文,第一线程发送下一个端口测试报文时不需要等第二线程的应答报文,两个线程互不影响,缩短了TCP端口扫描时间,提高了TCP端口扫描效率。
作为本发明一个可选实施方式,步骤S14包括:
当根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,确定应答报文包含的TCP端口的状态为开放状态;
当根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配,确定应答报文包含的TCP端口的状态为待确定状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,当第二线程在预设时间内未收到服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定方法还包括:
重复通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文直至达到预设次数。
当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,将应答报文包含的处于待确定状态的TCP端口的状态确定为开放状态。
当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配或在预设时间内未收到服务端发送的应答报文时,将相应的TCP端口的状态确定为关闭状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定方法还包括:
按照目标间隔时间,通过第一线程向服务端发送处于开放状态的TCP端口的测试报文。
当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态之后,该TCP端口状态确定方法还包括:
当达到目标间隔时间,通过第一线程向服务端发送处于开放状态或告警状态的TCP端口的测试报文。
当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态或关闭状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
实施例3
本发明实施例提供一种TCP端口状态确定方法,应用于服务端,如图3所示,包括如下步骤:
S21:向测试端发送TCP端口扫描请求,扫描请求包括需要测试的TCP端口号;
S22:当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
本发明提供的TCP端口状态确定方法,通过向测试端发送TCP端口扫描请求,扫描请求包括需要测试的TCP端口号,当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。通过实施本发明,服务端只要接收到TCP端口测试报文就会给测试端发送应答报文,不需要确定上一个TCP端口的状态后再给测试端发送应答报文,提高了TCP端口扫描的效率。
实施例4
本发明实施例提供一种TCP端口状态确定装置,应用于测试端,如图4所示,包括:
第一接收模块31,用于接收服务端发送的TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号;
匹配模块32,用于根据扫描请求匹配出与TCP端口号对应的测试端口号;
第一发送模块33,用于通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号;
第一确定模块34,用于根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,应答报文包括TCP端口号和测试端口号。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
本发明提供的TCP端口状态确定装置,通过接收服务端发送的TCP端口扫描请求,扫描请求包括需要确定端口状态的TCP端口号,根据扫描请求匹配出与TCP端口号对应的测试端口号,通过第一线程向服务端依次发送每一个TCP端口的测试报文,测试报文包括TCP端口号和测试端口号,根据第二线程接收服务端发送的应答报文的状态,确定应答报文包含的TCP端口的状态,应答报文包括TCP端口号和测试端口号。通过实施本发明,第一线程只用来发送端口测试报文,第二线程只用来接收服务端的应答报文,第一线程发送下一个端口测试报文时不需要等第二线程的应答报文,两个线程互不影响,缩短了TCP端口扫描时间,提高了TCP端口扫描效率。
作为本发明一个可选实施方式,第一确定模块34包括:
第一确定子模块,用于当根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,确定应答报文包含的TCP端口的状态为开放状态;
第二确定子模块,用于当根据第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配,确定应答报文包含的TCP端口的状态为待确定状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定装置还包括:
第二确定状态,用于当第二线程在预设时间内未收到服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定装置还包括:
重复发送模块,用于重复通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文直至达到预设次数。
第三确定模块,用于当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息相匹配时,将应答报文包含的处于待确定状态的TCP端口的状态确定为开放状态。
第四确定模块,用于当通过第二线程接收的服务端发送的应答报文与任一测试报文的端口信息均不匹配或在预设时间内未收到服务端发送的应答报文时,将相应的TCP端口的状态确定为关闭状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定装置还包括:
第三发送模块,用于按照目标间隔时间,通过第一线程向服务端发送处于开放状态的TCP端口的测试报文。
第五确定模块,用于当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
作为本发明一个可选实施方式,该TCP端口状态确定装置还包括:
第四发送模块,用于当达到目标间隔时间,通过第一线程向服务端发送处于开放状态或告警状态的TCP端口的测试报文。
第六确定模块,用于当端口状态为待确定状态时,将TCP端口的端口状态设置为告警状态或关闭状态。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
实施例5
本发明实施例提供一种TCP端口状态确定装置,应用于服务端,如图5所示,包括:
第二发送模块41,用于向测试端发送TCP端口扫描请求,扫描请求包括需要测试的TCP端口号;
第二接收模块42,用于当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。
具体实现方式见实施例1中对应的步骤的相关描述,在此不再赘述。
本发明提供的TCP端口状态确定装置,通过向测试端发送TCP端口扫描请求,扫描请求包括需要测试的TCP端口号,当接收到任一TCP端口的测试报文,根据测试报文向测试端发送应答报文,应答报文包括TCP端口号和测试端口号。通过实施本发明,服务端只要接收到TCP端口测试报文就会给测试端发送应答报文,不需要确定上一个TCP端口的状态后再给测试端发送应答报文,提高了TCP端口扫描的效率。
实施例6
本发明实施例还提供了一种计算机设备,如图6所示,该计算机设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的TCP端口状态确定方法对应的程序指令/模块(例如,图4所示的第一接收模块31、匹配模块32、第一发送模块33和第一确定模块34或图5所示的第二发送模块41和第二接收模块42)。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的TCP端口状态确定方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图2或3所示实施例中的TCP端口状态确定方法。
上述计算机设备具体细节可以对应参阅图2或3所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
实施例7
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的TCP端口状态确定方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (11)
1.一种TCP端口状态确定方法,应用于测试端,其特征在于,包括如下步骤:
接收服务端发送的TCP端口扫描请求,所述扫描请求包括需要确定端口状态的TCP端口号;
根据所述扫描请求匹配出与所述TCP端口号对应的测试端口号;
通过第一线程向服务端依次发送每一个TCP端口的测试报文,所述测试报文包括TCP端口号和测试端口号;
根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,所述应答报文包括TCP端口号和测试端口号。
2.根据权利要求1所述的方法,其特征在于,所述根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,包括:
当根据第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息相匹配时,确定所述应答报文包含的TCP端口的状态为开放状态;
当根据第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息均不匹配,确定所述应答报文包含的TCP端口的状态为待确定状态。
3.根据权利要求1所述的方法,其特征在于,还包括:
当第二线程在预设时间内未收到所述服务端发送的应答报文时,确定未收到应答报文的TCP端口的状态为待确定状态。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
重复通过第一线程向服务端依次发送每一个处于待确定状态的TCP端口的测试报文直至达到预设次数;
当通过第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息相匹配时,将所述应答报文包含的处于待确定状态的TCP端口的状态确定为开放状态;
当通过第二线程接收的所述服务端发送的应答报文与任一测试报文的端口信息均不匹配或在预设时间内未收到所述服务端发送的应答报文时,将相应的TCP端口的状态确定为关闭状态。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
按照目标间隔时间,通过第一线程向所述服务端发送处于开放状态的TCP端口的测试报文;
当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态。
6.根据权利要求5所述的方法,其特征在于,所述当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态之后,所述方法还包括:
当达到目标间隔时间,通过第一线程向所述服务端发送处于开放状态或告警状态的TCP端口的测试报文;
当所述端口状态为待确定状态时,将所述TCP端口的端口状态设置为告警状态或关闭状态。
7.一种TCP端口状态确定方法,应用于服务端,其特征在于,包括如下步骤:
向测试端发送TCP端口扫描请求,所述扫描请求包括需要测试的TCP端口号;
当接收到任一TCP端口的测试报文,根据所述测试报文向所述测试端发送应答报文,所述应答报文包括TCP端口号和测试端口号。
8.一种TCP端口状态确定装置,应用于测试端,其特征在于,包括:
第一接收模块,用于接收服务端发送的TCP端口扫描请求,所述扫描请求包括需要确定端口状态的TCP端口号;
匹配模块,用于根据所述扫描请求匹配出与所述TCP端口号对应的测试端口号;
第一发送模块,用于通过第一线程向服务端依次发送每一个TCP端口的测试报文,所述测试报文包括TCP端口号和测试端口号;
第一确定模块,用于根据第二线程接收所述服务端发送的应答报文的状态,确定所述应答报文包含的TCP端口的状态,所述应答报文包括TCP端口号和测试端口号。
9.一种TCP端口状态确定装置,应用于服务端,其特征在于,包括:
第二发送模块,用于向测试端发送TCP端口扫描请求,所述扫描请求包括需要测试的TCP端口号;
第二接收模块,用于当接收到任一TCP端口的测试报文,根据所述测试报文向所述测试端发送应答报文,所述应答报文包括TCP端口号和测试端口号。
10.一种计算机设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-6中任一项所述的TCP端口状态确定方法的步骤或如权利要求7所述的TCP端口状态确定方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的TCP端口状态确定方法的步骤或如权利要求7所述的TCP端口状态确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010317307.XA CN113542045B (zh) | 2020-04-21 | 2020-04-21 | 一种tcp端口状态确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010317307.XA CN113542045B (zh) | 2020-04-21 | 2020-04-21 | 一种tcp端口状态确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542045A true CN113542045A (zh) | 2021-10-22 |
CN113542045B CN113542045B (zh) | 2023-01-24 |
Family
ID=78093818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010317307.XA Active CN113542045B (zh) | 2020-04-21 | 2020-04-21 | 一种tcp端口状态确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542045B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005634A1 (en) * | 2006-06-29 | 2008-01-03 | Grise Gary D | Scan chain circuitry that enables scan testing at functional clock speed |
CN103475540A (zh) * | 2013-09-04 | 2013-12-25 | 厦门亿联网络技术股份有限公司 | 同一局域网内pc机间检测ip端口是否连接的方法 |
US20150318967A1 (en) * | 2013-01-18 | 2015-11-05 | Huawei Technologies Co., Ltd. | Method and device for transmitting information |
CN108282385A (zh) * | 2018-01-25 | 2018-07-13 | 迈普通信技术股份有限公司 | 端口测试方法及通信设备 |
CN109413018A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种端口扫描方法及装置 |
CN110445681A (zh) * | 2019-07-31 | 2019-11-12 | 新华三技术有限公司合肥分公司 | 一种多端口并行测试方法、装置及电子设备 |
-
2020
- 2020-04-21 CN CN202010317307.XA patent/CN113542045B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005634A1 (en) * | 2006-06-29 | 2008-01-03 | Grise Gary D | Scan chain circuitry that enables scan testing at functional clock speed |
US20150318967A1 (en) * | 2013-01-18 | 2015-11-05 | Huawei Technologies Co., Ltd. | Method and device for transmitting information |
CN103475540A (zh) * | 2013-09-04 | 2013-12-25 | 厦门亿联网络技术股份有限公司 | 同一局域网内pc机间检测ip端口是否连接的方法 |
CN108282385A (zh) * | 2018-01-25 | 2018-07-13 | 迈普通信技术股份有限公司 | 端口测试方法及通信设备 |
CN109413018A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种端口扫描方法及装置 |
CN110445681A (zh) * | 2019-07-31 | 2019-11-12 | 新华三技术有限公司合肥分公司 | 一种多端口并行测试方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
高凌雯: "网络漏洞扫描原理分析", 《福建电脑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113542045B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110636075A (zh) | 一种运维管控、运维分析方法及装置 | |
CN111385260B (zh) | 一种端口探测方法、系统、服务器和存储介质 | |
US10652211B2 (en) | Control device, border router, control method, and control program | |
CN110740144B (zh) | 确定攻击目标的方法、装置、设备及存储介质 | |
US20160119181A1 (en) | Network state monitoring system | |
CN112929241B (zh) | 一种网络测试方法及装置 | |
CN112261094A (zh) | 一种报文处理方法及代理服务器 | |
CN114268957B (zh) | 异常业务数据处理方法、装置、服务器及存储介质 | |
US20180270138A1 (en) | Gateway and method for gateway performance monitoring | |
CN111355670B (zh) | 一种流量识别方法、装置、电子设备及存储介质 | |
CN107948022B (zh) | 一种对等网络流量的识别方法及识别装置 | |
CN112732560B (zh) | 文件描述符泄露风险的检测方法及装置 | |
CN113542045B (zh) | 一种tcp端口状态确定方法及装置 | |
CN111786898B (zh) | 一种监控设备信息获取方法、装置、设备及介质 | |
US20200128041A1 (en) | Method and device for monitoring data communications | |
RU2019142997A (ru) | Способ и устройство для обнаружения аномалий инфраструктуры | |
US20170265053A1 (en) | Method and Apparatus for Discovering Network Devices | |
CN108183926B (zh) | 一种数据包处理方法和装置 | |
CN115484110A (zh) | Ddos处理方法、装置、电子设备和存储介质 | |
CN116155539A (zh) | 一种基于信息流异步处理算法的自动化渗透测试方法、系统、设备以及存储介质 | |
Zniti et al. | A comparative study of hash algorithms with the prospect of developing a CAN bus authentication technique | |
CN110535844B (zh) | 一种恶意软件通讯活动检测方法、系统及存储介质 | |
CN104270431A (zh) | 一种并发控制的方法及装置 | |
CN115809222A (zh) | 一种日志处理方法、装置、设备以及计算机存储介质 | |
US9077639B2 (en) | Managing data traffic on a cellular network |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |