編集保護された Microsoft Office (具体的には Word) ドキュメントで 32 ビット パスワード キーを生成するために使用されるアルゴリズムは何ですか?

編集保護された Microsoft Office (具体的には Word) ドキュメントで 32 ビット パスワード キーを生成するために使用されるアルゴリズムは何ですか?

編集保護付きのレガシー (.doc 時代) Word 文書を保存すると、ファイル内に保存されているパスワード キーを見つけることができます。

簡単に見つけるには、.xml または .html ファイルに保存してテキスト ソースを調べます (ただし、16 進エディターを使用して元の .doc から抽出することもできます)。たとえば、パスワードが "password" の場合、ソースには次の内容が見つかります。

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

32 ビットの 16 進数であると思われるこのキーを生成するために使用されるアルゴリズムは何ですか?

答え1

現在のOfficeインストールではその出力を再現できません。少なくともその値は「パスワード」を表すはずです。これ

これらの情報源を考慮すると、

古いバージョンではハッシュと暗号化の組み合わせが使用されているようです。実際にどのような組み合わせが使用されているかを把握するには、ファイルについてもう少し調べる必要があるようです。

InfoSecSee にはこれに関して非常に良い写真があります: InfoSecOffice パスワード アルゴリズムのドキュメントを参照してください

これは 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
  • Office 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 がどのように実装されているかの詳細を確認する必要があります。

関連情報