進入第四階段後,我們正式踏入許多資安初學者最期待的領域:CTF (Capture The Flag) 網路安全競賽 - 封包鑑識 (Network Forensics)!
在真實的 CTF 競賽中,主辦單位通常會給你一份 .pcap 封包檔。這裡面可能混雜了幾萬個正常與惡意的封包,你的任務就是化身為網路偵探,從中找出隱藏的過關密碼(也就是 Flag,通常格式為 CTF{...})。
在真實世界的駭客攻擊中,這對應到「資料外洩 (Data Exfiltration)」階段。駭客竊取機密後,為了躲避防火牆,經常會把資料藏在不起眼的冷門通訊埠中偷偷傳送。今天,我們不依賴現成的考題,我們要自己製造一個惡意外洩流量,然後再親手把它找出來!
我們將使用 Linux 內建的網路瑞士刀 nc (Netcat),來模擬一隻潛伏在電腦裡的後門程式,正試圖透過冷門的 UDP Port 9999 把機密 Flag 傳送出去。
【實作練習】
lo (Loopback 網卡) 並開始擷取。udp.port == 9999。echo "CTF{Wireshark_Is_My_Superpower}" | nc -u -w 1 127.0.0.1 9999

畫面解析:
指令執行完畢後,Wireshark 畫面上立刻捕捉到了一個傳往 Port 9999 的 UDP 封包。在真實的 CTF 題目中,當你看到這種非標準通訊埠(如 80, 443, 53 以外)的流量,通常就是破案的第一條線索。
假設這是一份 CTF 考題檔案,我們已經定位到可疑的封包,接下來就是要挖出裡面的內容。
【實作練習】
Data 區塊。
畫面解析:
展開 Data 區塊後,請把視線移到下方的「十六進位檢視區」。
左半邊是電腦看的十六進位代碼 (43 54 46 7b...),但右半邊的 ASCII 解碼區,卻隱隱約約拼湊出了 CTF{Wireshark_Is_My_Superpower} 的明文殘影!這就是駭客在資料傳輸時露出的馬腳。
雖然我們在 Data 區塊看到了 Flag,但如果駭客傳送的是一整份長達幾百個封包的機密文件,我們總不能一個一個封包點開來拼湊吧?
這時候,我們就要使出 CTF 選手最愛用的必殺技!
【實作練習】

畫面解析:
Wireshark 瞬間幫我們過濾掉所有無關的網路層與傳輸層標頭雜訊,只把最純粹的「應用層資料」提取出來!畫面上用鮮豔的紅色字體,完美且完整地將駭客偷傳的 CTF{Wireshark_Is_My_Superpower} 呈現在我們眼前。
恭喜你,成功奪下你的第一面 Flag!
今天我們體驗了最基礎的 CTF 封包鑑識題型。只要駭客沒有對外洩的資料進行加密(我們在 Day 25 驗證過 Base64 不算加密),Wireshark 的「追蹤串流 (Follow Stream)」功能就能像魔法一樣,瞬間把網路線裡的對話內容原封不動地倒出來。
今天我們知道要過濾 udp.port == 9999,所以找得很輕鬆。但如果主辦單位給了你一個高達 1GB、裡面有幾百萬個封包的檔案,而且完全不告訴你 Flag 藏在哪裡呢?
明天 [Day 27],我們將帶來:「CTF 挑戰入門:尋找隱藏在流量中的 Flag (二) - 全域字串搜尋與正則表達式」,教你如何在茫茫封包海中,一秒撈出關鍵字!我們明天見。