使用什麼演算法在受編輯保護的 Microsoft Office(特別是 Word)文件中產生 32 位元密碼金鑰?

使用什麼演算法在受編輯保護的 Microsoft Office(特別是 Word)文件中產生 32 位元密碼金鑰?

如果您儲存具有編輯保護的舊版(.doc 時代)Word 文檔,您可以找到儲存在文件中的密碼金鑰。

為了方便起見,可以透過儲存到 .xml 或 .html 檔案並檢查文字來源來找到它(但您也可以使用十六進位編輯器從原始 .doc 中將其拉出)。例如,使用密碼“password”,您將在來源中找到以下內容:

<w:documentProtection w:edit="forms" w:enforcement="on" w:unprotectPassword="147A83AF"/>

使用什麼演算法來產生這個 32 位元十六進位金鑰?

答案1

我無法使用目前的 Office 安裝重現該輸出。至少該值應該代表“密碼”

考慮到這些來源:

看起來那些舊版本正在使用散列和加密的組合。看來您必須更多地檢查該文件才能弄清楚它實際使用的組合類型。

InfoSecSee對此有相當不錯的描述: InfoSecSee Office 密碼演算法文檔

這似乎與 PenTestCorner 的清單相符:

  • Office 97-03(MD5+RC4,oldoffice$0,oldoffice$1): 標誌 -m 9700
  • Office 97-03(MD5+RC4,碰撞模式#1):標誌-m 9710
  • Office 97-03(MD5+RC4,碰撞模式#2):標誌-m 9720
  • 辦公室 97-03(SHA1+RC4,oldoffice$3,oldoffice$4): 標誌 -m 9800
  • Office 97-03(SHA1+RC4,碰撞模式#1):標誌 -m 9810
  • Office 97-03(SHA1+RC4,碰撞模式#2):標誌 -m 9820
  • Office 2007:標誌-m 9400
  • Office 2010:標誌-m 9500
  • Office 2013:標誌-m 9600

您必須檢查“Office2John”或 hashcat 的實作方式的具體細節,以進一步弄清楚如何確定使用什麼演算法等。

相關內容