[Mac/Windows] 手動破解 Office 2003 (.doc, .xls) 文件中的 VBA 密碼保護

[Mac/Windows] 手動破解 Office 2003 (.doc, .xls) 文件中的 VBA 密碼保護

今天想要來分析一個 Office 2003 文件 (.doc) 中,所包含的巨集程式~

當然我們可以用 oletools 工具取出巨集的部分

不過又有點想直接用 Office 提供的 VB 工具,直接看巨集的內容…

 

先用 Office 2007 開啟這個 .doc 檔案後,選擇 View > Macros > View Macros:

20160712_120026

 

可以看到這檔案裡有個 autoopen 的巨集,這正是我們想檢視的東西,

按下 Edit 鈕來編輯看看:

20160712_115725

 

結果跳出了密碼輸入的對話框,原來這 VBA 巨集是可以加密碼保護的!

但問題是,我當然不會知道這病毒樣本裡的 VBA 密碼是多少呀:

20160712_115730

 

先上網試用了幾個破密碼保護的軟體,

如 VBA Password Recovery MasterReset VBA Password 等等,

但這些軟體全都是要付費才能使用,線上只能下載 demo 版本,並不能真的解出密碼…

 

繼續搜尋了一下,發現要破解 Office 2003 版本 (.doc, .xls) 的 VBA 密碼,

其實相當的容易,只要修改 Office 檔案的幾個地方就行了,

那就來試試看吧,省省荷包~

(但若是 Office 2007 版本以上的格式像 .docx, .xlsx 的話,就不能套用這個方法了)

 

1. 編輯 Office 檔案

可以參考 使用 hexcurse 來編輯二進位 (binary) 檔案 這篇,

用 hexcurse 打開 .doc 檔案,搜尋 CMG 這個 ASCII 字串,

應該可以看到 CMG=…, DPB=…, GC=… 這幾個字串:

Screen Shot 2016-07-13 at 12.44.15 AM

 

將這三個 = 都改成句號 “.” 後儲存 (最好是儲存成新的 .doc 檔,不要破壞原檔):

Screen Shot 2016-07-13 at 12.44.38 AM  

 

上面這個動作可以改用 sed 完成,不過只能用 Linux 的 GNU sed,

用 Mac 內附的 sed 是不行的~

假設輸入檔名是 input.doc,輸出檔名是 crack.doc,可以執行下面指令:

sed -e 's/CMG=/CMG./' -e 's/DPB=/DPB./' -e 's/GC=/GC./' input.doc > crack.doc

 

2. 開啟修改後的 Office 檔案

在 Windows 上使用 Office 來開啟修改過的 .doc 檔案,

選擇 View > Macros > View Macros,會跳出一個視窗,

說這個 VBA 專案被我們改過的那幾個 key 是無效的,但可以按 Yes 繼續載入這個檔案:

20160712_143816

 

接著一樣會看到 Macros 視窗,但這時選擇 autoopen 巨集並按下 Edit 後,

密碼保護消失了!不需要輸入密碼,就可以看到 VBA 巨集的內容了:

20160712_144347  

 

這邊要注意的是必須用 Windows 版本的 Office 來開啟才行,Mac 版的 Office 是不行的~

(我用的是 Windows 的 Office 2007 版本)

不過話說回來,倒是有點好奇像 oletools 工具 是怎麼避開密碼保護,

直接取出 VBA 巨集的呢?有空再來研究看看吧~

 

參考資料:

stackoverflow: Is there a way to crack the password on an Excel VBA Project?

Unix Sed Tutorial: How To Execute Multiple Sed Commands

 

(本頁面已被瀏覽過 1,364 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料