萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 電腦入門

Word 文件密碼破解技術原理與實戰:從 HTML 轉存到十六進位編輯器

⚠️ 僅供學習 Office 二進位格式弱點、找回自有遺忘密碼、授權安全研究

Word 97-2003 (.doc) 採用 OLE 複合文件格式,表單保護 (窗體保護) 密碼以 **16 位十六進位雜湊值** 儲存於檔案結構中,存在經典繞過漏洞。Word 2007+ (.docx) 採用 OOXML + AES 加密,**此法完全失效**。本文記錄歷史技術細節供研究參考。

核心漏洞原理

  • 表單保護密碼經雜湊後存為 2 位元組 (16-bit) 值,空間極小 (65,536 種)。
  • 另存為 HTML 時,雜湊值以 `` 標籤明文寫入 HTML 原始碼。
  • 十六進位編輯器直接修改 .doc 二進位中對應位置為 `00 00 00 00 00 00 00 00` (8 位元組 0),即可清空密碼驗證。

方法一:HTML 轉存法 (可視化驗證雜湊值)

  1. 開啟受保護 .doc → 「檔案」→「另存為」→ 存檔類型選 **「網頁 (*.htm; *.html)」** → 儲存。
  2. 用記事本/Notepad++ 開啟產生的 .htm → 搜尋 ``。
  3. 觀察標籤內容,如 `5BCECF7A` (此為密碼 "123" 的雜湊值)。
  4. 此雜湊值可用於驗證密碼猜測,但無法直接逆推明文密碼。

方法二:十六進位編輯器直接清空密碼 (核心實戰)

  1. 備份原始 .doc 檔案 (極重要!)。
  2. 用 **UltraEdit / HxD / 010 Editor / WinHex** 開啟原始 .doc。
  3. 搜尋十六進位序列:**`7A CF CE 5B`** (即 `5BCECF7A` 的小端序列) 或搜尋關鍵字 `UnprotectPassword` 定位區塊。
  4. 找到後,將該 4 位元組**及其後續相關結構共 8 位元組**全部改為 `00 00 00 00 00 00 00 00`。
  5. 儲存檔案 (建議另存新檔 _cracked.doc)。
  6. 用 Word 開啟新檔 → 「工具」→「保護文件」→ 「停止保護」→ 密碼欄留空直接按 Enter/確定 → 保護移除,可自由編輯。

為什麼搜尋 `7A CF CE 5B` 而非 `5B CE CF 7A`?

Intel x86 為**小端序**,記憶體中低位元組在低地址。雜湊值 `0x5BCECF7A` 在檔案中按位元組序存儲為 `7A CF CE 5B`。

關鍵限制與風險

限制說明
僅適用 Word 97-2003 (.doc).docx (OOXML) 採用 AES-128/256 + SHA-1/512 + PBKDF2 100,000 迭代,無此漏洞
僅破解「表單保護/窗體保護」「開啟權限密碼」(檔案加密) 為 RC4 40/128-bit,需暴力/字典破解,此法無效
修改二進位有損壞檔案風險位置偏移/長度錯誤會導致檔案結構損壞無法開啟,務必備份並驗證
Microsoft 未釋出修補程式屬於格式設計缺陷,唯有升級 .docx 格式根治

現代防禦建議

  1. 全面遷移至 **.docx 格式**並啟用「用密碼加密」(AES-256)。
  2. 敏感文件部署 **IRM (資訊權限管理)**,權限綁定 Azure AD/AD RMS 身分。
  3. 禁用舊版二進位格式:群組原則 → Word 選項 → 信任中心 → 檔案封鎖設定 → 勾選「Word 97-2003 二進位文件」→ 「不開啟」。
  4. 定期稽核共享資料夾中是否仍有 .doc 受保護文件,轉換或淘汰。

這段歷史漏洞見證了「安全性無法事後補丁,必須架構於設計之中」。理解其原理,是為了不再重蹈覆轍,而非製造新的風險。

copyright © 萬盛學電腦網 all rights reserved