IDC资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回IDC资讯列表

常见服务器端口扫描类型与原理

发布时间:2020-08-07

网站服务器常见的端口扫描类型有以下几种。
1.TCP Connect()扫描。
2.SYN扫描。
3.NULL扫描。
4.FIN扫描。
5.ACK扫描。
6.Xmas-Tree扫描。
7.Dumb扫描。
下面我们分辨介绍这几种扫描类型及其实现原理(如未做特别阐明,以下内容中主机A均指发起连接的主机,主机B均指吸收连接的主机)。
1、TCP Connect()扫描
TCP Connect()扫描试图与每一个TCP端口进行“三次握手”通信,完成三次握手过程。如果能够成功建立连接,则证明端口开放,否则为关闭,如图1所示。
阐明
这种类型的扫描因为要完成一次完整的TCP连接,所以它的正确性非常高,但也最容易被防火墙或入侵检测系统检测到,而且,在目标主机的日志中会记载大批的连接恳求以及毛病信息。

2、SYN扫描
SYN扫描要比 TCP Connect()扫描隐蔽一些,前面曾经说过,TCP三次握手依次包含了SYNSYN-ACK和ACK3个数据包。SYN扫描仅仅发送初始的SYN数据包给目标主机,如果端口处于开放状态,那么目标主机将响应SYN-ACK数据包;如果端口处于关闭状态,那么目标主机将响应RST数据包,如图2所示。

这是前两次“握手”的过程,SYN扫描与TCP Connect()扫描完整雷同。两者不同的处所是接下来SYN扫描要做的工作:当主机B返回 SNY/ACK数据包后,盘算机A并不应用ACK数据包(三次握手所期待的响应数据包类型)作为响应,取而代之的是,盘算机A响应一个RST数据包,从而断开连接。通过在建立会话之前断开连接,SYN扫描能够避开某些防火墙的检测。但是,许多入侵检测系统(IDS)能够监测到SYN扫描。
3、NULL扫描
在NULL扫描中,将一个没有设置标记位的数据包发送给TCP端口。在正常的TCP通信中,至少要设置标记位。然而,在NULL扫描中,所有标记位都不设置。根据RFC793的请求,在端口关闭的状态下,如果收到了一个没有设置标记位的数据字段,那么吸收主机应当丢弃这个分段,并发送一个RST数据包。否则不会响应包达到发起扫描的客户端盘算机。
当向每一个TCP端口发送没有设置标记位的数据包时,如果目标主机上该端口处于关闭状态,那么它将响应一个RST数据包;如果该端口处于开放状态,那么主机疏忽该数据包,不会响应包达到发起扫描的客户端盘算机,如图3所示。

小知识
RFC是Request For Comment的缩写,由IETF管理,实际上就是互联网有关服务的一些标准所有关于互联网的正式标准都以文档出版,但并不是所有的RFC都是正式的标准,很多RFC的目标只是为了供给信息。RFC每一篇都用一个数字来标识,如RFC793,数字越大阐明RFC的内容越新。RFC是不要钱公开的,任何人都可以写RFC并提交IETF,一旦正式通过就可以正式发布,一旦发布RFC内容将不能再做任何修正,以后的修正只能通过新的RFC来处理,因此可以看到有很多新的RFPC文档 obsolete(破除)或 update(更新)旧的RFC文档。
RFC793是TCP协议的正式标准,其中规定了任何TCP实现所请求的行动的规范。
应用NULL扫描,请求所有主机都一定要符合RFC793的请求。但现实中, Windows系统主机并不屈服RFC793标准。因此,不能应用NULL扫描来断定 Windows系统主机上的运动端口。当应用Windows系统的主机吸收到没有设置标记位的数据包时,无论这个端口是不是处于开放状态,它都将回应一个RST数据包。
基于UNIX的系统(*nix,如 Linux、UNX系统)屈服RFC793标准,因此,当端口关闭时,系统的主机会回应一个RST数据包;而当端口开放时,不回应任何数据包。
综上所述,应用NULL扫描可以分辨某台主机运行的是哪种操作系统,如果扫描的成果是主机全部端口均是关闭的(正常情况下任何主机必定有端口开放),则目标主机必定为 Windows操作系统,如果有端口开放,则为*mix操作系统。
4、FIN扫描
另一种类型的反向扫描为FN扫描,它与NULL扫描类似,同样比SYN和 TCP Connect()扫描更隐蔽一些,但准确度也相对低一些。
FIN位唆使TCP会话的结束,在FIN扫描中,一个设置了FN位的数据包被发送给目标主机的每一个端口,与所有类型的反向扫描一样,响应RST数据包表现端口关闭,没有响应表现端口开放。图4展现了对FN扫描的响应。同样需要注意的是, Windows操作系统并不屈服RFC793,因此,这类系统不能够对这种类型的扫描供给准确的成果。

5、ACK扫描
ACK扫描通常用来穿过防火墙的规矩集。在ACK扫描中,应用响应包来创造防火墙的配置信息。如果某个端口被防火墙过滤,那么就不会返回数据包。如果某个端口没有被防火墙过滤(传输到指定端口的流量可以穿越防火墙),那么返回RST数据包。通过侦听RST数据包,可以懂得哪些端口被防火墙过滤掉,哪些端口没有被过滤掉。

6、Xmas-Tree扫描
Xmas-Tree扫描(也被称为圣诞树扫描)发送带有下述标记的TCP数据包。
URG:唆使数据是紧急数据,应当马上被处理。
PSH:强制将数据压入缓冲区。
FIN:在结東TCP会话时应用。
这个扫描中应用的技巧并不是这些标记本来的用处,但它们可以在一起同时应用。正常的TCP连接不应当同时设置这3个标记。
Xmas-Tree扫描返回与其他反向扫描雷同的成果,并且依然不能断定 Windows平台上端口的关闭与开放。端口开放与关闭情况的断定如图5所示。

7、Dump扫描
Dumb扫描(画扫描)也称为Idle扫描或反向扫描,Dumb扫描是另一种扫描方法,在扫描目标主机的过程中,它应用第三方的僵尸盘算机作为“哑”主机进行扫描。僵尸主机是一台被入侵的空闲主机。范例情况下,这台主机并不存储敏感数据,对这样的主机的访问通常并不会引起人们的注意。
在IDLE扫描中,僵尸主机向目标主机发SYN包。目标主机根据端口的不同状态,发送不同的回应;端口开放时回应 SYNACK;关闭时回应RST。僵尸主机对 SYNACK回应RST:;对RST不做回应。因此,只要监控僵尸主机的发包数量就可以知道目标主机端口的状态。为了获得假装主机在扫描过程中的发包数量,我们可以利用某些操作系统存在的PID值来预测漏洞。
Dumb扫描的不同之处在于该扫描不是发自自己的盘算机,而是发自某个僵尸主机。当从僵尸主机上发起这种扫描时,进行的是一个从盘算机到僵尸主机的、持续的ping操作。查看僵尸主机返回的Echo响应的D字段,能够断定目标主机上哪一些端口是开放端口,哪一些端口是关闭端口。
小知识
Echo是一个回显响应,在TCP/IP协议中通过发送一个ICMP类型的恳求回显( ICMP EchoRequest)数据包,根据返回的ICMP回显应答( ICMP Echo Reply)数据包来断定目标主机是不是存活(前提是对方没开启数据包过滤功效)。

TikTok千粉号购买平台:https://tiktokusername.com/