Nmap UDP掃描緩慢問題探究(無結果)

1、說明

在網絡原理中咱們常常說TCP是面向鏈接的要進行三次握手和四次揮手因此速度比較慢,UDP是無鏈接的直接發送和接收因此速度快(說到這個快慢我總想起多年前有篇分析MSN爲何被QQ淘汰的一篇文章其中有一條就是說MSN用的TCP速度慢QQ用的UDP速度快,時至今日我也不肯定在聊天軟件中用TCP和用UDP是否會表現出明顯的速度差別甚至我不肯定是否是MSN用TCP、QQ用UDP)。html

今天同事整理端口矩陣時反映說Nmap進行UDP端口掃描沒有結果,讓幫看一下命令有沒有問題。形以下:服務器

nmap -sU -p 1-65535 192.168.220.128

看了一下沒什麼問題,在本身Windows上用Zenmap跑了一下發現掃描比較慢但沒有很在乎,直到下午看到還沒完成就須要探究一番了。網絡

對以往UDP掃描的速度沒什麼特別換印像,也就是說應該沒有這麼慢纔對。測試

 

2、問題探究

2.1 排除服務端配置問題

首先使用Wireshark截包,發現每秒也就三五個探測及端口不可達ICMP包。spa

直覺上沒認爲本身機器的問題,再結合百度、谷歌的結果及官網的以下說法,以爲應該就是服務端經過icmp_ratelimit參數限制了ICMP端口不可達響應速率操作系統

但到服務器查看/proc/sys/net/ipv4/icmp_ratelimit發現配置的是1000,以下圖code

 這是越想越不能使人信服的,實際掃描中的每秒三五次和每秒限制1000次差距過於明顯,瓶頸不該該在服務器限制響應速率上(並且測試中將icmp_ratelimit配置爲不進行限速的0也並無快不少)。htm

 

2.2 排除操做系統問題

向另外一同事詢問後,他提出有沒有多是操做系統問題,建議使用Linux試一下。blog

思索之下是有道理的,一是Windows和Linux在發包這種東西上素來就有區別,二是以前用nmap大多在Linux裏用UDP掃描感受沒有很慢。ip

打開Kali虛擬機使用Nmap進行掃描發現確實快不少,以下圖所示:

惟一的問題是無論掃哪一個機器、怎麼掃,全部端口都報open|filtered。這最終只能認爲是服務器端口的返回不足以讓Nmap區分出其狀態。

正準備收工,把UDP掃描慢歸爲操做系統問題,同時UDP掃描判斷端口狀態效果通常時,看到Wireshark抓取的數據包以下圖所示:

這問題很大,如上截圖中只有從虛擬機發往目標機的數據包,並無從目標機返回的端口不可達ICMP包(這應該也就是全部端口都被認爲open|filtered的緣由)。

這與前面在物理機中的掃描不一致,此時就存在操做系統類型和有無響應數據包兩個變量,不能直接下結論說是哪一個的問題。

又用一臺Linux物理機使用Nmap進行掃描,發現掃描速度與Windows物理機差很少。

也就是說當前的結論是:虛擬機中的快只是由於收不到響應、Nmap的UDP掃描緩慢和服務端限制回覆ICMP不可達速度無關、和Nmap所用操做系統也無關,瓶頸究竟是哪仍是不太清楚。

 

參考:

https://nmap.org/book/scan-methods-udp-scan.html#scan-methods-ex-udpscan-scanme2

相關文章
相關標籤/搜索