如何提取加密 PDF 文件中的哈希?

信息安全 哈希 pdf
2021-08-14 18:44:53

据我所知,加密的 PDF文件不会在其中存储解密密码,而是与该密码相关联的哈希值。

在审核安全性时,破解 PDF 文件密码的一个很好的尝试是提取此哈希并对其进行暴力破解,例如使用HashCat 之类的程序。

什么是提取 PDF文件中的哈希以便使用 HashCat 等进行审计的正确方法?

John the Ripper 的答案 也可能是有效的,但我更喜欢 HashCat 格式,因为在 Windows 中使GPU 计算工作很容易,并且使用OCLHashCat(HashCat 的 GPU 版本)进行暴力破解。John the Ripper 也有 GPU 版本,但 JTR 没有 Windows 版本,至少具有 GPU 增强功能。

1个回答

2017 年 12 月 21 日更新

脚本 pdf2john.py 不再存在。它已被 perl 版本pdf2john.pl取代。


摘自HashCat Forums,此方法适用于我(需要 Perl):

--从John the Ripper套件下载 pdf2john.pl(OCLHashCatJohn the Ripper 使用相同的哈希格式):

wget https://github.com/magnumripper/JohnTheRipper/archive/bleeding-jumbo.zip  
unzip bleeding-jumbo.zip  

--使用它从您的 .pdf 文件中提取哈希:

perl JohnTheRipper-bleeding-jumbo/run/pdf2john.pl MyPDF.pdf > MyPDF-Hash.txt

MyPDF-Hash.txt--必须编辑输出文件原来的会是这样的:

MyPDF.pdf:$pdf$4*4*128*1028*1*16*652fc762fdb12c47a5f90ddd2b99b809*32*dd86d858f914809078a4a47348d32c0fc4e9c08042a10e6434b48b698de7731f*32*3c1e693526d5bc8da15b99eea6cbc6ed2c2397e23e2c39d1974fdc004c588cff:::::MyPDF.pdf

所以使用你喜欢的编辑器:

nano MyPDF-Hash.txt
notepad MyPDF-Hash.txt

并且只留下双冒号内的部分 :

$pdf$4*4*128*1028*1*16*652fc762fdb12c47a5f90ddd2b99b809*32*dd86d858f914809078a4a47348d32c0fc4e9c08042a10e6434b48b698de7731f*32*3c1e693526d5bc8da15b99eea6cbc6ed2c2397e23e2c39d1974fdc004c588cff

--提示:您可以通过使用(UnxUtils 版本,如果您是从 Windows 执行此操作)一步完成提取和编辑:sed

perl JohnTheRipper-bleeding-jumbo/run/pdf2john.pl MyPDF.pdf | sed "s/::.*$//" | sed "s/^.*://" > MyPDF-Hash.txt

MyPDF-Hash.txt--您的文件现在可以与OCLHashCat (或 John the Ripper)一起使用。

笔记:

  • 测试在 CygWin (Windows) 上工作。
  • 测试在 Kali 和 Ubuntu Linux 上工作。