什麼是埠掃描?
連接埠掃描程式是用來探測主機或伺服器以識別開放連接埠的應用程式。惡意使用者可以使用連接埠掃描程式,透過尋找主機上執行的網路服務來利用漏洞。安全分析人員也可以使用它們來確認網路安全性政策。
連接埠掃描如何運作
在網路或伺服器上執行連接埠掃描,可顯示哪些連接埠是開啟且正在聆聽(接收資訊),並顯示傳送者與目標之間是否存在 防火牆等安全性裝置。此技術稱為指紋分析。
它對於測試 網路安全性 和系統防火牆的強度也很有價值。由於具有此功能,它也是攻擊者尋找弱點入侵電腦的常用偵察工具。
港口提供的服務各有不同。它們的編號從 0 到 65535,但某些範圍較常使用。連接埠 0 至 1023 被識別為 「知名連接埠 」或標準連接埠,並已由網際網路指定號碼管理機構 (IANA) 指定服務。一些最著名的港口及其指定服務包括
- 連接埠 20 (UDP) - 檔案傳輸通訊協定 (FTP),用於資料傳輸
- 連接埠 22 (TCP) - 用於安全登入、FTP 和連接埠轉址的安全 Shell (SSH) 通訊協定
- 連接埠 23 (TCP) - 用於未加密文字通訊的 Telnet 通訊協定
- 連接埠 53 (UDP) - 網域名稱系統 (DNS) 將網際網路上所有電腦的名稱轉換為 IP 位址
- 連接埠 80 (TCP) - 萬維網 HTTP
1023 之後的連接埠也提供標準服務,而且由於某些影響深遠的特洛伊木馬和病毒很喜歡使用這些連接埠,如果這些連接埠開啟,就表示系統已受到感染。
埠掃描的類型
埠掃描會傳送精心準備的封包到每個目的埠號碼。連接埠掃描軟體能夠使用的基本技術包括
- Vanilla - 最基本的掃描;嘗試一次連接所有 65,536 個連接埠。vanilla 掃描是完全的連線掃描,也就是說,它會傳送 SYN 標誌(連線請求),並在收到 SYN-ACK(連線確認)回應後,傳回 ACK 標誌。此 SYN、SYN-ACK、ACK 交換包含 TCP 握手。完整連線掃描很精確,但很容易被偵測到,因為防火牆總是會記錄完整連線。
- SYN 掃描 - 也稱為半開啟掃描,它只傳送 SYN,並等待目標的 SYN-ACK 回應。如果收到回應,掃描器永遠不會回應。由於 TCP 連線未完成,系統不會記錄互動,但寄件者已得知連接埠是否開啟。
- Xmas 和 FIN 掃描 - 用於收集資訊而不被目標系統記錄的掃描套件範例。在 FIN 掃描中,未經請求的 FIN 標誌 (通常用於結束已建立的會話) 將傳送至連接埠。系統對此隨機標誌的回應可以揭示連接埠的狀態或有關防火牆的深入資訊。例如,封閉的連接埠收到未經請求的 FIN 封包時,會以 RST(即時中止)封包回應,但開放的連接埠則會忽略此封包。Xmas 掃描只會傳送一組所有的旗標,造成毫無意義的互動。可以解釋系統的回應,以便更好地瞭解系統的連接埠和防火牆。
- FTP 彈跳掃描 - 允許透過 FTP 伺服器彈跳封包來掩飾寄件者的位置。這也是為了讓寄件者不被發現而設計的。
- 掃描 - 在多台電腦間 ping 同一連接埠,以辨識網路中哪些電腦處於活動狀態。這不會透露連接埠狀態的資訊,反而會告訴寄件者網路中哪些系統是活動的。因此,它可用作初步掃描。
連接埠掃描結果
連接埠掃描程式會傳送 UDP 或 TCP 網路封包,詢問連接埠的狀態。結果會揭露網路或伺服器的狀態,可以是下列其中之一:開啟、關閉和過濾。
1.開放 - 已接受
開放埠表示下列情況:
- 目標網路/服務正在接受資料報/連線。
- 目標網路/服務已回應 TCP SYN 封包,表示正在聆聽
- 連接埠掃描使用的服務正在使用中 (通常是 UDP 或 TCP)。
對於壞人來說,找到開放的連接埠就是任務。這對於必須使用防火牆封鎖開放連接埠 (同時避免斷絕授權使用者的存取) 的安全人員而言,是一項挑戰。
2.關閉 - 不聆聽
關閉的連接埠表示下列情況:
- 目標網路/伺服器已收到要求,但沒有服務正在聆聽
儘管連接埠已關閉,但仍可存取,因此在確認 IP 位址上是否有主機時非常有用。安全人員應該不斷地監控封閉的連接埠,並考慮使用防火牆將其封鎖(使其成為過濾連接埠)。
3.過濾 - 掉線/封鎖
已過濾的連接埠表示下列情況:
- 已傳送請求封包。主機沒有聆聽,也沒有回應。
- 請求封包很可能被防火牆或入侵防護系統阻擋。
只要封包未到達目標,壞人就無法揭露進一步的洞察力。一般而言,傳送至已篩選連接埠的封包不會收到回應,但當收到回應時,錯誤訊息通常是 "communication prohibited「 或 」destination unreachable"。
惡意使用者如何使用連接埠掃描做為攻擊方法
根據 SANS 研究所的資料,埠掃描是惡意使用者在尋找易受攻擊伺服器時最常使用的策略之一。針對網路時,連接埠掃描通常是第一步。連接埠掃描可提供網路環境的有用資訊,例如:
- 現有的防禦措施,例如防火牆
- 目標系統的詳細資訊
- 線上的機器
- 正在執行的應用程式
- 誰可能擁有易受攻擊的網路或伺服器
這類資訊對於尋找軟體弱點的惡意行為者非常有價值。能夠識別組織正在執行特定的 DNS 或網頁伺服器,就能更容易找到這些漏洞。有幾種 TCP 通訊協定技術可讓惡意使用者使用誘餌流量進行連接埠掃描,完全隱藏他們的網路位址和位置。
為了讓寄件者不被接收系統的日誌偵測到而開發的掃描被稱為隱形掃描,攻擊者對此特別感興趣。儘管埠掃描在這個領域很受歡迎,但對於滲透測試者來說,埠掃描仍是評估網路安全性強度的重要工具。
埠掃描常見問題
進行連接埠掃描的方法有幾種:
- SYN Scan(半開啟掃描):涉及傳送 SYN 封包並等待 SYN-ACK 回應,而不完成 TCP 握手,因此較難偵測。
- FIN 掃描:Technique 會向關閉的連接埠傳送 FIN 封包,這會觸發重設 (RST) 回應。它常用於繞過防火牆偵測。
- XMAS 掃描:傳送設定所有旗標的封包,就像一棵「亮燈」的聖誕樹,有助於識別防火牆的存在和連接埠的狀態。
- UDP 掃描:透過傳送 UDP 封包並等待回應來確定哪些 UDP 連接埠是開放的,因為此通訊協定不需要握手。
連接埠掃描通常是各種網路攻擊的前奏。例如,它可以用來:
- 偵測可能會被利用進行未經授權進入的開放連接埠。
- 作為發動更特定攻擊的初始步驟,例如拒絕服務 (DoS) 或資料外洩。
- 透過暴露網路漏洞,提供攻擊者注入惡意軟體或執行惡意程式碼所需的重要資訊。