昨天和大家分享了 HxD Editor 讓大家可以嘗試觀察一個檔案中的 Hex Value。今天我們就來嘗試看看能不能從截取的封包中找到檔案內容!
首先大家可以先準備一份文件,不管是一般的 Word、PPT、PDF、Excel 都可以,或是圖片(盡量以 .png
為主)也沒問題。總之準備一個你準備要傳送的檔案就行了。
我們今天的實作流程大概如下:
那我們就準備開始吧!這邊我會先準備一份 Word,大家也可以跟著以下步驟照著做。
這邊要先跟大家做一個簡單的介紹,在 Linux 的環境中是沒有 Microsoft Office 這種工具,但是有一個替代方案叫做「LibreOffice」。
兩者之間的差異可以觀察下方圖表:
類別 | Linux(LibreOffice) | Windows(Microsoft Office) |
---|---|---|
文件處理軟體 | Writer(.odt、.docx) | Word(.docx) |
試算表軟體 | Calc(.ods、.xlsx) | Excel(.xlsx) |
簡報製作軟體 | Impress(.odp、.pptx) | PowerPoint(.pptx) |
不過 Kali Linux 並沒有預先安裝 LibreOffice,所以我們這次用比較土法煉鋼的方式,先在 Windows 建立好檔案後再 scp
傳送給 Kali Linux 假裝這是由 Kali Linux 產生的文件。
eth0
,截取 Kali Linux 傳送的封包。scp -r test.docx <your_win_username>@[Windows IPv4]:/C:/Users/<your_win_username>/Desktop
# 舉例:scp -r test.docx ray@[172.58.126.102]:/C:/Users/ray/Desktop
此時你的 WireShark 應該會抓取到大量 SSHv2 加密的封包,其中也包含了 TCP 的三次握手機制。
你會發現裡面有幾個封包的 length 特別大,那我們就可以大膽猜測,這兩個封包應該就是夾帶 .docx
的檔案。所以我們將他另存成 .raw
檔,準備丟進 HxD Editor 做分析。
你可以先多選這兩個封包 → File → Export Specified Packets
此時 WireShark 會彈出一個視窗,依照以下步驟將封包檔案儲存下來:
.pcapng
或是 .pcap
Selected Packets only
只匯出我們剛剛選擇的兩個封包Displayed
從剛才抓取的封包流展示中取出Save
儲存封包檔案這時候你就會在桌面上看到一個這樣的檔案
接著我們打開 HxD Editor 將這個封包檔案匯入,我們準備來揭露這個 SSH 加密封包的 Hex Value。
接著我們就會看到這串密密麻麻的 Hex Value,這就是我們剛才傳輸過程中「可能夾帶 .docx
檔案的封包內容」。
在做這個實驗的時候,我們已經清楚知道使用 scp
傳輸檔案是使用 SSH 加密方式,這種加密方式如果沒有 session key 的話我們是無法得知明文的。我們可以從以下幾個地方找到 SSH 相關的金鑰檔案:
C:\Users\<your_win_username\.ssh
~/.ssh
在這兩個地方分別會找到 ssh-ed25519
、ssh-rsa
、ecdsa-sha2-nistp256
這三個金鑰檔案,但是我們還是沒有辦法依靠這個線索把加密的檔案破解出來。
因為現代 SSH 的加密方式是透過「迪菲-赫爾曼(Diffie–Hellman)」也就是我們之前提到過的 DH 加密演算法。這種演算法的特性就是「前向保密(PFS)」,意思是他是不可逆的加密方式。更不用說 scp
還是臨時性的 DH 加密,也就是說只有每次傳送封包的時候產生一組新的公鑰、私鑰。
所以我目前的能力還不能把這個 .docx
破解出來(汗)。
但不代表這件事情做不到!其實是有辦法可以繞過這個加密法的,需要用到 memory dump、ssh-agent hook、或修改 OpenSSH 以導出 session keys。如果有大神可以在下方幫忙解答,我會非常感謝!
原本是想說用最常見的檔案傳送方式( scp
)來介紹,但沒想到 SSH 加密方式的複雜度和特性。導致這次實驗失敗,但是我們也相對了解一件事情,那就是 SSH 加密真的非常安全,要破解也不容易!
如果真的對這次實驗有很強的熱忱或想玩玩看,其實也可選擇用比較簡單的傳輸方式來實作看看,例如:HTTP、TCP,說不定就真的解開了!
相信有看過這篇文章後的你,也會對封包拆解、分析有比較深入的了解!如果說真的有辦法將密文解開,那我們其實可以靠 HxD Editor 編輯 Hex Value 明文,從而得到 .docx
哦!
askUbuntu 討論區
DH 加密演算法
Michael Horn 的 Youtube 頻道:LibreOffice 介紹