筆者目前正在日本大阪旅行,但身為資訊鐵人,就算人在國外也絕對不能斷更!帶著筆電跨國連線實作反而有一個意外的彩蛋:因為跨海網路路由的關係,從日本發送封包到其他國家的延遲 (Latency) 會與在台灣時截然不同,這正是網路世界最真實的物理現象。
回到正題,昨天我們啟動 Wireshark 後,你會發現就算你什麼都沒做,網卡也會每秒攔截到成百上千個背景封包。要在這片茫茫「封包海」中找到駭客攻擊的痕跡,我們必須熟練掌握 Wireshark 最強大的武器——顯示過濾器 (Display Filter)。
icmp)最簡單的過濾方式,就是直接輸入你要尋找的「通訊協定名稱」。
【實作練習】
我們先在背景使用終端機執行 ping -c 4 8.8.8.8 與 curl http://example.com 製造混合流量。接著停止擷取,並在 Wireshark 上方的過濾列輸入小寫的 icmp。

畫面解析:
輸入 icmp 後,過濾列的背景會變成綠色,這代表你的語法完全正確。(如果打錯字,背景會變成紅色警告你)。按下 Enter 套用後,下方幾百個封包瞬間被清空,只留下剛剛我們用 Ping 指令產生的 Echo (ping) request 與 reply 封包。
ip.addr)在資安事件調查中,我們經常會得到一個「惡意 IP 名單」。此時我們需要鎖定這個特定 IP 的所有進出流量。
【實作練習】
在過濾列輸入:
ip.addr == 8.8.8.8
(注意:在 Wireshark 的過濾語法中,要使用兩個等號 == 來表示「等於」)

畫面解析:
套用後,畫面只會留下 Source (來源) 或 Destination (目的地) 為 8.8.8.8 的封包。如果你只想看「單向」的流量,也可以進階使用 ip.src == 8.8.8.8 (只看來源) 或是 ip.dst == 8.8.8.8 (只看目的)。
tcp.port)有時候我們不在乎 IP 是多少,而是想針對特定的「服務」進行側錄。例如我們只想看未加密的 HTTP 網頁流量,就可以鎖定 TCP 的 Port 80。
【實作練習】
在過濾列輸入:
tcp.port == 80

畫面解析:
這個過濾器完美篩選出了我們剛剛用 curl 產生的網頁流量。更棒的是,你還能在這個列表中,再次清楚看到我們在 Day 9 學過的 TCP 三方交握過程 ([SYN], [SYN, ACK], [ACK])!
今天我們學會了 Wireshark 中最核心的三種顯示過濾器:協定 (icmp)、IP 位址 (ip.addr) 與通訊埠 (tcp.port)。只要熟練這三個語法,你就能在未來複雜的資安演練中,一秒剔除雜訊,精準撈出你需要的關鍵封包。
我們現在已經能看見封包、過濾封包了。但封包裡面的「資料」到底長什麼樣子?明天 [Day 13],我們將教大家如何使用 Wireshark 的 「Follow TCP Stream (追蹤 TCP 串流)」 功能,讓你直接看穿未加密通訊的對話內容!我們明天見(繼續去吃大阪燒啦)。