昨天我們切換到了網管人員的「上帝視角」,學會用統計工具在海量流量中找出異常端點。今天,我們要搖身一變,切換成「資安鑑識人員 / 駭客」的視角!
在前面的實作中,我們已經看過 HTTP 明碼傳輸會洩漏帳號密碼。但如果不只是文字,連「下載圖片、傳送文件」的過程,我們有沒有辦法把那些被切碎成千百塊的封包,重新「黏」回原本的檔案呢?
答案是肯定的!Wireshark 內建了一個堪稱魔法的功能——匯出物件 (Export Objects)。
在開始今天的實作前,筆者原本想示範攔截 W3C 網站的一張 GIF 圖片。但當我用 wget http://www.w3.org/... 下載時,卻發現 Wireshark 的匯出清單裡沒有圖片,只有一個 text/html 的網頁檔!
這正是我們在 [Day 18] 學過的「HTTPS 加密防護」在真實世界的完美展現。
因為現代網站極度重視資安,W3C 伺服器強制把我的 http:// 請求回傳了 301 Moved Permanently (轉址),逼迫我的電腦改用 https:// 重新下載。一旦切換到 HTTPS,封包內容就被 TLS 加密成亂碼了,Wireshark 自然無法還原裡面的圖片。
這印證了一個真理:強制 HTTPS 是保護使用者檔案不被側錄的唯一解法。
為了讓我們的「駭客還原實戰」能順利進行,我們改用一個不強制轉址的測試網站 httpbin.org。
【實作練習】
http 顯示過濾器並開始擷取。wget 指令下載一張測試圖片:
wget http://httpbin.org/image/png

畫面解析:
終端機顯示下載完成,大小約為 8090 bytes (7.9K)。
而在背後的 Wireshark,我們清楚抓到了 GET /image/png 的請求,以及伺服器回傳 200 OK (PNG) 的封包。這代表圖片的二進位資料,已經毫無防備地流進了我們的網卡中。
檔案已經在網線中被我們攔截了,現在我們要把打碎的 TCP 封包還原成實體的 PNG 圖片。
【實作練習】

畫面解析:
這是一個超級強大的視窗!Wireshark 會自動掃描整份錄影檔,把所有透過 HTTP 傳輸的獨立檔案通通列出來。
你可以清楚看到我們剛剛攔截到的檔案:來自 httpbin.org、Content Type 為 image/png,而且大小 8,090 bytes 與我們終端機顯示的一模一樣!
最後一步,我們要把它存回硬碟裡驗證。
【實作練習】
image/png,按下 「Save (儲存)」。stolen.png 並存到桌面上。
畫面解析:
大成功!一隻可愛的小豬圖片完美呈現在我們眼前。
我們沒有入侵對方的電腦、沒有接觸對方的瀏覽器,僅僅只是「在同一個網路上側錄封包」,就成功竊取並還原了對方下載的完整檔案。
今天我們解鎖了 Wireshark 的 Export Objects 功能,親眼見證了封包重組還原檔案的威力。這個功能在資安鑑識 (Forensics) 中極度重要,當公司內部疑似有人中了勒索病毒或是惡意軟體時,資安人員就會利用這招,把網路流量中暗藏的 .exe 惡意執行檔給完整拔出來進行逆向分析。
到今天為止,我們已經把常見的網路行為都分析過一輪了。但如果網路遭受了「惡意攻擊」呢?
明天 [Day 22],我們將進入第三階段的尾聲,實戰解析駭客最常用的起手式:「Nmap 網路掃描與通訊埠探測 (Port Scanning)」,看看駭客敲門時,封包到底長什麼樣子!我們明天見。