Если вы сохраните устаревший документ Word (эпохи .doc) с защитой от редактирования, вы можете найти ключ пароля, сохраненный внутри файла.
Для удобства это можно найти, сохранив в файл .xml или .html и проверив исходный текст (но вы также можете вытащить его из исходного .doc с помощью шестнадцатеричного редактора). Например, с паролем "password" вы найдете в исходном тексте следующее:
<w:documentProtection w:edit="forms" w:enforcement="on" w:unprotectPassword="147A83AF"/>
Какой алгоритм используется для создания этого ключа, который, по-видимому, представляет собой 32-битное шестнадцатеричное число?
решение1
Я не могу воспроизвести этот вывод с текущей установкой Office. По крайней мере, это значение должно означать "пароль" согласноэтот.
Принимая во внимание эти источники:
- PenTestCorner - Взлом хэшей паролей Microsoft Office (97-03, 2007, 2010, 2013) с помощью Hashcat
- InfoSecSee — взлом защищенных паролем документов Word, Excel и PowerPoint
Похоже, что эти старые версии используют комбинацию хеширования и шифрования. Похоже, вам придется немного больше проверить файл, чтобы выяснить, какую комбинацию он на самом деле использует.
У InfoSecSee есть довольно приятная картина по этому поводу:
Похоже, это соответствует списку из PenTestCorner:
- Офис 97-03(MD5+RC4,oldoffice$0,oldoffice$1): флаг -m 9700
- Офис 97-03(MD5+RC4,режим коллайдера#1): флаг -m 9710
- Офис 97-03(MD5+RC4,режим коллайдера#2): флаг -m 9720
- Office 97-03(SHA1+RC4,oldoffice$3,oldoffice$4): флаг -m 9800
- Офис 97-03(SHA1+RC4,режим коллайдера#1): флаг -m 9810
- Офис 97-03(SHA1+RC4,режим коллайдера#2): флаг -m 9820
- Офис 2007: флаг -m 9400
- Офис 2010: флаг -m 9500
- Офис 2013: флаг -m 9600
Вам придется проверить особенности реализации «Office2John» или hashcat, чтобы понять, как определить, какой алгоритм используется и т. д.