CS KAIROS · LEARNING LIBRARY

M03-03 · TCP Connect、SYN 與 UDP 掃描

比較 TCP Connect、SYN 與 UDP 的探測方式,依回應建立有條件的連接埠觀察。

CEH M03-03|TCP Connect、SYN 與 UDP 掃描

1|先記住這個結論

連接埠掃描(Port Scanning)是在已授權的範圍內,向指定的傳輸協定與連接埠送出探測,再依回應整理當時的狀態。TCP Connect 嘗試完成 TCP 連線;SYN 掃描觀察建立連線的起始回應;UDP 掃描則依 UDP 回覆、ICMP 錯誤或等待結果判讀。

上一課 M03-02 問「哪些位址有活動跡象」,這一課接著問「指定的 TCP 或 UDP 入口如何回應」。同一個數字,例如 53/tcp 與 53/udp,是兩個分開觀察的入口。

想像你要確認一棟大樓的服務窗口:你可以完成報到,也可以先詢問是否接受報到,或投入一張特定格式的申請單等回覆。這三種方式會取得不同證據。今天全部用合成資料與紙上訊息流程,理解方法後再依授權環境選擇操作。

2|先分清楚:連線、服務與掃描結果

Port(連接埠)是 TCP 或 UDP 使用的數字欄位,協助作業系統把資料交給對應的通訊端點。Listener(監聽端點)表示程式已準備接收某個位址與連接埠的通訊。

例如測試伺服器在 TCP 443 接受連線;建立 TCP 連線後,才可能繼續進行 TLS 加密協商與 HTTP 網頁請求。TLS 是保護通訊的傳輸層安全協定;HTTP 是網頁應用常用的請求與回應協定。登入與授權又是應用程式後續處理的工作。

掃描紀錄因此適合分成三層:

- 原始觀察:送了什麼、收到什麼、等了多久。

- 工具判讀:依該方法顯示 open、closed、filtered 等狀態。

- 後續查核:確認實際服務、設定、用途與防護政策。

本課先用 open 表示工具觀察到接受通訊的特徵,closed 表示收到對應的關閉/拒絕特徵,filtered 表示探測受過濾等因素影響而無法依該方法確定開放或關閉。下一課 M03-04 再完整整理狀態與觀察位置的關係。Nmap 掃描方法與結果說明

3|TCP Connect:請作業系統完成連線

TCP(Transmission Control Protocol,傳輸控制協定)建立一般連線時,常見流程是三向交握:

1. 用戶端送 SYN,提出建立連線與同步序號的請求。

2. 伺服器回 SYN+ACK,提出自己的同步資訊並確認對方的請求。

3. 用戶端送 ACK,完成這次交握。

SYN 是 synchronize 的縮寫,ACK 是 acknowledgment 的縮寫,分別表示同步與確認。這裡討論的是典型的新連線流程。RFC 9293:TCP

TCP Connect Scan(TCP 完整連線掃描)使用作業系統提供的 connect 呼叫,請系統嘗試連到指定 IP 與 TCP 連接埠,再讀取成功或錯誤結果。

紙上例子:

測試端 → 192.0.2.20:443:SYN

伺服器 → 測試端:SYN+ACK

測試端 → 伺服器:ACK

作業系統回報連線成功;工具接著結束該測試連線。

這種方式走一般應用程式也會使用的連線介面,適合理解「從目前位置是否能建立 TCP 連線」。掃描目的通常到此為止;服務內容、TLS 與網站功能可依任務另外檢查。

Nmap 以 -sT 表示 TCP Connect 掃描。因為連線確實完成,服務端可能留下連線或隨即斷線的紀錄;關閉方式與細節依平台及服務行為而異。Nmap TCP Connect 說明

圖 1|TCP Connect 的典型流程

作業系統嘗試建立TCP連線,完成交握後回報結果,工具再結束測試連線。

整張圖依欄位寬度等比縮放,不裁切。小螢幕的圖中文字也會變小,可開啟原圖放大,或閱讀下方會自動換行的文字解說。

圖 1|TCP Connect 的典型流程 作業系統嘗試建立TCP連線,完成交握後回報結果,工具再結束測試連線。 圖 1|TCP Connect 的典型流程 呼叫作業系統 connect 指定核准的 IP 與 TCP 連接埠 例:192.0.2.20:443 開始三向交握 測試端送 SYN 伺服器回 SYN+ACK 完成基本交握 作業系統送 ACK 取得連線成功或錯誤結果 記錄並結束測試 保留方法、時間與系統回報 服務內容依任務另外查核 合成流程;連線建立與網站功能各有查核結果。
讀圖重點
作業系統嘗試建立TCP連線,完成交握後回報結果,工具再結束測試連線。

箭頭表示教學步驟順序;各步依其條件執行。

  1. 呼叫作業系統 connect

    指定核准的 IP 與 TCP 連接埠

    例:192.0.2.20:443

  2. 開始三向交握

    測試端送 SYN

    伺服器回 SYN+ACK

  3. 完成基本交握

    作業系統送 ACK

    取得連線成功或錯誤結果

  4. 記錄並結束測試

    保留方法、時間與系統回報

    服務內容依任務另外查核

合成流程;連線建立與網站功能各有查核結果。

4|SYN 掃描:從交握起始判讀

SYN Scan(SYN 掃描)直接觀察 TCP 起始封包的回應。在典型開放情境中,測試端送 SYN,收到 SYN+ACK,然後以 RST 結束這次嘗試,而不繼續完成一般連線交握。

RST(Reset,重設)是 TCP 控制旗標,用來重設連線狀態。這種探索方式常被稱為 Half-open(半開式)掃描,名稱描述的是這個交握處理方式。

紙上例子:

測試端 → 192.0.2.20:443:SYN

伺服器 → 測試端:SYN+ACK

測試端 → 伺服器:RST

工具依 SYN+ACK 判讀此 TCP 入口為 open。

如果對應的回覆是 RST,典型 SYN 掃描會判讀為 closed。若重試後仍無回應,或收到特定 ICMP 無法到達訊息,工具可能標為 filtered;判讀同時記錄探測方法與回應來源。

Nmap 的 -sS 表示 SYN 掃描,通常需要平台提供直接收送原始封包的權限。實際權限依作業系統、封包驅動與執行環境決定。Nmap SYN 掃描說明

有些教材使用 Stealth(隱蔽)這個歷史名稱。實務上把它理解為「與完整連線相比,交握與應用層紀錄可能不同」即可;防火牆與入侵偵測/防禦系統(IDS/IPS)仍能根據流量模式、來源與頻率偵測這類探測。選方法時優先考慮授權、相容性與要取得的證據。

圖 2|SYN 掃描的典型開放回應

SYN掃描觀察起始回應,典型開放案例收到SYN加ACK後以RST結束嘗試。

整張圖依欄位寬度等比縮放,不裁切。小螢幕的圖中文字也會變小,可開啟原圖放大,或閱讀下方會自動換行的文字解說。

圖 2|SYN 掃描的典型開放回應 SYN掃描觀察起始回應,典型開放案例收到SYN加ACK後以RST結束嘗試。 圖 2|SYN 掃描的典型開放回應 送出 TCP SYN 核准來源 → 192.0.2.20:443 觀察建立連線的起始回應 收到 SYN+ACK 符合此方法的開放回應特徵 記錄回覆來源與時間 以 RST 結束嘗試 不繼續一般交握的最後 ACK 保留實際控制旗標紀錄 整理工具判讀 此情境按 SYN 方法記 open 方法、回應與後續查核分欄 典型紙上案例;權限與封包細節依執行環境。
讀圖重點
SYN掃描觀察起始回應,典型開放案例收到SYN加ACK後以RST結束嘗試。

箭頭表示教學步驟順序;各步依其條件執行。

  1. 送出 TCP SYN

    核准來源 → 192.0.2.20:443

    觀察建立連線的起始回應

  2. 收到 SYN+ACK

    符合此方法的開放回應特徵

    記錄回覆來源與時間

  3. 以 RST 結束嘗試

    不繼續一般交握的最後 ACK

    保留實際控制旗標紀錄

  4. 整理工具判讀

    此情境按 SYN 方法記 open

    方法、回應與後續查核分欄

典型紙上案例;權限與封包細節依執行環境。

5|UDP 掃描:以資料報與錯誤回報判讀

UDP(User Datagram Protocol,使用者資料報協定)以 Datagram(資料報)傳送訊息,本身沒有 TCP 那套 SYN、SYN+ACK、ACK 交握。應用程式依自己的協定決定收到訊息後如何處理與回覆。RFC 768:UDP

例如 DNS(Domain Name System,網域名稱系統)服務可能對格式正確的查詢回覆,對不符合需求的資料採取不同處理。所以 UDP 掃描會受到 Payload(酬載,也就是訊息所攜帶的資料內容)影響;送什麼與等到什麼,需要一起記錄。

Nmap 以 -sU 表示 UDP 掃描。常見判讀包括:

- 收到目標連接埠的對應 UDP 回覆:open。

- 收到 IPv4 ICMP Type 3、Code 3,也就是連接埠無法到達:closed。

- 收到特定其他 ICMP 無法到達錯誤:filtered。

- 重試後仍沒有收到回覆:open|filtered。

open|filtered 的直線符號表示「仍保留開放或過濾兩種可能」,不是同時完成兩項確認。適合的應用層探測或設備設定紀錄,可以進一步縮小原因。Nmap UDP 掃描說明

ICMP(Internet Control Message Protocol,網際網路控制訊息協定)是另一種控制訊息;UDP 探測引發的 ICMP 回報,屬於網路或主機的錯誤通知。分析時核對回報來源與所指向的原始探測。上面 Type/Code 數字適用 IPv4,本課不把它們套到 ICMPv6。RFC 792:ICMP

圖 3|UDP 回應的四種判讀

四張並列卡片代表不同可能結果;UDP回覆、ICMP錯誤與逾時各自對應方法狀態。

整張圖依欄位寬度等比縮放,不裁切。小螢幕的圖中文字也會變小,可開啟原圖放大,或閱讀下方會自動換行的文字解說。

圖 3|UDP 回應的四種判讀 四張並列卡片代表不同可能結果;UDP回覆、ICMP錯誤與逾時各自對應方法狀態。 圖 3|UDP 回應的四種判讀 對應 UDP 回覆 → open 核對目標連接埠及回覆關係 保留送出的酬載與回應 IPv4 ICMP 3/3 → closed Type 3、Code 3:連接埠無法到達 核對回報來源與原始探測 特定其他 ICMP 錯誤 → filtered 依工具定義與實際類型判讀 保留完整類型、代碼與來源 重試後無回覆 → open|filtered 保留開放或過濾的可能 再查查詢格式、政策與服務設定 四種不同結果並列;Type/Code 例子適用 IPv4。
讀圖重點
四張並列卡片代表不同可能結果;UDP回覆、ICMP錯誤與逾時各自對應方法狀態。

並列卡片比較不同類別;排列順序沒有流程意涵。

  1. 對應 UDP 回覆 → open

    核對目標連接埠及回覆關係

    保留送出的酬載與回應

  2. IPv4 ICMP 3/3 → closed

    Type 3、Code 3:連接埠無法到達

    核對回報來源與原始探測

  3. 特定其他 ICMP 錯誤 → filtered

    依工具定義與實際類型判讀

    保留完整類型、代碼與來源

  4. 重試後無回覆 → open|filtered

    保留開放或過濾的可能

    再查查詢格式、政策與服務設定

四種不同結果並列;Type/Code 例子適用 IPv4。

6|為什麼等待時間、速率與位置很重要?

同一個服務,從內網、訪客網路或外部測試位置觀察,可能經過不同政策。Firewall(防火牆)依規則處理流量;負載平衡器、代理或 NAT(Network Address Translation,網路位址轉換)也可能改變實際回應路徑。

把掃描結果想成「從這個觀察點拍到的一張快照」很有幫助。記錄來源、目的 IP、TCP/UDP、連接埠與時間,就能知道兩次測試是否在比較同一件事。

UDP 的等待常需要更多耐心:服務可能只回覆有效查詢,網路也可能遺失封包;主機還可能限制 ICMP 錯誤訊息的產生速率。工具需要等待與重試,才能依設定整理結果。Nmap 官方 UDP 教學也說明錯誤回報限速會影響掃描耗時。Nmap UDP 判讀與耗時

因此,速度不是唯一目標。管理者可先選少量核定端點、訂好等待與停止條件,配合維護窗口和設備承載能力。結果需要比較時,保留工具版本、選項與測試條件。

7|完整案例:同一測試主機的三種觀察

以下是合成紀錄,非實際掃描輸出。假設已核准檢查隔離實驗室的 192.0.2.20:

紀錄 A:對 TCP 443 進行 Connect 測試,作業系統回報連線建立成功。

紀錄 B:對 TCP 443 送 SYN,收到 SYN+ACK,接著送 RST。

紀錄 C:對 UDP 53 送出一次測試資料報,在核定的等待與重試設定下沒有收到回覆。

A 可以寫成:「此時間、此來源位置可完成 TCP 443 的連線建立;後續網站服務檢查另列。」

B 可以寫成:「TCP 443 對 SYN 回覆 SYN+ACK,按此方法記為 open;保留重設與結束嘗試的紀錄。」

C 可以寫成:「UDP 53 本次沒有收到對應回覆,按此方法列 open|filtered;接著核對允許的查詢格式、UDP 政策與服務設定。」

若 C 後來收到 IPv4 ICMP Type 3、Code 3,就追加新的觀察與時間,依該次回覆改記 closed。舊紀錄保留,方便看出改變來自不同回應、設定或時間。

這個案例的重點是:相同位址有多個協定入口;相同 TCP 入口也能用不同方法觀察。把方法與證據寫清楚,團隊就能理解每一筆結論。

圖 4|讓掃描狀態連回實際證據

先記探測與回應,再記工具判讀;依目的查核服務及政策,保留測試條件與差異。

整張圖依欄位寬度等比縮放,不裁切。小螢幕的圖中文字也會變小,可開啟原圖放大,或閱讀下方會自動換行的文字解說。

圖 4|讓掃描狀態連回實際證據 先記探測與回應,再記工具判讀;依目的查核服務及政策,保留測試條件與差異。 圖 4|讓掃描狀態連回實際證據 原始觀察 送了什麼、收到什麼、等了多久 來源、目的、協定、埠與時間 工具判讀 Connect/SYN/UDP 各有規則 open、closed、filtered 等狀態 服務與政策查核 監聽設定、TLS、HTTP 與用途 依任務及授權範圍選擇檢查 驗收及差異追蹤 比對預期清單、日誌與複測結果 保留版本、速率、等待與重試設定 每項結論均可追溯;舊觀察保留供比較。
讀圖重點
先記探測與回應,再記工具判讀;依目的查核服務及政策,保留測試條件與差異。

箭頭表示教學步驟順序;各步依其條件執行。

  1. 原始觀察

    送了什麼、收到什麼、等了多久

    來源、目的、協定、埠與時間

  2. 工具判讀

    Connect/SYN/UDP 各有規則

    open、closed、filtered 等狀態

  3. 服務與政策查核

    監聽設定、TLS、HTTP 與用途

    依任務及授權範圍選擇檢查

  4. 驗收及差異追蹤

    比對預期清單、日誌與複測結果

    保留版本、速率、等待與重試設定

每項結論均可追溯;舊觀察保留供比較。

8|選擇方法與防護驗收

方法選擇可以用三個問題:

第一,想確認什麼?若要觀察一般 TCP 連線建立,可用 Connect 的概念;若要理解 TCP 起始回應,可用 SYN;若盤點 UDP 服務,則安排符合該服務的 UDP 觀察。

第二,環境允許什麼?確認測試來源、目標清單、連接埠、權限、時段、速率、負責人與停止條件。完整連線或少量探測都可能留下紀錄、占用資源;測試計畫應配合設備特性。

第三,如何驗收?把預期開放清單與觀察結果比對,核對服務監聽設定、網路政策與相關日誌。異常開放的入口交由負責人確認用途,再依核准變更處理與複測。

例如合成的驗收紀錄可以寫:「測試網段到 TCP 443 的連線符合預期;UDP 53 的用途與政策由服務負責人核對;兩項皆保留原始回應、設定證據及複測時間。」

IDS(Intrusion Detection System,入侵偵測系統)可觀察掃描模式;IPS(Intrusion Prevention System,入侵防禦系統)則能依部署與政策執行阻擋。防護驗收把偵測告警與實際流量紀錄對照,確認系統如何辨識已核准測試。這也串連課堂 M12 的監測觀念,而不改變本課既有閱讀順序。

9|小檢核與今天帶走的觀念

先用自己的話回答,參考答案隨網站教材提供。

1. Connect 與 SYN 掃描在收到 SYN+ACK 後,典型處理有什麼差別?

2. UDP 探測重試後沒有回覆,為什麼適合保留 open|filtered?請提出兩個可能原因。

3. 已能建立 TCP 443 連線;若要確認網站提供正確頁面,還需要補哪一層的證據?

4. 兩份掃描報告對同一 IP 的結果不同,你會先核對哪些測試條件?至少列三項。

今天帶走三句話:Connect 嘗試完成 TCP 連線;SYN 從起始交握回應判讀;UDP 綜合資料報回覆、ICMP 與等待結果。

每筆狀態都連回「哪裡、何時、用什麼方法、收到什麼」。下一單元 M03-04,再深入整理 Open、Closed、Filtered 等狀態的意義與判讀。

參考解答:小檢核一

參考答案:Connect 由作業系統送出 ACK,完成典型三向交握,工具取得連線結果後結束測試連線。SYN 掃描收到 SYN+ACK 後,通常送 RST 結束嘗試,並依這份起始回應記為 open。兩者都保留各自方法與實際封包/系統結果。

參考解答:小檢核二

參考答案:服務可能正在監聽,但只回覆格式合適的請求;防火牆也可能過濾探測或回程。封包遺失與錯誤訊息限速也是可查核的因素。因此先保留 open|filtered,再核對酬載、等待與重試設定、政策及服務紀錄。

參考解答:小檢核三

參考答案:補上應用層服務證據;HTTPS 情境也核對 TLS 安全通道與憑證結果,再檢查 HTTP 回應及預定頁面內容。若任務涉及登入或操作權限,再依核准範圍檢查。每一層各記時間、方法與結果。

參考解答:小檢核四

參考答案:至少比較觀察來源與網段、時間、TCP 或 UDP、目的埠、掃描方法、工具版本、等待與重試設定、速率及酬載。也可核對 NAT/代理路徑與當時的防火牆、監聽設定。先確認比較條件,再保留差異與原始回應追查。

概念 Q&A

待補:收到相關問題後,會整理為匿名教學版。