目前主要端口扫描技术
SYN端口扫描

typedef struct _tcphdr //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
{
IP_HEADER *iphdr;
TCP_HEADER *tcphdr;
unsigned short iphdrlen;
iphdr = (IP_HEADER *)recvbuf;
iphdrlen = sizeof(unsigned long) * (iphdr->h_lenver & 0xf);
/*
经典描器(全TCP连接)和SYN(半连接)扫描器
全TCP连接
全TCP连接是长期以来TCP端口扫描的基础。
扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。
连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,
unsigned char proto; //8位协议 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
否则,返回的是RST/ACK。
这种方法比第一种更具隐蔽性,可能不会在目标系统中留下扫描痕迹。
3. TCP FIN scan:这种方法向目标端口发送一个FIN分组。
端口扫描原理

端口扫描原理端口扫描是网络安全领域中常见的一种技术手段,它可以帮助管理员发现网络中存在的安全隐患,及时采取措施加以修复。
端口扫描的原理是通过向目标主机发送特定的网络数据包,然后根据目标主机的响应来判断其端口的开放情况,从而实现对目标主机的端口状态进行探测。
本文将介绍端口扫描的原理及常见的扫描技术。
首先,端口扫描的原理是基于TCP/IP协议的。
在TCP/IP协议中,每个应用程序都会使用特定的端口与其他应用程序通信。
端口号的范围是0~65535,其中0~1023为系统端口,1024~49151为注册端口,49152~65535为动态/私有端口。
通过向目标主机发送TCP或UDP数据包,可以探测目标主机上的端口是否开放。
如果目标主机对特定端口的数据包做出响应,就说明该端口是开放的;如果没有响应,就说明该端口是关闭的。
其次,端口扫描技术主要包括全连接扫描、半开放扫描、SYN扫描、FIN扫描、XMAS扫描等。
全连接扫描是最常见的一种扫描技术,它通过向目标主机的每个端口发送TCP连接请求来探测端口的开放情况。
半开放扫描则是通过向目标主机发送SYN数据包,然后根据目标主机的响应来判断端口的状态。
SYN扫描是一种较为隐蔽的扫描技术,它通过发送SYN数据包来判断端口是否开放。
FIN扫描和XMAS扫描则是通过发送特殊的TCP数据包来探测端口状态,它们通常用于规避防火墙和入侵检测系统的检测。
此外,端口扫描还可以根据扫描的目的分为黑盒扫描和白盒扫描。
黑盒扫描是指在未经授权的情况下对目标主机进行扫描,通常用于渗透测试和攻击行为;而白盒扫描是在经过授权的情况下对目标主机进行扫描,通常用于安全审计和漏洞扫描。
综上所述,端口扫描是一种常见的网络安全技术,它通过向目标主机发送特定的网络数据包来探测端口的开放情况,从而帮助管理员发现网络中存在的安全隐患。
了解端口扫描的原理及常见的扫描技术对于提高网络安全水平具有重要意义。
在进行端口扫描时,需要遵守相关法律法规,尊重他人的网络安全和隐私,切勿进行未经授权的扫描行为。
端口扫描原理范文

端口扫描原理范文端口扫描是一种安全测试技术,用于确定目标主机上开放的网络端口。
该技术通过尝试与目标主机的各个端口建立连接来检测哪些端口处于打开状态,从而揭示目标系统的服务和网络设备。
一、端口扫描方法常用的端口扫描方法主要包括以下几种:1.TCP连接扫描:此方法是基于TCP三次握手协议的,扫描器通过向目标主机的每个端口发送SYN(同步)包,目标主机返回一个SYN/ACK(同步/确认)数据包表示该端口是开放的,扫描器再发送RST(复位)数据包来关闭连接。
如果目标主机返回的是RST/ACK(复位/确认)数据包,则表示该端口是关闭的。
2.TCPACK扫描:此方法与TCP连接扫描类似,不同之处在于扫描器发送ACK(确认)数据包,如果目标主机返回RST/ACK数据包,则表示该端口是关闭的,如果没有返回数据包,则表示该端口是开放的。
3.TCPSYN扫描:此方法比较隐蔽,扫描器发送SYN数据包,如果目标主机返回RST数据包,则表示该端口是关闭的,如果没有返回数据包,则表示该端口是开放的。
4.UDP扫描:此方法用于扫描目标主机上开放的UDP端口。
可能被忽略或被误报的情况较多,因为UDP通信是无连接的,很难确定是否开放或关闭。
二、扫描技术端口扫描技术主要有以下几种:1.全连接扫描:该扫描技术是通过完整的三次握手协议来检查端口是否开放。
具有较低的噪声水平,但效率相对较低。
2.半开放扫描(SYN扫描):该扫描技术是发送SYN数据包,目标主机返回SYN/ACK数据包表示端口开放,然后扫描器发送RST数据包关闭连接,以此来检测端口的开放状态。
具有较高的效率,不会建立完整的连接,但可能被入侵检测系统(IDS)和防火墙检测到。
3.空扫描:该扫描技术是通过发送一个空数据包来检测端口开放状态。
如果目标主机返回RST/ACK数据包,则表示该端口是关闭的,如果没有返回数据包,则表示该端口是开放的。
这种扫描技术隐蔽性较高,但可能被IDS和防火墙检测到。
常见的端口扫描类型及原理

常见的端口扫描类型及原理常见的扫描类型有以下几种:秘密扫描秘密扫描是一种不被审计工具所检测的扫描技术。
它通常用于在通过普通的防火墙或路由器的筛选(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()调用,可以通过同时打开多个套接字,从而加速扫描。
缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。
第10章 端口扫描技术与漏洞扫描技术

清华大学出版社出版
曾湘黔主编: 网络安全技术
10.1.2 半连接(SYN)扫描
若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指 定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了 本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描, 也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描 等。 SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接 的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要 构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户 或者授权用户访问专门的系统调用。} 优点:不会在目标计算机上留下纪录。 缺点:扫描程序必须要有root权限才能建立自己的SYN数据包
曾湘黔主编: 网络安全技术
10.1端口扫描技术
端口扫描技术的原理: 端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并 记录目标主机的响应。通过分析响应来判断服务端口是打开 还是关闭,就可以得知端口提供的服务或信息。端口扫描也 可以通过捕获本地主机或服务器的流入流出IP数据包来监视 本地主机的运行情况,它仅能对接收到的数据进行分析,帮 助我们发现目标主机的某些内在的弱点,而不会提供进入一 个系统的详细步骤。
清华大学出版社出版
曾湘黔主编: 网络安全技术
10.1பைடு நூலகம்3 TCP FIN扫描
在TCP报文结构中,FIN段负责表示发送端已经没有数据 要传输了,希望释放连接. 我们发送一个FIN=1的报文到一个 关闭的端口时,该报文会被丢掉,并返回一个RST报文.但是, 当FIN报文到一个活动的端口时,该报文只是被简单的丢掉, 而不回应任何信息. 优点:FIN数据包可以不惹任何麻烦的通过。 这种扫描 方法的好处就是完全不建立TCP连接,从而大大减少了被目 标主机记录下来的可能性,安全性较高. 缺点:这种方法和系统的实现有一定的关系,有些系统 不论是打开的或关闭的端口对FIN数据包都要给以回复,这种 情况下该方法就不实用了。
网络安全原理与应用:端口扫描简介

第4章 网络攻防技术
11
一、端口扫描基本原理
3、隐蔽扫描 TCP标志位FIN设为1,其余设为0
端口关闭 端口开放 端口过滤
FIN RST FIN No response FIN
ICMP ERROR
8000 (关闭)
80(开放)
端口扫描简介
二、防范端口扫描
端口扫描是网络攻击的前奏,需要重视 关闭不必要的端口和服务,减少暴露面 利用NAT等技术隐藏IP地址和拓扑 设置防火墙安全策略,拦截端口扫描数据 使用防火墙和入侵检测记录端口扫描行为
(3)攻击者发送TCP第三 次握手RST,关闭连接
TCP端口开放
端口扫描简介
一、端口扫描基本原理
2、半连接扫描
(1)攻击者发送TCP第一 次握手SYN
第4章 网络攻防技术
8
(2)服务器发送端口关闭, 重置连接的RST
TCP端口关闭
端口扫描简介
一、端口扫描基本原理
2、半连接扫描
第4章 网络攻防技术
1、全连接扫描
全连接扫描主要是使用完整的TCP三次握手来进行,通过收到的数据包来判断对方端口是否开放。
(1)攻击者发送TCP第一 次握手SYN
(3)攻击者发送TCP第三 次握手ACK
TCP端口开放
(2)服务器发送TCP第二 次握手SYN+ACK
端口扫描简介
一、端口扫描基本原理
1、全连接扫描
(1)攻击者发送TCP第一 次握手SYN
第4章 网络攻防技术
5
Hale Waihona Puke (2)服务器发送端口关闭, 重置连接的RST
TCP端口关闭
端口扫描简介
一、端口扫描基本原理
1、全连接扫描
常见的端口扫描类型及原理
常见的端口扫描类型及原理端口扫描是网络安全中常用的一种技术手段,通过探测目标主机开放的网络端口来获取目标系统的信息,并用于评估网络的安全性。
在端口扫描中,攻击者发送特殊格式的网络数据包到目标主机的不同端口,根据不同的回应结果来判断端口的开放状况,从而获取端口和服务信息,以便进行下一步的攻击。
下面介绍几种常见的端口扫描类型及其原理: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不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET服务和HTTPD服务等。
二、常用端口扫描技术:1、TCP connect()扫描:这是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么connect()就能成功。
否则,这个端口是不能用的,即没有提供服务。
这个技术的一个最大的优点是,你不需要任何权限。
系统中的任何用户都有权利使用这个调用。
另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套接字来加速扫描。
使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。
但这种方法的缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉。
目标计算机的logs文件会显示一连串的连接和连接出错消息,并且能很快使它关闭。
2、TCP SYN扫描:这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。
扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。
一个SYN|ACK的返回信息表示端口处于侦听状态:返回RST表示端口没有处于侦听态。
如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。
这种扫描技术的优点在于一般不会在目标计算机上留下记录,但这种方法的缺点是必须要有root权限才能建立自己的SYN数据包。
网络扫描技术有哪些
三. 常见扫描主要技术1、存活性扫描:是指大规模去评估一个较大网络的存活状态。
例如跨地域、跨系统的大型企业。
但是被扫描主机可能会有一些欺骗性措施,例如使用防火墙阻塞ICMP数据包,可能会逃过存活性扫描的判定。
2、端口扫描:针对主机判断端口开放和关闭情况,不管其是不是存活。
端口扫描也成为存活性扫描的一个有益补充,如果主机存活,必然要提供相应的状态,因此无法隐藏其存活情况。
3、服务识别:通过端口扫描的结果,可以判断出主机提供的服务及其版本。
4、操作系统识别:利用服务的识别,可以判断出操作系统的类型及其版本。
3.1 主机存活扫描技术主机扫描的目的是确定在目标网络上的主机是否可达。
这是信息收集的初级阶段,其效果直接影响到后续的扫描。
Ping就是最原始的主机存活扫描技术,利用icmp的echo字段,发出的请求如果收到回应的话代表主机存活。
常用的传统扫描手段有:1. ICMP Echo扫描精度相对较高。
通过简单地向目标主机发送ICMP Echo Request 数据包,并等待回复的ICMP Echo Reply 包,如Ping。
2. ICMP Sweep 扫描:sweep这个词的动作很像机枪扫射,icmp进行扫射式的扫描,就是并发性扫描,使用ICMP Echo Request一次探测多个目标主机。
通常这种探测包会并行发送,以提高探测效率,适用于大范围的评估。
3. Broadcast ICMP扫描:广播型icmp扫描,利用了一些主机在icmp实现上的差异,设置ICMP请求包的目标地址为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机,子网内所有存活主机都会给以回应。
但这种情况只适合于UNIX/Linux系统。
4. Non-Echo ICMP扫描:在ICMP协议中不光光只有ICMP ECHO的ICMP 查询信息类型,在ICMP扫描技术中也用到Non-ECHO ICMP技术(不仅仅能探测主机,也可以探测网络设备如路由)。
端口扫描技术(NMAP中文使用手册)
端口扫描技术/xiaojiwen整理 2012-4-10作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) 用于手头的任务。
当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候,他总是在他的工具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它。
端口扫描的艺术和这个类似。
专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的任务。
另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题。
既然Nmap是免费的,掌握端口扫描的唯一障碍就是知识。
这当然是汽车世界所不能比的,在那里,可能需要高超的技巧才能确定您需要一个压杆弹簧压缩机,接着您还得为它付数千美金。
大部分扫描类型只对特权用户可用。
这是因为他们发送接收原始报文,这在Unix 系统需要root权限。
在Windows上推荐使用administrator账户,但是当WinPcap 已经被加载到操作系统时,非特权用户也可以正常使用Nmap。
当Namp在1997年发布时,需要root权限是一个严重的局限,因为很多用户只有共享的shell 账户。
现在,世界变了,计算机便宜了,更多人拥有互联网连接,桌面UNIX系统 (包括Linux和MAC OS X)很普遍了。
Windows版本的Nmap现在也有了,这使它可以运行在更多的桌面上。
由于所有这些原因,用户不再需要用有限的共享shell账户运行Nmap。
这是很幸运的,因为特权选项让Nmap强大得多也灵活得多。
虽然Nmap努力产生正确的结果,但请记住所有结果都是基于目标机器(或者它们前面的防火墙)返回的报文的。
这些主机也许是不值得信任的,它们可能响应以迷惑或误导Nmap的报文。
更普遍的是非RFC兼容的主机以不正确的方式响应Nmap探测。
FIN,Null和Xmas扫描特别容易遇到这个问题。
这些是特定扫描类型的问题,因此我们在个别扫描类型里讨论它们。
这一节讨论Nmap支持的大约十几种扫描技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目前主要端口扫描技术
目前主要的端口扫描技术有以下几种。
1.TCP connect Scan(TCP连接扫描)
这种方法也称之为“TCP全连接扫描”。
它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。
它直接连到目标端口并完成一个完整的3次握手过程(SYN、SYN/ACK和ACK)。
操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。
如果端口处于侦听状态,那么“connect()”函数就能成功。
否则,这个端口是不能用的,即没有提供服务。
TCP连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。
另一个好处是速度快。
如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。
使用非阻塞I/O允许用户设置一个低的时间以用尽周期,并同时观察多个套接字。
但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。
目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。
2.TCP SYN Scan(TCP同步序列号扫描)
若端口扫描没有完成一个完整的TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。
SYN扫描,通过本机的一个端口向对方指定的端口,发送一个TCP的SYN 连接建立请求数据报,然后开始等待对方的应答。
如果应答数据报中设置了SYN 位和ACK位,那么这个端口是开放的;如果应答数据报是一个RST连接复位数据报,则对方的端口是关闭的。
使用这种方法不需要完成Connect系统调用所封装的建立连接的整个过程,而只是完成了其中有效的部分就可以达到端口扫描的目的。
此种扫描方式的优点是不容易被发现,扫描速度也比较快。
同时通过对MAC地址的判断,可以对一些路由器进行端口扫描,缺点是需要系统管理员的权限,不适合使用多线程技术。
因为在实现过程中需要自己完成对应答数据报的查找、分析,使用多线程容易发生数据报的串位现象,也就是原来应该这个线程接收的数据报被另一个线程接收,接收后,这个数据报就会被丢弃,而等待线程只好在超时之后再发送一个SYN数据报,等待应答。
这样,所用的时间反而会增加。
3.TCP FIN Scan(TCP结束标志扫描)
这种扫描方式不依赖于TCP的3次握手过程,而是TCP连接的“FIN”(结束)位标志。
原理在于TCP连接结束时,会向TCP端口发送一个设置了FIN位的连接终止数据报,关闭的端口会回应一个设置了RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。
可以根据是否收到RST数据报来判断对方的端口是否开放。
此扫描方式的优点比前两种都要隐秘,不容易被发现。
该方案有两个缺点:首先,要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论;其次,一些系统并没有遵循规定,最典型的就是Microsoft公司所开发的操作系统。
这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个RST连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效
的。
4.IP Scan(IP协议扫描)
这种方法并不是直接发送TCP协议探测数据包,而是将数据包分成两个较小的IP协议段。
这样就将一个TCP协议头分成好几个数据包,从而过滤器就很难探测到。
但必须小心,一些程序在处理这些小数据包时会有些麻烦。
5.TCP Xmas Tree Scan
这种方法向目标端口发送一个含有FIN(结束)、URG(紧急)和PUSH(弹出)标志的分组。
根据RFC793,对于所有关闭的端口,目标系统应该返回RST 标志。
根据这一原理就可以判断哪些端口是开放的。
6.TCP Null Scan
这种方法与上一方法原理是一样,只是发送的数据包不一样而已。
本扫描方案中,是向目标端口发送一个不包含任何标志的分组。
根据RFC793,对于所有关闭的端口,目标系统也应该返回RST标志。
7.UDP Scan(UDP协议扫描)
在UDP扫描中,是往目标端口发送一个UDP分组。
如果目标端口是以一个“ICMP port Unreachable”(ICMP端口不可到达)消息来作为响应的,那么该端口是关闭的。
相反,如果没有收到这个消息那就可以推断该端口打开着。
还有就是一些特殊的UDP回馈,比如SQL Server服务器,对其1434号端口发送“x02”或者“x03”就能够探测得到其连接端口。
由于UDP是无连接的不可靠协议,因此这种技巧的准确性很大程度上取决于与网络及系统资源的使用率相关的多个因素。
另外,当试图扫描一个大量应用分组过滤功能的设备时,UDP扫描将是一个非常缓慢的过程。
如果要在互联网上执行UDP扫描,那么结果就是不可靠的。
8.ICMP echo扫描
其实这并不能算是真正意义上的扫描。
但有时的确可以通过支持Ping命令,判断在一个网络上主机是否开机。
Ping是最常用的,也是最简单的探测手段,用来判断目标是否活动。
实际上Ping是向目标发送一个回显(Type=8)的ICMP 数据包,当主机得到请求后,再返回一个回显(Type=0)的数据包。
而且Ping 程序一般是直接实现在系统内核中的,而不是一个用户进程,更加不易被发现。
9.高级ICMP扫描技术
Ping是利用ICMP协议实现的,高级的ICMP扫描技术主要利用ICMP协议最基本的用途——报错。
根据网络协议,如果接收到的数据包协议项出现了错误,那么接收端将产生一个“Destination Unreachable”(目标主机不可达)ICMP的错误报文。
这些错误报文不是主动发送的,而是由于错误,根据协议自动产生的。
当IP数据包出现Checksum(校验和)和版本的错误的时候,目标主机将抛弃这个数据包;如果是Checksum出现错误,那么路由器就直接丢弃这个数据包。
有些主机比如AIX、HP/UX等,是不会发送ICMP的Unreachable数据包的。
例如,可以向目标主机发送一个只有IP头的IP数据包,此时目标主机将返回“Destination Unreachable”的ICMP错误报文。
如果向目标主机发送一个坏IP 数据包,比如不正确的IP头长度,目标主机将返回“Parameter Problem”(参数有问题)的ICMP错误报文。
注意:如果是在目标主机前有一个防火墙或者一个其他的过滤装置,可能过滤掉提出的要求,从而接收不到任何的回应。
这时可以使用一个非常大的协议数
字作为IP头部的协议内容,而且这个协议数字至少在今天还没有被使用,主机一定会返回Unreachable;如果没有Unreachable的ICMP数据包返回错误提示,那么,就说明被防火墙或者其他设备过滤了,也可以用这个方法探测是否有防火墙或者其他过滤设备存在。