在前面的 27 天裡,我們都是依賴 Wireshark 的圖形化介面來觀察封包。
但在真實的資安防禦(藍隊)或伺服器維運中,當我們面對遭到 DDoS 攻擊、動輒數 GB 甚至數十 GB 的海量流量日誌時,如果你嘗試用滑鼠點開它,Wireshark 絕對會直接卡死甚至崩潰。
這時候,資安專家會捨棄滑鼠,改用 Wireshark 的終端機雙胞胎兄弟——TShark,並結合 Linux 強大的管線命令 (|) 來進行極速的大數據分析。今天,我們就來體驗一下資安維運工程師 (DevSecOps) 的日常!
首先,我們需要在 Ubuntu 中安裝 TShark 工具。
【實作練習】
sudo apt install tshark -y 進行安裝。<是/Yes>)

接下來,我們要讓終端機幫我們側錄 100 個封包並存成檔案,作為後續腳本分析的素材。
⚠️ Linux 權限小陷阱:
如果你直接下指令將檔案存在家目錄,TShark 基於安全機制(避免被惡意封包提權),會在寫入的瞬間「降級」為普通權限,導致跳出 Permission denied。最快的破解法,就是將存檔路徑改到允許任何人寫入的暫存區 /tmp。
【實作練習】
為了確保有流量,可以先在背景開個瀏覽器隨便點幾個網頁,接著輸入指令:
sudo tshark -i enp0s3 -c 100 -w /tmp/traffic.pcap

(指令解析:-i 指定網卡,-c 100 代表抓滿 100 個就停止,-w 代表寫入檔案)
圖形化的 Wireshark 會顯示所有資訊,但寫自動化腳本時,我們只需要「乾淨的關鍵資料」。我們要請 TShark 把剛剛那份檔案裡的所有「來源 IP」單獨抽出來。
【實作練習】
輸入以下指令讀取檔案並提取欄位(因為檔案是 sudo 建立的,讀取時也要加上 sudo):
sudo tshark -r /tmp/traffic.pcap -T fields -e ip.src

(指令解析:-r 讀取檔案,-T fields 告訴系統我要提取欄位,-e ip.src 指定只要來源 IP)
太棒了!終端機瞬間印出了一長串純粹的 IP 位址列表。把乾淨的資料抽出來,這是寫腳本自動化的最重要前提。
這是今天最精華的實戰!假設這份日誌是一場 DDoS 攻擊的紀錄,我們要在茫茫 IP 中,極速找出發送最多封包的惡意來源。
我們將 TShark 的輸出結果,透過管線 | 餵給 Linux 內建的資料處理指令。
【實作練習】
輸入這串超帥氣的組合技指令:
sudo tshark -r /tmp/traffic.pcap -T fields -e ip.src | sort | uniq -c | sort -nr | head -n 5

指令邏輯完全解析:
tshark ...:先抽出所有的來源 IP。| sort:將所有 IP 進行字母排序(把相同的 IP 聚集在一起)。| uniq -c:將相鄰且重複的 IP 進行合併,並計算 (-c) 出現的次數。| sort -nr:針對計算出來的「次數」,進行數字大小 (-n) 的反向 (-r) 排序,也就是由大排到小。| head -n 5:只取排行榜的前 5 名。畫面解析:
看到了嗎?我們完全沒有打開 Wireshark、沒有按下滑鼠,單靠這一行指令,終端機就漂亮地輸出了排行榜!
左邊是封包數量,右邊是來源 IP。清楚顯示了我的本機 10.0.2.15 以 33 個封包位居榜首。在真實的戰場上,資安人員就是用這行指令,在一秒鐘內從幾百萬個封包中揪出攻擊者的 IP 並進行封鎖!
今天我們體驗了 TShark 的強大威力。圖形化介面適合用來進行「單一封包的微觀鑑識」,而終端機指令則適合用來進行「海量資料的巨觀統計」。兩者相輔相成,才是資安高手的完全體。
鐵人賽已經來到了倒數第二天!我們已經掌握了從理論到實戰、從圖形介面到腳本分析的所有技能。
明天 [Day 29],我們將帶來這 30 天系列文的終極大魔王考驗:「Wireshark 總複習:挑戰一份真實的惡意流量樣本」。我們明天見!