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

秘密扫描

秘密扫描是一种不被审计工具所检测的扫描技术。
它通常用于在通过普通的防火墙或路由器的筛选(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字段,能确定目标主机上哪些端口是开放的还是关闭的。

常见的端口扫描类型及端口扫描原理相关推荐

  1. h3c trunk口改access_H3C交换机端口链路类型Trunk 端口配置指导

    6. 交换机端口链路类型介绍 6.1 交换机端口链路类型介绍 交换机以太网端口共有三种链路类型:Access.Trunk 和 Hybrid. 1.Access 类型的端口只能属于 1 个 VLAN,一 ...

  2. linux查看端口物理状态,Linux查看端口使用状态及启动

    LINUX网络性能之管理工具三剑客 本文是介绍管理Linux查看端口这些输出信息,该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址. Netstat -tln 命令是Linu ...

  3. 交换机高级特性简介:MUX VLAN、端口隔离功能、端口安全功能简单原理与配置

    文章目录 MUX VLAN MUX VLAN应用场景 MUX VLAN基本概念 实验配置 配置命令 端口隔离 端口隔离基本概念 实验配置 配置命令 端口安全(Port Security) 端口安全基本 ...

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

    常见的扫描类型有以下几种: 秘密扫描 秘密扫描是一种不被审计工具所检测的扫描技术. 它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己. 秘密扫描能躲避IDS.防火墙.包过滤器 ...

  5. Windows Server入门系列之十六 端口、连接与端口扫描

    端口与连接是网络中两个非常基础的概念,本篇博文将介绍相关的一些基础知识. 1.端口 我们在学习网络技术时经常会提到80端口.21端口等,这些端口到底指的是什么呢?要注意,它们可不是像路由器或交换机上的 ...

  6. 常见的扫描类型有以下几种:Nmap的SYN、Connect、Null、FIN、Xmas、Maimon、ACK

    秘密扫描 秘密扫描是一种不被审计工具所检测的扫描技术. 它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己. 秘密扫描能躲避IDS.防火墙.包过滤器和日志审计,从而获取目标端口 ...

  7. linux 扫描开放的端口命令,在Linux系统中检查(扫描)开放端口的方法

    无论是对网络连接问题进行故障排除还是配置防火墙,首先要检查的是在系统上实际打开的端口,本文介绍几种查找系统外部打开端口的方法,即在Linux系统中检查(扫描)开放端口. 什么是开放端口 侦听端口是应用 ...

  8. nmap简单的扫描主机和端口

    扫描技术的作用:提高效率. 主要用于资产发现,可以发现目标环境中有哪些联网设备,主机,服务器和服务... 扫描神器---nmap  https://nmap.org/ ※如果使用kali中的nmap建 ...

  9. linux 111端口的用处,扫描到的端口到底有什么用

    扫描到的端口到底有什么用 有很多网友问的最多的问题就是:我用扫描软件扫到了一个机器上的许多开放端口,可是那些端口到底有什么用啊,今天,我就用一个实在的扫描向你讲述扫到的端口的用处. 被扫的主机:192 ...

最新文章

  1. 《人件集》阅读笔记第一篇
  2. linux日志怎么进行转储,Linux logrotate命令用法详解:进行日志转储(轮替)
  3. Nginx 从入门到放弃(二)
  4. MetaHuman效果炸了!但如果只想到元宇宙,那格局有点小了
  5. java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...
  6. Codeforces Round #345 (Div. 2)
  7. 云服务器磁盘挂载_云小课 | 磁盘容量不够用?小课教你来扩容!
  8. 步骤5 - Orchestra从微服务提供商获得结果,再发送回WebSocket服务器
  9. php过气了吗,留几手 留几手过气原因
  10. java 提取电话号码_java – 如何使用正则表达式提取字符串的电话号码?
  11. 目不识丁的我使用Python编写汉字注音小工具
  12. win10 安装Pytorch GPU版+CUDA+cuDNN(篇幅较长保姆教程) (含CUDA11.1与cuDNN8.0.4安装包)
  13. linux 进程崩溃log,Linux系统日志及日志分析
  14. 如何回滚特定的迁移?
  15. 每天学点linux之-mkdir和cd
  16. 迅雷有linux版本吗,迅雷 - Linux Wiki
  17. 分形理论在图像处理中的应用研究(综述)
  18. 你手写过堵塞队列吗?
  19. 5g多卡聚合路由器/5g多卡汇聚路由器,多网融合,弱网通信,多卡聚合路由器,5G多卡聚合路由,工业路由器,移动物联,商用路由, 视频直播, 融合通讯, 多链路聚合,5G多卡聚合,5G多链路聚合
  20. SOT-23封装对应元器件、管脚分布及其功能示意汇总

热门文章

  1. git基于远程分支创建新分支
  2. 成都学院计算机,2017年3月成都学院计算机等级考试报名时间(四川)
  3. python基础知识学习总结
  4. [益智]:从高楼抛玻璃球,用什么最优策略得到临界层?
  5. preact的异步渲染
  6. model给新娘最上镜秘诀
  7. JavaScript encodeURI()以及python解码
  8. PSP开发环境的搭建
  9. SQL Server安装与使用(破解版)
  10. 图片模糊搜索项目一阶段总结