## 六、 端口掃描基礎
雖然 Nmap 這些年來功能越來越多, 它也是從一個高效的端口掃描器開始的,并且那仍然是它 的核心功能。 nmap target 這個簡單的命令掃描主機 target 上的超過 1660 個 TCP 端口。 。 許多傳統的端口掃描器只列出所有端口是開放還是關閉的, Nmap 的信息粒度比它們要細得多 它把端口分成六個狀態: open(開放的), closed(關閉的),filtered(被過濾的), unfiltered(未被過濾的), open|filtered(開放或者被過濾的),或者 closed|filtered(關閉 或者未被過濾的)。
這些狀態并非端口本身的性質,而是描述 Nmap 怎樣看待它們。例如,對于同樣的目標機器的 135/tcp 端口,從同網絡掃描顯示它是開放的,而跨網絡作完全相同的掃描則可能顯示它是 filtered(被過濾的)。
Nmap 所識別的 6 個端口狀態。 open(開放的)
應用程序正在該端口接收 TCP 連接或者 UDP 報文 發現這一點常常是端口掃描 的主要目 標。安全意識強的人們知道每個開放的端口 都是攻擊的入口。攻擊者或者入侵測試者想 要發現開放的端口。 而管理員則試圖關閉它們或者用防火墻保護它們以免妨礙了合法用 戶。 非安全掃描可能對開放的端口也感興趣,因為它們顯示了網絡上那些服務可供使用
closed(關閉的)
關閉的端口對于 Nmap 也是可訪問的(它接受 Nmap 的探測報文并作出響應), 但沒有應用 程序在其上監聽。 它們可以顯示該 IP 地址上(主機發現,或者 ping 掃描)的主機正在運 行 up 也對部分操作系統探測有所幫助。 因為關閉的關口是可訪問的,也許過會兒值得 再掃描一下,可能一些又開放了。 系統管理員可能會考慮用防火墻封鎖這樣的端口。 那 樣他們就會被顯示為被過濾的狀態,下面討論。
filtered(被過濾的)
由于包過濾阻止探測報文到達端口, Nmap 無法確定該端口是否開放。過濾可能來自專業 的防火墻設備,路由器規則 或者主機上的軟件防火墻。這樣的端口讓攻擊者感覺很挫折 因為它們幾乎不提供 任何信息。有時候它們響應 ICMP 錯誤消息如類型 3 代碼 13 (無法 到達目標: 通信被管理員禁止),但更普遍的是過濾器只是丟棄探測幀, 不做任何響應 這迫使 Nmap 重試若干次以訪萬一探測包是由于網絡阻塞丟棄的。 這使得掃描速度明顯 變慢。
unfiltered(未被過濾的)
未被過濾狀態意味著端口可訪問,但 Nmap 不能確定它是開放還是關閉。 只有用于映射 防火墻規則集的 ACK 掃描才會把端口分類到這種狀態。 用其它類型的掃描如窗口掃描, SYN 掃描,或者 FIN 掃描來掃描未被過濾的端口可以幫助確定 端口是否開放。
open|filtered(開放或者被過濾的)
當無法確定端口是開放還是被過濾的,Namp 就把該端口劃分成 這種狀態。開放的端口不 響應就是一個例子。沒有響應也可能意味著報文過濾器丟棄 了探測報文或者它引發的任 何響應。因此 Nmap 無法確定該端口是開放的還是被過濾的。 UDP,IP 協議, FIN,Null 和 Xmas 掃描可能把端口歸入此類。
closed|filtered(關閉或者被過濾的)
該狀態用于 Nmap 不能確定端口是關閉的還是被過濾的。 它只可能出現在 IPID Idle 掃 描中。