在數位鑑識與資安事件應變(Incident Response, IR)中,靜態的圖片與檔案只是事後留下的痕跡;當攻擊正在發生時,網路流量(Network Traffic) 才是最真實的動態現場。攻擊者如何入侵?執行了哪些指令?傳送或竊取了什麼敏感資料?所有的答案都完整紀錄在網路封包(Packets)裡。
今天我們將正式進入網路流量鑑識的領域,介紹資安領域必學的神級工具 Wireshark。我們將學習如何解析 .pcap / .pcapng 封包檔,並掌握靈魂核心——Display Filter(顯示過濾器) 語法,從成千上萬條流量中迅速定位出關鍵資訊。
透過概念解析與工具操作,掌握以下網路流量鑑識核心技能:
在流量鑑識中,我們最常處理的檔案格式為 .pcap 或 .pcapng(Packet Capture)。當我們使用 Wireshark 開啟封包檔時,中間的「封包詳細資訊面板(Packet Details)」會由上至下完整對應 OSI 七層模型的架構:
Wireshark 的過濾器分為「抓取過濾器(Capture Filter)」與「顯示過濾器(Display Filter)」。進行數位鑑識時,最關鍵的是顯示過濾器:
| 過濾需求 | 常用過濾器語法 (Display Filter) | 說明與範例 |
|---|---|---|
| 指定通訊協定 | http / dns / tcp / icmp |
僅顯示特定的應用層或傳輸層協定封包 |
| 指定 IP 位址 | ip.addr == 192.168.1.1 |
篩選來源或目的為該 IP 的所有通訊 |
| 指定來源 / 目的 IP | ip.src == 10.0.0.1 ip.dst == 10.0.0.2 |
精準篩選封包發送方或接收方 |
| 指定 Port 通訊埠 | tcp.port == 80 udp.port == 53 |
篩選特定服務(如 HTTP 80、DNS 53) |
| 邏輯組合條件 | http && ip.src == 192.168.1.5 |
使用 && (AND)、|| (OR)、! (NOT) 組合條件 |
| 搜尋 HTTP 請求 | http.request.method == "POST" |
專門尋找表單提交或登入認證請求 |
| 關鍵字模糊搜尋 | frame contains "picoCTF" |
全文搜尋封包內容是否包含指定字串 |
capture.pcapng 封包檔,找出隱藏在網路通訊中的 Flag。在提供的 .pcapng 封包檔中,存在大量的網路傳輸紀錄,目標是從中找出隱藏的敏感資訊(Flag)。
開啟 shark1.pcapng 後,首先觀察到大量的 HTTP POST 請求(埠號 5985):
/wsman/subscriptions/...
multipart/encrypted;protocol="application/HTTP-Kerberos-session-encrypted"
這些流量為 Windows Remote Management (WinRM) 透過 Kerberos Session Key 加密的背景事件轉送(WEF)流量,無法直接透視內容。
為了排除 WinRM 加密雜訊,在 Wireshark 顯示過濾器(Display Filter)輸入:
tcp.port != 5985
套用過濾器後,成功定位到一組明文 HTTP 通訊(Frame No. 823 - 827):
Client IP: 192.168.38.104
Server IP: 18.222.37.134
HTTP Method: GET / HTTP/1.1
HTTP Response: 200 OK (text/html)
於 No. 823 封包點擊右鍵:Follow -> TCP Stream(Stream 5),查看伺服器回傳的 HTML 網頁回應內容:
HTTP/1.1 200 OK
Date: Mon, 10 Aug 2020 01:51:45 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 47
Content-Type: text/html
Gur synt vf npnqrzl{c33xno00_1_f33_h_qrnqorrs}

觀察字串格式 Gur synt vf...,判定為凱撒密碼位移 13 位的 ROT13 編碼。
解密對照:
Gur synt vf -> The flag is
npnqrzl -> academy
c33xno00 -> c33kbc00 (peekaboo)
1 -> 1
f33_h -> s33_u (see u)
qrnqorrs -> deadbeef (經典 Hex Magic Value)
academy{c33kbc00_1_s33_u_deadbeef}