在受编辑保护的 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): flag -m 9700
  • Office 97-03(MD5+RC4,collider-mode#1):标志-m 9710
  • Office 97-03(MD5+RC4,collider-mode#2):标志 -m 9720
  • Office 97-03(SHA1 + RC4,oldoffice$3,oldoffice$4):标志-m 9800
  • Office 97-03(SHA1+RC4,collider-mode#1):标志 -m 9810
  • Office 97-03(SHA1+RC4,collider-mode#2):标志 -m 9820
  • Office 2007:标志 -m 9400
  • Office 2010:标志-m 9500
  • Office 2013:标志-m 9600

您必须检查“Office2John”或hashcat的实现细节,以进一步了解如何确定所使用的算法等。

相关内容