`

常见的端口扫描类型及原理

 
阅读更多

常见的扫描类型有以下几种:

     

秘密扫描

秘密扫描是一种不被审计工具所检测的扫描技术。
它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己。
秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽。
但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。现有的秘密扫描有TCP FIN扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK扫描等。 

1、Connect()扫描:

     此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立接连,则证明端口开发,否则为关闭。准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。

TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:
① Client端发送SYN;
② Server端返回SYN/ACK,表明端口开放;
③ Client端返回ACK,表明连接已建立;
④ Client端主动断开连接。
建立连接成功(目标端口开放)如图所示

TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:
① Client端发送SYN;
② Server端返回RST/ACK,表明端口未开放。
未建立连接成功(目标端口关闭)如图所示。

优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。
另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。
缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。

2、SYN扫描:

      扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限。
    

端口开放:1、Client发送SYN  2、Server端发送SYN/ACK 3、Client发送RST断开(只需要前两步就可以判断端口开放)

端口关闭:1、Client发送SYN  2、Server端回复RST(表示端口关闭)

优点SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;

3、NULL扫描:

反向扫描----原理是将一个没有设置任何标志位的数据包发送给TCP端口,在正常的通信中至少要设置一个标志位,根据FRC 793的要求,在端口关闭的情况下,若收到一个没有设置标志位的数据字段,那么主机应该舍弃这个分段,并发送一个RST数据包,否则不会响应发起扫描的客户端计算机。也就是说,如果TCP端口处于关闭则响应一个RST数据包,若处于开放则无相应。但是应该知道理由NULL扫描要求所有的主机都符合RFC 793规定,但是windows系统主机不遵从RFC 793标准,且只要收到没有设置任何标志位的数据包时,不管端口是处于开放还是关闭都响应一个RST数据包。但是基于Unix(*nix,如Linux)遵从RFC 793标准,所以可以用NULL扫描。   经过上面的分析,我们知道NULL可以辨别某台主机运行的操作系统是什么操作系统,是为windows呢?还是*nix?

端口开放:Client发送Null,server没有响应

端口关闭:1、Client发送NUll   2、Server回复RST

说明:Null扫描和前面的TCP Connect()和SYN的判断条件正好相反。在前两种扫描中,有响应数据包的表示端口开放,但在NUll扫描中,收到响应数据包表示端口关闭。反向扫描比前两种隐蔽性高些,当精确度也相对低一些。

用途:判断是否为Windows系统还是*nix

4、FIN扫描:

       与NULL有点类似,只是FIN为指示TCP会话结束,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则表示端口关闭,没有响应则表示开放。此类扫描同样不能准确判断windows系统上端口开发情况。

端口开放:发送FIN,没有响应

端口关闭:1、发送FIN  2、回复RST

5、ACK扫描:

     扫描主机向目标主机发送ACK数据包。根据返回的RST数据包有两种方法可以得到端口的信息。方法一是: 若返回的RST数据包的TTL值小于或等于64,则端口开放,反之端口关闭,如图所示。

6、Xmas-Tree扫描:

通过发送带有下列标志位的tcp数据包

                                URG:指示数据时紧急数据,应立即处理。

                                PSH:强制将数据压入缓冲区。

                                 FIN:在结束TCP会话时使用。

正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放,与上面的反向扫描情况相同,依然不能判断windows平台上的端口。

端口开放:发送URG/PSH/FIN,没有响应

端口关闭:1、发送URG/PSH/FIN,没有响应   2、响应RST

XMAS扫描原理和NULL扫描的类似,将TCP数据包中的ACK、FIN、RST、SYN、URG、PSH标志位置1后发送给目标主机。在目标端口开放的情况下,目标主机将不返回任何信息。

7、Dump扫描:

       也被称为Idle扫描或反向扫描,在扫描主机时应用了第三方僵尸计算机扫描。由僵尸主机向目标主机发送SYN包。目标主机端口开发时回应SYN|ACK,关闭时返回RST,僵尸主机对SYN|ACK回应RST,对RST不做回应。从僵尸主机上进行扫描时,进行的是一个从本地计算机到僵尸主机的、连续的ping操作。查看僵尸主机返回的Echo响应的ID字段,能确定目标主机上哪些端口是开放的还是关闭的。

 

   整理来源:《防御!网络攻击内幕剖析》

  • 大小: 40.5 KB
  • 大小: 16.4 KB
  • 大小: 28.2 KB
  • 大小: 26 KB
  • 大小: 19.2 KB
  • 大小: 11 KB
  • 大小: 13.2 KB
  • 大小: 18.7 KB
  • 大小: 17 KB
  • 大小: 20.7 KB
分享到:
评论

相关推荐

    御剑端口扫描 2020 -

    端口扫描的基本原理是利用TCP/IP协议栈的工作机制,向目标主机的特定端口发送请求,如果端口开放,服务器会返回一个确认信息;如果端口关闭,将不会有任何响应或收到一个拒绝连接的信息。根据扫描方法的不同,端口...

    端口扫描课程设计报告

    在本次课程设计中,学生将深入理解端口扫描的原理,掌握其在信息安全中的应用,并通过实际操作设计一款小型的端口监控软件。 端口扫描主要用于探测网络中计算机开放的服务和端口,这些端口是计算机对外提供服务的...

    端口扫描原理 端口扫描是通过扫描主机确定哪一些TCP和UDP端口可以访问的过程

    端口扫描原理与类型 端口扫描是通过扫描主机确定哪一些TCP和UDP端口可以访问的过程。绝大多数应用程序运行在...在了解了这些扫描类型后,我们可以更好地理解端口扫描的原理和方法,从而更好地进行网络安全测试和防护。

    ip端口扫描工具,ip端口扫描工具

    IP端口扫描工具的工作原理通常是发送特定类型的网络数据包,例如TCP SYN或UDP包,到目标IP地址的特定端口,并记录响应。根据响应情况,工具可以确定目标端口是否开放、关闭或过滤。常见的扫描技术包括TCP Connect...

    TCPUDP端口扫描系统

    源码分析可以帮助理解端口扫描的底层机制,包括如何构造网络包,如何处理不同类型的响应,以及如何有效地管理大量的并发扫描任务。 在实际应用中,端口扫描工具可以用于以下场景: 1. 网络审计:确定网络上的所有...

    利用IP进行端口扫描

    常见的端口扫描类型包括TCP全连接扫描(SYN扫描)、TCP半开扫描(SYN+ACK扫描)、UDP扫描、ICMP扫描以及更复杂的XMAS树扫描和NULL扫描等。每种扫描方式都有其独特的应用场景和规避策略。 TCP全连接扫描是最直观的...

    端口扫描工具源码_工具_端口扫描_

    C#实现端口扫描工具的核心原理是利用TCP或UDP协议发送连接请求到目标主机的特定端口,并根据返回的响应来判断端口是否开放。以下是可能涉及的关键技术点: 1. **Socket编程**:C#中的System.Net.Sockets命名空间...

    计算机网络端口扫描.zip

    常见的扫描类型包括TCP全连接扫描(TCP SYN+ACK扫描)、半开放扫描(TCP SYN扫描)、UDP扫描和ICMP扫描等。 TCP全连接扫描是最直观的一种,它会建立一个完整的三次握手过程。扫描器发送SYN包,如果目标主机回应SYN+...

    御剑端口扫描2020.zip

    端口扫描技术主要基于TCP/IP协议栈的工作原理,通过发送特定的数据包到目标主机的特定端口,然后分析返回的响应来判断端口是否开放。根据扫描方式的不同,端口扫描可以分为TCP全连接扫描、TCP半开放扫描、SYN扫描、...

    检测端口扫描的方法研究

    ### 检测端口扫描的方法研究 ...通过对端口扫描的基本原理、工作方式及现有检测工具的分析,我们可以更好地理解如何有效地检测和防范此类攻击。未来的研究需要更加关注新技术的应用,以应对不断演变的网络威胁环境。

    C++程序 端口扫描系统的程序设计

    常见的端口扫描类型有TCP连接扫描、SYN扫描、UDP扫描等。在这个C++程序中,可能会实现其中的一种或多种扫描方式,以检测目标机器的网络服务状态。 TCP连接扫描是最直观的方法,它尝试与目标主机建立完整的TCP连接。...

    网络端口扫描

    基于网络的扫描程序根据用户设定的扫描参数,通过网络进行主机扫描、端口扫描和操作系统扫描,发现目标主机、主机提供的服务及使用的操作系统等信息。具体内容如下: 1. 主机扫描。构造ICMP echo请求报文或TCP SYN...

    御剑-端口扫描器.zip

    端口扫描是通过发送特定的数据包到目标主机的各个端口,根据返回的响应来判断端口是否开放、服务类型等信息。这种技术在网络安全中有着广泛的应用,包括但不限于主机探测、漏洞发现、渗透测试等。《御剑端口扫描器》...

    ScanPort端口扫描工具

    尽管未提供具体的ScanPort使用指南,但基于一般端口扫描工具的操作流程,用户可能需要输入目标IP地址,选择扫描类型(TCP/UDP),设定线程数量,并指定扫描的端口范围。运行后,工具将返回开放端口的列表。 总之,...

    网络安全终端实践课程设计端口扫描

    端口扫描是黑客获取目标系统信息的常用手段之一,它分为多种类型,如TCP全连接扫描(SYN扫描)、半开扫描(FIN/RST扫描)、UDP扫描等。全连接扫描是最直接的方法,通过尝试建立完整的TCP三次握手来探测目标端口是否...

    简单的端口扫描器

    常见的扫描类型有TCP SYN扫描、TCP全连接扫描、UDP扫描等。例如,TCP SYN扫描只发送SYN包而不完成三次握手,如果收到SYN+ACK响应,说明端口可能开放;若收到RST(Reset)包,则端口可能关闭。 在Java中实现端口扫描...

    极速端口扫描器极速端口扫描器

    在本文中,我们将深入探讨极速端口扫描器的原理、使用方法及注意事项。 端口扫描是通过发送特定的网络数据包到目标主机的各个端口,并根据响应来判断端口是否开放。极速端口扫描器以快速著称,通常采用并发扫描技术...

    纯真端口扫描器

    端口扫描的工作原理基于TCP/IP协议栈,通过向目标IP发送特定的数据包,并根据返回的响应来判断端口是否开放。通常,端口扫描分为TCP扫描、UDP扫描、SYN扫描等多种类型,每种扫描方式适用于不同的场景和目的。 1. ...

    御剑高速TCP端口扫描.rar

    端口扫描的基本原理是通过发送特定的数据包到目标主机的特定端口,根据返回的响应来判断该端口是否开放、服务类型以及可能存在的系统漏洞。御剑高速TCP端口扫描工具以其高效和精确性而著称,它能够快速扫描大量目标...

Global site tag (gtag.js) - Google Analytics