通過網絡掃描,用戶能夠發現網絡中活動的主機和主機上開放的端口,進而判斷出目標主機開放的服務。然后通過對服務的掃描,還可以獲取到目標主機的操作系統類型、服務歡迎信息和版本等信息。本文介紹網絡掃描的目的。
1. 發現主機
通過對一個網絡中的主機實施掃描,即可發現該網絡中活動的主機。當發現網絡中活動的主機后,用戶就可以在掃描時重新規劃掃描范圍,而不需要對所有主機進行掃描,這樣將會節約大量的時間和資源,而且掃描的結果更精確。這樣用戶可以針對活動主機做進一步掃描,以探測開放的端口,進而推斷出開放的服務信息等。
2. 探測端口
當用戶掃描到網絡中活動的主機后,即可探測該活動主機中開放的所有端口。這里的端口指的不是物理意義上的端口,而是特指TCP/IP協議中的端口,它是邏輯意義上的端口。在TCP/IP協議中,最常用的協議是TCP和UDP協議,由于這兩個協議是獨立的,因此各自的端口號也相互獨立。例如,TCP有235端口,UDP也可以有235端口,且兩者并不沖突。
在TCP/IP協議中的端口,可以根據它們的用途進行分類。因此下面介紹一下端口的類型,以方便用戶判斷端口所對應的程序。
(1)周知端口(Well Known Ports)
周知端口是眾所周知的端口號,范圍為0~1023。例如,WWW服務默認端口為80,FTP服務默認端口為21等。不過,用戶也可以為這些網絡服務指定其他端口號,但是有些系統協議使用固定的端口號,是不能被改變的。例如,139端口專門用于NetBIOS與TCP/IP之間的通信,不能手動改變。
(2)動態端口(Dynamic Ports)
動態端口的范圍是49152~65535。之所以稱為動態端口,是因為它們一般不固定分配某種服務,而是根據程序申請,系統自動進行動態分配。
(3)注冊端口
1024~49151端口,是用來分配給用戶進程或應用程序的。這些進程主要是用戶所安裝的一些應用程序,而不是已經分配好了公認端口的常用程序。這些端口在沒有被服務器資源占用的時候,可以供用戶端動態選用。
3. 判斷服務
在計算機網絡中,每個服務默認都有對應的端口。例如,FTP服務默認端口為21,SSH服務默認端口為22,HTTP服務默認端口為80等。所以,如果用戶探測出目標主機開放的端口后,即可判斷出對應的服務了。為了幫助用戶能夠快速地判斷出開放端口所對應的服務,這里將以表格形式列出一些常見的服務及其對應端口,如表1所示。