TCP UDP端口扫描
- 格式:doc
- 大小:1.14 MB
- 文档页数:20
端口扫描原理端口扫描是网络安全领域中常见的一种技术手段,它可以帮助管理员发现网络中存在的安全隐患,及时采取措施加以修复。
端口扫描的原理是通过向目标主机发送特定的网络数据包,然后根据目标主机的响应来判断其端口的开放情况,从而实现对目标主机的端口状态进行探测。
本文将介绍端口扫描的原理及常见的扫描技术。
首先,端口扫描的原理是基于TCP/IP协议的。
在TCP/IP协议中,每个应用程序都会使用特定的端口与其他应用程序通信。
端口号的范围是0~65535,其中0~1023为系统端口,1024~49151为注册端口,49152~65535为动态/私有端口。
通过向目标主机发送TCP或UDP数据包,可以探测目标主机上的端口是否开放。
如果目标主机对特定端口的数据包做出响应,就说明该端口是开放的;如果没有响应,就说明该端口是关闭的。
其次,端口扫描技术主要包括全连接扫描、半开放扫描、SYN扫描、FIN扫描、XMAS扫描等。
全连接扫描是最常见的一种扫描技术,它通过向目标主机的每个端口发送TCP连接请求来探测端口的开放情况。
半开放扫描则是通过向目标主机发送SYN数据包,然后根据目标主机的响应来判断端口的状态。
SYN扫描是一种较为隐蔽的扫描技术,它通过发送SYN数据包来判断端口是否开放。
FIN扫描和XMAS扫描则是通过发送特殊的TCP数据包来探测端口状态,它们通常用于规避防火墙和入侵检测系统的检测。
此外,端口扫描还可以根据扫描的目的分为黑盒扫描和白盒扫描。
黑盒扫描是指在未经授权的情况下对目标主机进行扫描,通常用于渗透测试和攻击行为;而白盒扫描是在经过授权的情况下对目标主机进行扫描,通常用于安全审计和漏洞扫描。
综上所述,端口扫描是一种常见的网络安全技术,它通过向目标主机发送特定的网络数据包来探测端口的开放情况,从而帮助管理员发现网络中存在的安全隐患。
了解端口扫描的原理及常见的扫描技术对于提高网络安全水平具有重要意义。
在进行端口扫描时,需要遵守相关法律法规,尊重他人的网络安全和隐私,切勿进行未经授权的扫描行为。
简述端口扫描的原理
端口扫描是一种常用的安全测试方式,它通过扫描目标主机的开放端口,来判断目标主机的安全性。
其原理是利用网络通信协议中的TCP、UDP等方式,向目标主机的端口发送请求,并根据返回结果来确定目标主机是否响应该端口。
在端口扫描过程中,扫描器会按照预设的端口顺序(如从0到65535)依次向目标主机的每个端口发送请求,并根据返回结果来判断该端口是否开放。
如果收到了响应数据,则意味着该端口是开放的,否则则表示该端口是关闭的或被防火墙拦截了。
端口扫描的原理基于TCP协议的“三次握手”过程,当扫描器向目标主机的某个端口发送请求时,如果目标主机接受请求,就会回应一个“SYN-ACK”数据包,表示该端口是开放的。
如果目标主机拒绝请求,则会回应一个“RST”数据包,表示该端口是关闭的或被防火墙拦截了。
端口扫描的原理也涉及到UDP协议的“无连接”特性,因为UDP 协议不需要建立连接,所以扫描器只需向目标主机发送UDP数据包,如果收到了响应,则表示该端口是开放的,否则则表示该端口是关闭的或被防火墙拦截了。
总的来说,端口扫描的原理是通过向目标主机发送请求,来判断目标主机是否响应该端口,并根据返回结果来确定该端口是否开放。
这种方式可以帮助安全测试人员发现系统中的漏洞和安全问题,从而提高系统的安全性。
概要介绍ICMPTCP及UDP三种高级扫描技术及原理ICMPTCP(简称ICMP over TCP)是一种基于TCP封装的ICMP (Internet Control Message Protocol)扫描技术,UDP(User Datagram Protocol)是一种无连接的传输层协议。
这些高级扫描技术被广泛用于网络安全领域,可用于发现网络中的主机和开放的端口。
ICMPTCP原理:ICMPTCP利用了TCP协议中的已有特性和ICMP协议的灵活性。
它首先创建一个TCP连接,然后将ICMP消息嵌入TCP流中传送给目标主机。
目标主机收到ICMP消息后,会识别出ICMP消息,在其中获取IP头部和ICMP消息的数据,这样就可以扫描目标主机的开放端口。
ICMPTCP扫描技术可以绕过一些基于TCP的防火墙规则和IDS/IPS系统的检测,使得扫描更加隐蔽。
UDP原理:UDP是一种基于无连接的传输层协议,它没有像TCP那样的确认机制,因此适用于实时应用程序和对可靠性要求不高的应用。
UDP扫描技术则利用了UDP协议的特性进行主机和端口扫描。
UDP扫描技术主要分为三种类型:1.UDP扫描:UDP扫描技术通过向目标主机发送UDP数据包,并根据接收到的响应来判断目标主机的端口开放状态。
如果目标主机返回ICMP端口不可达(Destination Unreachable)错误消息,则表示该端口关闭;如果目标主机返回UDP协议没有响应(UDP Packet filtered)错误消息,则表示该端口可能被过滤,防火墙阻止了UDP数据包的传输;如果目标主机返回UDP数据包,说明该端口开放。
2. UDP圣诞树扫描(Christmas Tree Scan):圣诞树扫描技术发送一个设置了TCP标志位(FIN、URG、PSH等)的数据包到目标主机的UDP端口。
如果目标主机返回ICMP端口不可达错误消息,则表示该端口关闭;如果目标主机没有返回错误消息,则表示该端口开放。
计算机网络网络端口扫描攻击在计算机通信中,一台计算机要与另一台计算机建立TCP或UDP连接,必须首先发送一个请求报文(SYN),根据接收端端口是否开放将回应不同的应答。
如果TCP端口开放,则回应发送方一个ACK报文,并建立TCP连接控制结构;若TCP未开放,则回应发送方一个TCP RST报文,告知发送方TCP端口未开放。
UDP连接的也是同样的道理。
端口扫描就是基于这一原理,攻击者利用Socket编程或其它技术发送合适的报文与目标主机的某些端口建立TCP连接、进行传输协议的验证等工作,从而获取目标主机的端口状态、提供的服务及提供的服务中是否含有漏洞缺陷等情况。
端口扫描攻击常用的扫描方式有TCP connect()扫描、SYN扫描、FIN扫描、IP地址段扫描等。
●TCP connect()扫描它是最基本的TCP扫描。
操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机端口进行连接。
只要端口处于侦听状态,就能连接成功。
否则,就不能成功。
系统中的任何用户都可以使用这个调用,速度也很快。
但它易被发现并被过滤掉。
●SYN扫描扫描主机自动向目标计算机的指定端口发送SYN数据段,表示请求建立连接。
如果目标计算机回应一个SYN ACK报文,则说明该端口是活动的。
随后,扫描主机传送一个RST给目标主机拒绝建立TCP连接,从而导致三次握手的失败;如果目标计算机回应的是RST报文,则表明该端口未开启。
●FIN扫描FIN扫描是指通过发送FIN来判断目标计算机的指定端口是否活动。
如发送一个FIN报文到一个关闭的端口时,该报文会被丢弃掉,并返回一个RST报文。
但是,如果当FIN报文到达一个活动的端口时,该报文只是简单的丢掉,不会返回任何回应。
这种扫描方式没有涉及任何TCP连接部分,因此,可以称之为秘密扫描。
●IP地址段扫描它是利用路由表来进行扫描,一般可以通过使用第三方软件来实现,在其中设定IP地址范围,扫描存活的主机。
Nmap是一个开源的网络扫描和安全审计工具,可用于网络探测、安全扫描、网络流量分析等。
其扫描原理基于ICMP、TCP/UDP协议的端口扫描,通过发送探测包到目标主机,然后根据返回的响应来判断目标主机是否在线、某个端口是否开放等信息。
Nmap的默认扫描方式是TCP SYN扫描,也称为半开放扫描,该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。
Nmap的用法包括主机发现和端口扫描。
主机发现是通过发送ICMP echo请求、TCP SYN包、TCP ACK包、ICMP timestamp请求等数据包到目标主机,只要收到其中一个包的回复,就表示目标主机存活。
端口扫描是通过发送TCP SYN包到目标主机的指定端口,然后根据返回的响应来判断该端口的状态。
在使用Nmap时,可以通过命令行参数来指定扫描类型、目标主机、扫描端口等参数。
例如,使用以下命令可以进行TCP SYN扫描,扫描目标主机的1-1024端口:
```
nmap -sS -p 1-1024 target_ip
```
其中,`-sS`表示使用TCP SYN扫描,`-p`表示指定扫描的端口范围,`target_ip`表示要扫描的目标主机的IP地址。
常见的端口扫描类型及原理端口扫描是网络安全中常用的一种技术手段,通过探测目标主机开放的网络端口来获取目标系统的信息,并用于评估网络的安全性。
在端口扫描中,攻击者发送特殊格式的网络数据包到目标主机的不同端口,根据不同的回应结果来判断端口的开放状况,从而获取端口和服务信息,以便进行下一步的攻击。
下面介绍几种常见的端口扫描类型及其原理:1.TCP扫描TCP扫描是最常见的一种端口扫描类型。
其原理是通过发送一个TCPSYN数据包到目标主机的指定端口,根据目标主机返回的ACK或者RST数据包判断该端口是否开放。
如果返回RST数据包,说明该端口是关闭的;如果返回ACK或者没有任何回应,则说明该端口是开放的。
因此,TCP扫描的主要原理就是通过分析TCP协议栈产生的不同响应状态来判断端口的开放状况。
2.UDP扫描UDP扫描是通过向目标主机的指定端口发送UDP数据包,根据目标主机返回的响应来判断端口是否开放。
由于UDP协议的特性,该扫描类型相对于TCP扫描更加难以检测。
如果目标主机返回一个ICMP端口不可达错误,说明该端口是关闭的;如果没有任何响应,则说明该端口是开放的。
UDP扫描的原理就是通过分析UDP数据包产生的不同响应状态来判断端口的开放状况。
3.SYN扫描(半开放扫描)SYN扫描也是一种常用的端口扫描类型,也称为半开放扫描。
其原理是通过发送一个TCPSYN数据包到目标主机的指定端口,根据目标主机返回的ACK或者RST数据包判断该端口是否开放。
与TCP扫描的不同之处在于,SYN扫描中攻击者不会发送接受或者完成的ACK数据包,而是即使在接收到目标主机的ACK数据包之后返回一个RST数据包,以便在目标主机的日志中没有留下任何跟踪痕迹。
4.NULL扫描NULL扫描是一种探测目标主机端口开放情况的方法,其原理是发送一个无任何标志位的TCP数据包到目标主机的指定端口,根据目标主机返回的响应判断该端口是否开放。
如果目标主机返回一个RST数据包,说明该端口是关闭的;如果没有任何响应,则说明该端口是开放的。
简述端口扫描原理
端口扫描的原理是通过向目标主机发送探测数据包(主要针对TCP/IP服务端口),并通过探测数据包反馈回来的数据判断服务端口的状态,这些信息会被记录下来并用于判断端口是否关闭。
如利用调用套接字函数connect()可以实现与目标主机的链接并形成完整的“三次握手”,如果端口处于侦听状态则返回connect()函数,也就意味着端口开放;反之则意味着无法提供服务。
由于大部分的网访问都是基于TCP传输协议和UDP数据报协议完成的,这也就给攻击者提供了主要的扫描对象。
以TCPhP协议为例,一共有四个协议层构成,分别为:应用层、传输层、网际层和接口层。
大部分的网络服务(services)也是通过TCP端口来识别的,这就进一步收缩了可检测的范围。
如果一个攻击者想要了解目标主机的服务状态和内容,只需要从反馈的端口号进行分析便可一日了然。
如:检测到远程登录协议的端口号23,通过窃取登录账号口令,入侵者便可以通过漏洞建立远程通信连接。
端口扫描原理端口扫描原理是通过向目标主机的各个端口发送连接请求,然后根据目标主机的响应情况来判断端口的开放状况。
1. TCP连接扫描:通过发送TCP连接请求来判断目标主机上的端口是否开放。
扫描者向目标主机的每个端口发送SYN(同步)包,目标主机若收到该包并返回SYN-ACK(同步-确认)包,则端口开放;若目标主机返回RST(复位)包,则端口关闭;若目标主机无响应或返回ICMP不可达消息,则端口被过滤。
此方法常用于全面的端口扫描。
2. UDP扫描:UDP扫描用于检测目标主机上开放的UDP端口。
扫描者向目标主机的特定UDP端口发送空的UDP数据包(UDP无连接),若目标主机返回ICMP不可达消息,则端口关闭;若目标主机返回UDP响应,则端口开放。
此方法用于检测不常见的、容易被忽视的UDP服务。
3. SYN Stealth扫描(半开放扫描):这是一种通过在建立TCP连接过程中不完全打开连接,来探测目标主机端口是否开放的扫描技术。
扫描者向目标主机的每个端口发送一个SYN包,若目标主机返回SYN-ACK包,则端口开放;若目标主机返回RST包,则端口关闭;若目标主机无响应或返回ICMP不可达消息,则端口被过滤。
这种扫描技术能够减少在目标主机的日志中留下扫描痕迹。
4. NULL、FIN、XMAS扫描:这三种扫描方法利用了某些操作系统在处理异常包时会有不同的响应。
NULL扫描发送不含任何标志位的TCP包,若目标主机返回RST包,则端口关闭;FIN扫描发送只含FIN标志位的TCP包,若目标主机返回RST包,则端口关闭;XMAS扫描发送FIN、URG、PSH标志位都被设置的TCP包,若目标主机返回RST包,则端口关闭。
这些扫描方法适用于检测目标主机上是否运行着对异常包有特殊响应的服务或操作系统。
端口扫描利用了TCP/IP协议栈上的协议和标志位,来向目标主机发送不同类型的包以判断端口的开放状态。
扫描者可以根据目标主机的响应情况快速确定哪些端口可能存在潜在的漏洞或服务。
端口扫描原理绝大多数应用程序运行在TCP或者UDP协议之上,这些协议是众多应用程序使用的传输机制,端口扫描是通过扫描主机确定哪一些TCP和UDP端口可以访问的过程。
端口扫描常见的几种类型:TCP Connect()扫描SYN扫描NULL扫描ACK扫描Xmas-TreeDumb扫描下面是TCP数据包的6个标志位:URG:紧急数据包ACK:确认(应答数据包)PSH:将数据强制压入缓冲区RST:连接复位(断开连接)SYN:连接请求FIN:TCP连接结束TCP建立连接的三次握手的过程:1. SYN---->A:请求方 2. <---SYN/ACK B:服务方3.ACK----->下面介绍常见的扫描类型1.TCP Connect ()扫描TCP Connect ()扫描试图与每个TCP端口进行三次握手通信,但是也最容易被防火墙或者入侵检测系统测到。
尽量使用其他的扫描类型。
1 SYN----> 1 SYN----><---SYN/ACK 2 <---RST 23 ACK----->端口开放端口关闭2.SYN扫描比TCP Connect ()扫描隐蔽一些,SYN扫描仅发送初始的SYN数据包给目标主机。
1 SYN----> 1 SYN----><---SYN/ACK 2 <---RST 2端口开放端口关闭3.NULL扫描(反向扫描)NULL扫描将一个没有标志位的数据包发送给TCP端口,根据RFC 793的要求1 NULL----> 1 NULL----><---RST 2端口开放端口关闭Windows主机不遵从RFC 793,Unix遵从RFC 793比前两种更隐蔽。
4.FIN扫描(反向扫描)在FIN扫描中,一个FIN的数据包被发送给目标主机的每个端口。
根据RFC 793的要求1 NULL----> 1 NULL----><---RST 2端口开放端口关闭5. ACK 扫描ACK 扫描通常用来穿过防火墙的规则集,有助于确定一个防火墙的功能比较完善或者仅是一个简单的包过滤程序,ACK扫描使用响应包来发现防火墙的配置信息。
实验二十五TCP 与UDP 端口扫描【实验目的】1. 了解常用的TCP、UDP端口扫描的原理及其各种手段;2. 增强网络安全意识。
【实验学时】2学时【实验环境】在本实验中需要1 台交换机、1 台协议分析仪、2 台实验PC,需要所有的主机能够访问互联网,使用协议分析仪采集数据包,对采集到的数据进行分析。
将所有的设备都接入到交换机上,并在交换机上配置端口映像功能,具体IP 分配如下表:表7-3 设备IP地址分配表设备连接如下图所示:图7-41 实验拓扑图【实验内容】1、学习TCP和UDP端口扫描的原理;2、实现一次端口扫描;3、了解怎么防范基于端口扫描的攻击。
【实验流程】图7-42 实验流程图【实验原理】端口的基础知识:为了了解扫描的工作原理,首先简单介绍一下端口的基本知识。
端口是TCP协议中所定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。
套接字采用[IP地址:端口号]的形式来定义,通过套接字中不同的端口号可以区别同一台计算机上开启的不同TCP 和UDP 连接进程。
对于两台计算机间的任一个TCP 连接,一台计算机的一个[IP 地址:端口]套接字会和另一台计算机的一个[IP 地址:端口]套接字相对应,彼此标识着源端、目的端上数据包传输的源进程和目标进程。
这样网络上传输的数据包就可以由套接字中的IP 地址和端口号找到需要传输的主机和连接进程了。
由此可见,端口和服务进程一一对应,通过扫描开放的端口,就可以判断出计算机中正在运行的服务进程。
TCP/UDP 的端口号在0~65535 范围之内,其中1024 以下的端口保留给常用的网络服务。
例如:21 端口为FTP 服务,23 端口为TELNET 服务,25 端口为SMTP 服务,80 端口为HTTP服务,110 端口为POP3服务等。
TCP报文头格式:要进行TCP/UDP端口扫描,必须对TCP和UDP 的报文进行全面的了解,下图是TCP的报文格式,图7-43 TCP报文源端口:这是源设备发出TCP段的进程的16比特端口号。
目的端口:这是目的设备上作为本报文最终希望的接收方进程的16 比特端口号。
序列号:在正常传输情况下,这是本段数据第一个字节的序列号,在连接请求SYN 报文中,该字段携带了源TCP 的ISN,数据第一个字节的序列号将被指定为紧跟该字段内容的下一个编号。
确认序列号:若ACK 比特置位,说明本段充当一个确认,该字段含有源正在期待的目的地将要发送下一个序列号。
数据偏移:该项详细说明了TCP 首部含有多少个32 比特字的数据,换句话说,该值乘以4 就等于首部字节数,而后者必须总是 4 的倍数,该字段称为数据偏移是因为它指明数据起点距TCP段开头偏移了多少个32比特。
保留:该字段留给将来使用,发送时置0。
URG:紧急指针(urgent pointer)有效,置为1 时,说明数据段的优先数据传输特性已经被激活,且紧急指针字段有效。
ACK:确认序号有效,置为1 时,说明数据段携带一个确认,确认编号字段值有效且携带着期望从数据段目的地收到的下一个序列号。
PSH:接收方应该尽快将这个报文段交给应用层,数据段发送方正在使用TCP 推特性,请求立即将段中数据推向接收设备上的应用程序。
RST:重建连接计算机网络协议原理实验教程SYN:同步序号用来发起一个连接。
序列号字段含有发送方的ISN。
FIN:发送端正在请求连接关闭。
窗口:该字段指出本端的发送方愿意从接收方处一次接受多少个8 比特数据。
它通常等于分配给该条连接用以接受数据缓冲区的当前长度。
校验和:16 比特检验和紧急指针:该字段与URG 控制比特联合用于优先数据传输,该字段包含了紧急数据最后一个字节的序列号。
扫描原理:网络扫描,是对计算机主机或者其它网络设备进行安全性检测,以找出安全隐患和系统漏洞。
但是,网络扫描软件事实上也是一把双刃剑:入侵者利用它来寻找对系统发起攻击的途径,而系统管理员则利用它来有效防范黑客入侵。
通过网络扫描,扫描者能够发现远端网络或主机的配置信息、TCP/UDP 端口的分配、提供的网络服务、服务器的具体信息等。
网络扫描可以划分为ping 扫描、端口扫描、操作系统探测、弱点探测、防火墙规则探测五种主要技术,运用的原理各不相同。
端口扫描是探测主机所开放的端口。
因为端口扫描通常只做最简单的端口联通性测试,不进行更进一步的数据分析,因此比较适合进行大范围的扫描:对指定IP 地址进行某个端口值段的扫描;或者指定端口值对某个IP 地址段进行扫描。
然后基于端口扫描的结果,进行操作系统探测和弱点扫描。
端口扫描大体上分为TCP 扫描和UDP扫描两类。
TCP扫描:TCP 建立连接分三步,也称三次握手:1、请求端发送一个SYN 包,指明客户打算连接的目的端口。
2、观察目的端返回的包:返回SYN/ACK包,说明目的端口处于侦听状态;返回RST/ACK包,说明目的端口没有侦听,连接会重置。
3、若返回SYN/ACK包,则请求端向目的端口发送ACK包完成3 次握手,连接建立。
TCP全连接全连接扫描,就是和目的主机建立一个TCP 连接,而目的主机的log 文件中会生成记录。
全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP反向ident 扫描等。
其中TCP connect()扫描的实现原理如下所述:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。
连接由系统调用connect 开始。
如果端口开放,则连接将建立成功;否则,若返回-1 则表示端口关闭。
建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。
如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。
TCP 连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。
另一个好处是速度快。
如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。
使用非阻塞I/O 允许用户设置一个低的时间以用尽周期,并同时观察多个套接字。
但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。
目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。
半连接扫描半连接扫描,也称为TCP SYN 扫描,则违反了TCP三次握手的规则,此扫描发送SYN包开始三次握手并等待目的主机的响应。
如果收到SYN/ACK包,则说明端口处于侦听状态,扫描者马上发送RST 包,中止连接。
因为半连接扫描并没有建立连接,目的主机的log文件中可能不会记录此扫描。
现有的半连接扫描有TCPSYN 扫描和IP ID头dumb扫描等。
SYN 扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。
缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP 包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。
TCP隐蔽扫描。
RFC793 指出,处于关闭状态的端口,在收到探测包时会响应RST 包,而处于侦听状态的端口则忽略此探测包。
根据发送探测包的不同,TCP隐蔽扫描又分为SYN/ACK扫描、FIN扫描、XMAS(圣诞树)扫描和NULL 扫描四种。
SYN/ACK 扫描和FIN 扫描:这两类扫描均绕过TCP三次握手过程的第一步,直接给目的端口发送SYN/ACK 包或者FIN 包。
因为TCP 是有连接的,它知道在第一步中应该发送的SYN 包没有送出,从而认为此连接过程出错,发送一个RST 包以拆除连接。
而这正是我们想要的——只要有响应,就说明目标系统存在,且目标端口处于关闭状态。
此扫描方式的优点比前两种都要隐秘,不容易被发现。
该方案有两个缺点:首先,要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论;其次,一些系统并没有遵循规定,最典型的就是Microsoft 公司所开发的操作系统。
这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个RST 连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效的。
XMAS扫描和NULL扫描:这两类扫描正好相反,XMAS 扫描设置TCP包中所有标志位(URG,ACK,RST,PSH,SYN,FIN),根据RFC793,对于所有关闭的端口,目标系统应该返回RST 标志。
根据这一原理就可以判断哪些端口是开放的,而NULL 扫描则关闭TCP包中的所有标志位,这种方法与上一方法原理是一样,只是发送的数据包不一样而已。
本扫描方案中,是向目标端口发送一个不包含任何标志的分组。
根据RFC793,对于所有关闭的端口,目标系统也应该返回RST 标志。
UDP端口扫描UDP协议是数据包协议,为了要发现正在服务的UDP端口,通常的扫描方式是构造一个内容为空的UDP数据包送往目的端口。
若目的端口上有服务正在等待,则目的端口返回错误的消息;若目的端口处于关闭状态,则目的主机返回ICMP 端口不可达消息。
如果目标端口是以一个“ICMP port Unreachable”(ICMP 端口不可到达)消息来作为响应的,那么该端口是关闭的。
相反,如果没有收到这个消息那就可以推断该端口打开着。
还有就是一些特殊的UDP回馈,比如SQL Server 服务器,对其1434号端口发送“x02”或者“x03”就能够探测得到其连接端口。
由于UDP 是无连接的不可靠协议,因此这种技巧的准确性很大程度上取决于与网络及系统资源的使用率相关的多个因素。
另外,当试图扫计算机网络协议原理实验教程描一个大量应用分组过滤功能的设备时,UDP 扫描将是一个非常缓慢的过程。
如果要在互联网上执行UDP扫描,那么结果就是不可靠的。
一般而言,扫描者并不是孤立地、单纯地使用某种扫描技术,而是综合地应用一系列的扫描方法。
而如果大范围地进行某种扫描,反复高速地发出特定的连接请求,所造成的结果就是目标主机上存在大量等待的TCP 连接,目标网络中充斥着许多无用的数据包,最终导致网络拥塞,主机无法正常使用,这正是DOS 的表现。
因此若要防范网络扫描要做到以下三点:(1)、在防火墙及过滤设备上采用严格的过滤规则,禁止扫描的数据包进入系统。
(2)、主机系统除了必要的网络服务外,禁止其它的网络应用程序。
(3)、对于只对内开放的网络服务,更改其提供服务的端口,此外,网络扫描时发送的数据或多或少都会含有扫描者自身相关信息,从而也可以抓取扫描时的数据包,对扫描者进行反向追踪,这也是一个值得研究的方向。
【实验步骤】步骤一:设定实验环境在PCA 配置IP 地址为172.16.1.11/24,并在PCA 上搭建一个WEB 服务器,并将服务启动起来,如下图所示:图7-44 搭建WEB服务在PCB配置IP地址为172.16.1.4/24,并在PCB 上安装RG-PATS网络协议分析仪客户端软件,在PCB上模拟攻击者进行扫描。