CS KAIROS · LEARNING LIBRARY

M03-02 · 主機探索:ICMP、ARP

從 ICMP 與 ARP 的分工,建立有位置、時間與下一步的主機探索紀錄。

CEH M03-02|主機探索:ICMP 與 ARP

1|先記住這個結論

主機探索(Host Discovery)是在已授權的範圍內,確認哪些網路位址目前有回應,再把回應方式、觀察位置與時間記錄下來。ICMP 協助觀察 IP 通訊的回應;ARP 協助在本地乙太網路找到 IPv4 下一站的 MAC 位址。兩者回答不同問題,搭配使用,能建立更清楚的資產與連線紀錄。

上一課 M03-01 把 IP、TCP/UDP、連接埠與服務分開了。今天先往前一步:在研究「提供什麼服務」之前,怎麼判斷「這個位址有什麼活動跡象」?

想像你到一棟辦公大樓送文件。你可能先打電話問對方是否有人接聽,再到同一樓層問「哪個辦公室使用這個分機」。打電話與詢問同樓層窗口,是兩種觀察方式;接到電話的人、轉接總機與真正收件人,也要分清楚。以下使用合成網路,不對外部設備操作。

2|探索的成果:一筆有情境的觀察

Host(主機)泛指網路上的端點,例如電腦、伺服器或印表機;路由器等網路設備也可能回應探測。Probe(探測訊息)是為了觀察狀態而送出的特定訊息;Response(回應)是收到的結果。

一筆實用的紀錄包含:

- 從哪裡觀察:例如已授權的測試電腦、所屬網段。

- 看哪個目標:指定 IP 位址與資產範圍。

- 使用哪種方式:ICMP Echo、ARP,或其他核准的方法。

- 何時與多久:時間、時區、等待時間及重試次數。

- 收到什麼:回應來源、類型、內容及延遲。

- 下一步:對照資產清冊、設備紀錄或核准的服務檢查。

「08:00,從測試網段收到某位址的 ICMP Echo Reply」比「這台一定正常」更能協助同事接續工作。設備通訊、應用程式可用性、登入權限是不同層次,適合分欄記錄。

Nmap 是網路探索工具;它的官方文件將主機探索描述為縮小需要進一步檢查的目標清單,而且探索方式涵蓋多種協定。Nmap 主機探索說明

3|ICMP:IP 網路的狀態回報

ICMP(Internet Control Message Protocol,網際網路控制訊息協定)用來傳遞 IP 通訊相關的控制與診斷訊息。你可以把它想成配送過程中的狀態通知。

常見訊息有三種:

- Echo Request/Echo Reply:回音請求/回音回覆,用來觀察往返通訊。

- Destination Unreachable:目的地無法到達,回報特定的傳遞問題。

- Time Exceeded:超過時間限制,例如封包的 TTL 用盡;TTL 是封包可經過路由跳數的限制欄位。

ICMP 以訊息「類型與代碼」描述狀態;TCP/UDP 則另有連接埠欄位。分析時把協定及其欄位一起看,才能選對判讀方式。RFC 792:ICMP

平常的 ping 程式常使用回音請求與回音回覆。以 IPv4 為例,Echo Request 的 Type 是 8,Echo Reply 的 Type 是 0。請求裡的識別碼、序號與資料,協助程式對應回覆。

例如下面是紙上示意,不是實際執行結果:

測試端 → 192.0.2.20:Echo Request,序號 1

192.0.2.20 → 測試端:Echo Reply,序號 1

往返時間:2 毫秒

RTT(Round-Trip Time,往返時間)包含訊息送出、對方處理與回傳的時間。連續幾次結果可以觀察當時的延遲與遺失情形;不同時段或路徑,結果可能不同。ping 的顯示格式也依作業系統而異。

圖 1|ICMP Echo 往返觀察

回音請求與回音回覆配對,保存觀察位置、時間、識別資訊與延遲。

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

圖 1|ICMP Echo 往返觀察 回音請求與回音回覆配對,保存觀察位置、時間、識別資訊與延遲。 圖 1|ICMP Echo 往返觀察 設定觀察條件 核定來源與目標 192.0.2.20 記錄時間、等待與重試設定 送出 Echo Request IPv4 ICMP Type 8 記錄識別碼、序號與資料 收到 Echo Reply IPv4 ICMP Type 0 核對來源及請求/回覆對應 整理當次結果 例:序號 1,RTT 2 毫秒 逾時則保留條件並安排查核 合成紙上例子;網站功能另由服務檢查確認。
讀圖重點
回音請求與回音回覆配對,保存觀察位置、時間、識別資訊與延遲。

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

  1. 設定觀察條件

    核定來源與目標 192.0.2.20

    記錄時間、等待與重試設定

  2. 送出 Echo Request

    IPv4 ICMP Type 8

    記錄識別碼、序號與資料

  3. 收到 Echo Reply

    IPv4 ICMP Type 0

    核對來源及請求/回覆對應

  4. 整理當次結果

    例:序號 1,RTT 2 毫秒

    逾時則保留條件並安排查核

合成紙上例子;網站功能另由服務檢查確認。

4|如何讀懂「有回覆」與「等待逾時」

收到對應的回音回覆,可以記為「在此時間與觀察位置,該位址的回音通訊可達」。若收到路由器的無法到達訊息,就記錄路由器位址與回報類型,接著檢查路由或政策。

Timeout(逾時)表示在設定的等待期間沒有收到預期回覆。接下來依情境檢查:設備是否休眠、線路或路由是否可用、封包是否遺失、設備或防火牆是否允許此類回應。資產清冊、端點管理紀錄與其他核准觀察能協助縮小原因。

例如公司印表機正在列印,但管理政策關閉了回音回覆。你可以同時記錄「列印服務有作業紀錄」與「本次 Echo 探測逾時」;兩筆資訊各自描述不同的觀察。

這也是資安工作常用的判讀方式:先寫收到的證據,再選擇下一個查核動作。ICMP 錯誤訊息的產生與傳遞本來就有條件;保留逾時狀態,能讓後續調查更精準。RFC 1122:主機通訊需求

5|ARP:在本地找到下一站的 MAC 位址

乙太網路(Ethernet)在本地傳送的是 Frame(訊框)。訊框有來源與目的 MAC 位址;MAC(Media Access Control,媒體存取控制)位址用來識別鏈路上的網路介面。

ARP(Address Resolution Protocol,位址解析協定)在常見的 IPv4 乙太網路中,把下一站的 IPv4 位址對應到 MAC 位址。它像是在同一個配送區域問:「哪個介面使用這個 IP?請告訴我你的收件地址。」

合成環境:A 與 B 位於同一本地乙太網路;A 是 192.0.2.10,B 是 192.0.2.20。

1. A 需要把資料交給 B,先查本機是否已有對應紀錄。

2. 需要解析時,A 發送 ARP Request,詢問誰使用 192.0.2.20。

3. 一般請求以 Broadcast(廣播)送到該廣播範圍;符合目標的設備回應 ARP Reply。

4. A 取得對應 MAC 後,便能填入乙太網路訊框的目的位址。

ARP 訊息中的 IP 是查詢與回覆的資料欄位;ARP 本身直接由乙太網路承載。它和「把 ICMP 放在 IP 封包裡傳送」的結構不同。RFC 826:ARP

ARP Cache(ARP 快取)是暫存的 IP/MAC 對應表。讀到快取時,同時注意它可能來自先前通訊;新收到的回覆與既有快取,是不同時間的觀察。設備移動、位址變更或快取更新,都可能改變對應關係。

圖 2|ARP 解析本地 IPv4 下一站

A與B位於同一本地乙太網路,A依需要詢問B的MAC並建立本地訊框。

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

圖 2|ARP 解析本地 IPv4 下一站 A與B位於同一本地乙太網路,A依需要詢問B的MAC並建立本地訊框。 圖 2|ARP 解析本地 IPv4 下一站 決定下一站並查快取 A:192.0.2.10 → B:192.0.2.20 路由指出直接相連網路 需要解析時送 ARP Request 詢問誰使用 192.0.2.20 一般請求在本地廣播範圍傳送 收到 ARP Reply 取得回覆中的 IP/MAC 對應 記錄回覆來源與接收時間 建立乙太網路訊框 目的 MAC 填入下一站介面 保留快取與新回覆的時間差別 ARP 直接由乙太網路承載;本例為 IPv4。
讀圖重點
A與B位於同一本地乙太網路,A依需要詢問B的MAC並建立本地訊框。

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

  1. 決定下一站並查快取

    A:192.0.2.10 → B:192.0.2.20

    路由指出直接相連網路

  2. 需要解析時送 ARP Request

    詢問誰使用 192.0.2.20

    一般請求在本地廣播範圍傳送

  3. 收到 ARP Reply

    取得回覆中的 IP/MAC 對應

    記錄回覆來源與接收時間

  4. 建立乙太網路訊框

    目的 MAC 填入下一站介面

    保留快取與新回覆的時間差別

ARP 直接由乙太網路承載;本例為 IPv4。

6|同網段與跨網段:ARP 到底在問誰?

這一節把上一課的 IP 與今天的 ARP 串起來。

假設 A 的設定為 192.0.2.10/24,路由表將 192.0.2.0/24 視為直接相連網路,預設閘道是 192.0.2.1。/24 表示網路前綴長度為 24 位元;本例的相關位址都經過規劃,僅供紙上教學。

情境一:A 要送給 192.0.2.20。

路由選擇指出目標在本地,A 解析 192.0.2.20 的 MAC,再將訊框交給對方。

情境二:A 要送給遠端的 198.51.100.20。

路由選擇指出下一站是預設閘道,A 解析的是 192.0.2.1 的 MAC。這時 IP 封包的目的地仍是遠端目標;本地訊框的目的地則是閘道介面。閘道收到後再依路由轉送。

記憶方式是:IP 目的地描述這趟 IP 傳送要去哪裡;本地訊框的目的 MAC 描述這一段交給誰。實際環境依路由表、介面與網路設定決定下一站。RFC 1122:本地/遠端判定

因此,直接 ARP 探索適合本地鏈路;跨路由網路的探索需要採用能到達目標的核准方法。VLAN(Virtual LAN,虛擬區域網路)等設計會劃分二層廣播範圍。Proxy ARP(代理 ARP)則由設備替其他位址回覆,遇到此配置時,把回覆者與目標資產另外核對。

IPv6 使用 Neighbor Discovery(鄰居探索,ND),透過 ICMPv6 完成鄰居位址解析等工作;它有自己的訊息與運作規則。今天先記住 IPv4 常見 ARP 與 IPv6 ND 的分工即可。RFC 4861:IPv6 鄰居探索

圖 3|遠端 IP 與本地下一站 MAC

遠端傳送時,IP目的地維持遠端目標,本地乙太網路訊框則交給路由選定的閘道。

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

圖 3|遠端 IP 與本地下一站 MAC 遠端傳送時,IP目的地維持遠端目標,本地乙太網路訊框則交給路由選定的閘道。 圖 3|遠端 IP 與本地下一站 MAC 來源與路由設定 A:192.0.2.10/24 預設閘道:192.0.2.1 IP 目的地 198.51.100.20:遠端測試位址 路由選擇下一站為預設閘道 本地 ARP 查詢 查 192.0.2.1 的 MAC 解析的是此段要交付的閘道介面 本地訊框與後續轉送 目的 MAC=閘道;目的 IP=遠端 閘道再依路由送往下一站 範例依指定路由;實務另核對 VLAN/代理 ARP。
讀圖重點
遠端傳送時,IP目的地維持遠端目標,本地乙太網路訊框則交給路由選定的閘道。

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

  1. 來源與路由設定

    A:192.0.2.10/24

    預設閘道:192.0.2.1

  2. IP 目的地

    198.51.100.20:遠端測試位址

    路由選擇下一站為預設閘道

  3. 本地 ARP 查詢

    查 192.0.2.1 的 MAC

    解析的是此段要交付的閘道介面

  4. 本地訊框與後續轉送

    目的 MAC=閘道;目的 IP=遠端

    閘道再依路由送往下一站

範例依指定路由;實務另核對 VLAN/代理 ARP。

7|完整案例:把三筆觀察整理成下一步

以下均為合成資料,假設你已獲准檢查實驗室隔離網路中的三台測試設備。

A:192.0.2.20,在同一本地網路收到 ARP Reply;ICMP Echo 等待逾時。

B:192.0.2.30,在同一本地網路收到 ARP Reply,也收到 ICMP Echo Reply。

C:198.51.100.20,位於遠端測試網段;目前只查到本機閘道 192.0.2.1 的 ARP 對應。

A 可以記成:「本地收到此 IPv4 位址的 ARP 回覆;Echo 本次逾時。下一步核對設備識別、代理 ARP 設定與 ICMP 政策。」

B 可以記成:「本地位址解析與 Echo 往返均有回應,附時間及來源。若任務還要確認服務,接續核准的服務檢查。」

C 可以記成:「已取得本地下一跳閘道的 MAC。遠端目標的活動狀態留待指定的端到端查核。」

你會發現,三筆紀錄都有價值:A 幫助區分鏈路回覆與 Echo 政策;B 提供兩種互相補充的觀察;C 說明本地交付路徑已經解析到哪一步。

工具使用也沿用這個邏輯。Nmap 的 -sn 表示做主機探索而略過一般連接埠掃描;實際採用的探測會依本地/遠端、權限、協定及選項而變。-Pn 則是略過主機探索、讓後續指定檢查繼續處理目標。學習時先讀懂選項目的,再在核准範圍設定;本課採紙上判讀。Nmap 主機探索選項

圖 4|把探索結果接到可查核紀錄

先保存回覆或逾時,再對照資產與政策;需要時做授權服務檢查,最後留下結果與負責人。

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

圖 4|把探索結果接到可查核紀錄 先保存回覆或逾時,再對照資產與政策;需要時做授權服務檢查,最後留下結果與負責人。 圖 4|把探索結果接到可查核紀錄 保存直接觀察 來源、目標、方法、時間與等待設定 分別記 ARP、Echo 回覆或逾時 核對資產及網路情境 設備歸屬、路由、VLAN、代理 ARP 參照管理紀錄與 ICMP 政策 依任務補足檢查 若要確認網站,查核核准服務 把鏈路、IP 與應用層分開觀察 記錄結果與下一步 已核實事項、待核原因、負責人 依相同條件複查並保留版本 所有探測依核定範圍、時段、速率與停止條件。
讀圖重點
先保存回覆或逾時,再對照資產與政策;需要時做授權服務檢查,最後留下結果與負責人。

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

  1. 保存直接觀察

    來源、目標、方法、時間與等待設定

    分別記 ARP、Echo 回覆或逾時

  2. 核對資產及網路情境

    設備歸屬、路由、VLAN、代理 ARP

    參照管理紀錄與 ICMP 政策

  3. 依任務補足檢查

    若要確認網站,查核核准服務

    把鏈路、IP 與應用層分開觀察

  4. 記錄結果與下一步

    已核實事項、待核原因、負責人

    依相同條件複查並保留版本

所有探測依核定範圍、時段、速率與停止條件。

8|防護與可驗收的證據

主機探索對管理者的用途,是把「清冊上的設備」與「目前網路看到的設備」連起來。可從四件事落實:

- 明確範圍:記錄允許的網段、來源、時段、速率與停止條件;對敏感設備採管理者核准的低影響方法。

- 清楚政策:依營運需求設定 ICMP 與管理連線;保留必要診斷訊息的設計依據。路由器也使用 ICMP 回報特定錯誤,政策需要考量正常通訊。RFC 1812:IPv4 路由器需求

- 交叉核對:把探測結果與資產清冊、交換器埠、DHCP 租約或端點管理紀錄比對。DHCP 是動態分配網路設定的協定;租約紀錄提供分配時間的線索。

- 留下證據:保存來源、目的地、協定、時間、回應與採取的動作;異常對應交給負責人查核。

一個可驗收的成果可以是:「三個授權測試位址皆有當次觀察紀錄;有回應者已核對設備歸屬;逾時者已列查核原因與負責人;測試沒有超出核定範圍。」

這種紀錄也能串回 M02-08:觀察、推論與行動分開,後續修改政策時再用相同條件複查。

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

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

1. 同一本地網路的設備有 ARP Reply,但 ping 逾時。你會如何寫出觀察,以及下一步查核?

2. A 要傳送到遠端網段,下一跳是預設閘道。A 用 ARP 查詢的是遠端主機,還是閘道的 MAC?為什麼?

3. 一筆 ARP 快取和剛收到的 ARP 回覆,在紀錄時間上應如何區分?

4. 已收到 ICMP Echo Reply;若任務要確認網站能正常提供服務,下一步要補哪一類檢查?

今天最重要的是:先確定觀察位置與下一站,再選擇探測方式;收到回應就記錄回應代表的狀態,逾時就保留條件並安排查核。ICMP 協助觀察 IP 通訊,ARP 協助完成本地 IPv4 位址解析。

下一單元 M03-03 再接 TCP Connect、SYN 與 UDP 掃描,把「有活動跡象的位址」接到「各連接埠如何回應」。

參考解答:小檢核一

參考答案:「在指定時間與本地測試位置,收到該 IPv4 位址的 ARP Reply;本次 ICMP Echo 在設定等待期間逾時。」接著核對設備歸屬、是否有代理 ARP、ICMP 政策與路徑。ARP 回覆與 Echo 逾時各自保留,必要時由核准的服務檢查補充。

參考解答:小檢核二

參考答案:查詢閘道的 MAC。路由表決定這一段先把訊框交給預設閘道,因此本地目的 MAC 是閘道介面;IP 封包的目的地仍是遠端目標。閘道收到後再依路由往下一站轉送。

參考解答:小檢核三

參考答案:既有快取記錄「讀取快取的時間」,以及系統可提供的建立/更新時間或狀態;未知時間如實列待核。新收到的 ARP Reply 記實際接收時間、來源、目標及回應內容。兩者分開保存,方便理解對應關係的時效。

參考解答:小檢核四

參考答案:補做任務允許的網站服務檢查,例如核對 HTTP/HTTPS 連線與回應、TLS 憑證及預定頁面功能。依任務再檢查登入與授權。保存服務網址、方法、時間與實際結果,讓 Echo 往返與應用可用性各有證據。

概念 Q&A

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