跳至內容

埠掃描工具

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

埠掃描工具(Port Scanner)指用於探測伺服器主機開放情況的工具。常被電腦管理員用於確認安全策略,同時被攻擊者用於辨識目標主機上的可運作的網路服務。

埠掃描定義是客戶端向一定範圍的伺服器埠傳送對應請求,以此確認可使用的埠。雖然其本身並不是惡意的網路活動,但也是網路攻擊者探測目標主機服務,以利用該服務的已知漏洞的重要手段。[1]埠掃描的主要用途仍然只是確認遠端機器某個服務的可用性。

掃描多個主機以取得特定的某個埠被稱為埠清掃(Portsweep),以此取得特定的服務。例如,基於SQL服務的電腦蠕蟲就會清掃大量主機的同一埠以在 1433 埠上建立TCP連接。[2]

類型

[編輯]

TCP掃描

[編輯]

最簡單的埠掃描工具使用作業系統原生的網路功能,且通常作為SYN掃描的替代選項。Nmap將這種模式稱為連接掃描,因為使用了類似Unix系統的connect()命令。如果該埠是開放的,作業系統就能完成TCP三次握手,然後埠掃描工具會立即關閉剛建立的該連接,防止阻斷服務攻擊[3]這種掃描模式的優勢是使用者無需特殊權限。但使用作業系統原生網路功能不能實現底層控制,因此這種掃描方式並不流行。並且TCP掃描很容易被發現,尤其作為埠清掃的手段:這些服務會記錄傳送者的IP位址,入侵檢測系統可能觸發警報。

SYN掃描

[編輯]

SYN掃描是另一種TCP掃描。埠掃描工具不使用作業系統原生網路功能,而是自行生成、傳送IP封包,並監控其回應。這種掃描模式被稱為「半開放掃描」,因為它從不建立完整的TCP連接。埠掃描工具生成一個SYN包,如果目標埠開放,則會返回SYN-ACK包。掃描端回應一個RST包,然後在握手完成前關閉連接。[3]如果埠關閉了但未使用過濾,目標埠應該會持續返回RST包。

這種粗略的網路利用方式有幾個優點:給掃描工具全權控制封包傳送和等待回應時長的權力,允許更詳細的回應分析。關於哪一種對目標主機的掃描方式更不具備入侵性存在一些爭議,但SYN掃描的優勢是從不會建立完整的連接。然而,RST包可能導致網路堵塞,尤其是一些簡單如印表機之類的網路裝置。

UDP掃描

[編輯]

UDP掃描也是可能的,儘管存在一些技術挑戰。 UDP是無連接協定,因此沒有等同於TCP SYN的封包。但是,如果將UDP封包傳送到未打開的埠,目標系統將回應ICMP埠不可達的訊息。大多數UDP埠掃描器都使用這種掃描方法,並使用缺少回應來推斷埠是否打開。但是,如果埠被防火牆阻止,則此方法將錯誤地報告埠已打開。如果埠不可達訊息被阻塞,則所有埠將顯示為打開。這種方法也受到ICMP速率限制的影響。

另一種方法是傳送特定於應用程式的UDP封包,希望生成應用層回應。例如,如果DNS伺服器存在,向埠53傳送DNS查詢將導致回應。這種方法在辨識開放埠方面更加可靠。然而,它僅限於應用程式特定的探測包可用時的埠掃描。一些工具(例如,NMAP)通常具有少於20個UDP服務的探針,而一些商業工具(例如,NESUS)有多達70個。在某些情況下,服務能在埠上被偵聽,但被組態為不回應特定的探測包.

ACK掃描

[編輯]

ACK掃描是比較不常見的掃描類型之一,因為它不能確切地確定埠是打開的還是關閉的,但是可以確定埠是過濾的還是未過濾的。當嘗試探測防火牆及其規則集的存在性時,這尤其有用。簡單的包過濾將允許建立連接(帶有ACK位集的包),而更複雜的有狀態防火牆可能不允許

窗口掃描

[編輯]

FIN掃描

[編輯]

其他類型

[編輯]

參考

[編輯]
  1. ^ RFC 2828 網路安全術語
  2. ^ 存档副本. [2015-01-25]. (原始內容存檔於2014-08-11). 
  3. ^ 3.0 3.1 Erikson, Jon (1977). HACKING the art of exploitation (2nd ed.). San Francisco: NoStarch Press. p. 264. ISBN 1-59327-144-1.