iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
Security

網管與資安基礎實戰:從 Linux 指令到 Wireshark 封包分析系列 第 27 篇

# [Day 27] CTF 挑戰入門:尋找隱藏在流量中的 Flag (二) - 全域字串搜尋與內容過濾

  • 分享至 

  • xImage
  •  

延續昨天的 CTF 實戰,今天我們要來面對更真實、也更殘酷的競賽情境。

昨天我們因為預先知道駭客使用的是 UDP Port 9999,所以能輕鬆定位並追蹤資料外洩的封包。但在真實的 CTF 比賽或資安鑑識事件中,你拿到的通常是一份高達數百 MB、充滿幾百萬個正常上網流量的巨大封包檔。題目不會告訴你駭客用了什麼協定,更不會告訴你目標 IP 是多少。

要在這種茫茫封包海中撈出機密,我們必須拋棄原本用 IP 或 Port 過濾的習慣,改用 Wireshark 中最強大的兩把武器:「尋找封包 (Find Packet)」與「全域內容過濾 (Contains)」!


一、製造混雜在一般 HTTP 流量中的隱藏 Flag

這次我們不走奇怪的 Port,我們把 Flag 偷偷塞在一個正常的 HTTP POST 請求表單裡,讓它就像一般使用者在網頁上填寫問卷一樣,混入正常的網頁流量中。

【實作練習】

  1. 開啟 Wireshark,選擇對外連線的網卡(如 enp0s3)並開始擷取。
  2. 打開終端機,利用 curl 發送一個帶有隱藏 Flag 的 POST 請求:
    curl -X POST -d "secret_data=CTF{You_Found_Me_By_String}" http://httpbin.org/post
    

https://ithelp.ithome.com.tw/upload/images/20261011/20184351yrQ5qsT14U.png

畫面解析:
指令發送完畢後,終端機顯示伺服器成功接收了資料。而在 Wireshark 中,這個帶有機密的封包就這樣靜靜地躺在 NTP、DNS 與各種 TCP 雜訊之中,等待我們去發掘。


二、使用「尋找封包 (Find Packet)」功能找尋特徵

假設現在我們面對的是幾萬個未知的封包,我們唯一的線索就是:CTF 競賽的過關密碼格式一定是 CTF{...}。

【實作練習】

  1. 停止抓包,按下鍵盤的 Ctrl + F(或點擊選單 Edit -> Find Packet)。
  2. 在彈出的搜尋列中,將最左邊改為 「Packet Details (封包詳細資訊)」,中間改為 「String (字串)」。
  3. 在搜尋框輸入 CTF{,然後點擊「Find (尋找)」。

https://ithelp.ithome.com.tw/upload/images/20261011/2018435134kZsog0xC.png

畫面解析:
太神啦!Wireshark 瞬間幫你從茫茫封包海中,跳轉並鎖定了第 19 號封包。
仔細看下方的詳細資訊窗格,Wireshark 甚至貼心地幫你自動展開了 HTML Form URL Encoded 區塊,並將 Value: CTF{You_Found_Me_By_String} 用橘色高光反白出來。這就是資安鑑識中最基礎的字串特徵搜尋。


三、CTF 必備神技:使用 contains 全域內容過濾

Ctrl + F 雖然好用,但它只能「一個一個跳轉」。如果這個 .pcap 檔案裡有十幾個主辦單位故意放的假 Flag 陷阱,一直按尋找會非常沒效率。
身為專業的封包分析師,我們可以直接用過濾器,把所有「內容包含特定字串」的封包一口氣篩選出來!

【實作練習】

  1. 關閉搜尋列。
  2. 在最上方的綠色「顯示過濾器 (Display Filter)」輸入以下語法:
    frame contains "CTF{"
    
  3. 按下 Enter 執行過濾。

https://ithelp.ithome.com.tw/upload/images/20261011/20184351VBBKwVMSxO.png

畫面解析:
按下 Enter 的瞬間,幾十上百個雜訊封包全部消失了!畫面上乾淨得只剩下兩筆封包(一筆是我們送出的 POST 請求,另一筆是伺服器回傳包含該字串的 200 OK JSON 回應)。

frame contains 是一個極度不講武德的霸道指令。它的意思是:「我不管你是什麼協定、不管你是哪個 Port、不管你在 OSI 模型的哪一層,只要你這整包二進位資料裡面,夾帶著 CTF{ 這個字串,就全部給我顯示出來!」

在 CTF 比賽中,這招通常是拿到未知流量檔後的「起手式第一擊」,往往能直接秒殺許多初階題目!


🎯 今日小結

今天我們學會了如何在不知道任何網路連線資訊(IP、Port、Protocol)的極端劣勢下,單靠「已知特徵字串」來逆向揪出隱藏的封包。frame contains 絕對是你未來在進行網路除錯、資安鑑識時最依賴的終極殺手鐧。

🔜 明日預告

我們在 Day 18 曾說過,HTTPS 的 TLS 加密會把所有內容變成亂碼,連 Wireshark 都看不懂。但如果你在 CTF 比賽中,除了封包檔之外,還拿到了一把「私鑰檔案 (Key)」呢?
明天 [Day 28],我們將挑戰 Wireshark 最硬核的進階魔法:「突破加密防線:匯入金鑰,解密 HTTPS/TLS 流量」!我們明天見。


上一篇
# [Day 26] CTF 挑戰入門:尋找隱藏在流量中的 Flag (一) - UDP 串流重組
下一篇
# [Day 28] 捨棄滑鼠的硬核實戰:結合 TShark 與 Linux 腳本進行極速日誌分析
系列文
網管與資安基礎實戰:從 Linux 指令到 Wireshark 封包分析 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言