由于UDP协议是非面向连接的,对UDP端口的探测也就不可能像TCP端口的探测那样依赖于连接建立过程,这也使得UDP端口扫描的可靠性不高。所以虽然UDP协议较之TCP协议显得简单,但是对UDP端口的扫描却是相当困难的。下面具体介绍一下UDP扫描方案:
方案1:利用ICMP端口不可达报文进行扫描
本方案的原理是当一个UDP端口接收到一个UDP数据报时,如果它是关闭的,就会给源端发回一个ICMP端口不可达数据报,ICMP协议中的类型字段为3(目的站点不可达)和代码字段为3(表示端口不可达);如果它是开放的,那么就会忽略这个数据报,也就是将它丢弃而不返回任何的信息,这里可以设置超时来进行判断。
优点:
可以完成对UDP端口的探测。
缺点:
需要系统管理员的权限。扫描结果的可靠性不高。因为当发出一个UDP数据报而没有收到任何的应答时,有可能因为这个UDP端口是开放的,也有可能是因为这个数据报在传输过程中丢失了。另外,扫描的速度很慢。原因是在RFC1812的中对ICMP错误报文的生成速度做出了限制。例如Li