看我如何轻松破解加密PDF
2018-01-20 00:00
501 查看
文中将介绍如果利用开源工具、python代码等秒破加密的pdf文件。
过程分析
因为pdf文件加密的密码是随机的,而且密码不长。首先,我们需要指导pdf的加密方式。
pdfid.py可以查看pdf文件的加密方式:
pdf-parser.py可以让我们了解更多信息:
加密信息在obj26:
我们可以得出结论使用的标准加密器。这种加密方法用的密钥是40bit的(注:一般会有字典记录:/length40,但是这里没有出现)。
为了保证pdf文件的机密性可以对文件进行加密,而用user密码加密的pdf文件需要提供加密密码才可以打开。而owner密码加密的pdf文件可以不提供密码打开,但是打开后的pdf文件会有一些限制,比如不能打印等。
QPDF是一款用于确定pdf文件机密的方式。
QPDF的输出是invalidpassword,这说明pdf是用user密码加密的。
作者写过很多关闭解密pdf文件的blog,但是使用的方法大多数是暴力破解,文章中作者用一种新的工具hashcat来破解密码。
首先,需要从pdf文件中提取需要破解的hash值,作者用了pdf2john.py来完成这个操作。注:因为pdf2john.py在运行中会出现一些问题,比如如果/length不指定,就不能产生40bit密钥的hash值。作者用打过补丁的pdf2john.py文件解决了默认40位密钥的问题。
下面是作者从pdf文件中提取到的hash值:
这个格式是比较适合JohntheRipper,因为如果是hashcat呢,就只需要hash(field2),而不需要其他域。
下面就提取field2的内容(也可以用awk替换csv-cut.py):
可以把输出保存在“encryption_test–CONFIDENTIAL.hash”中。
然后就可以用hashcat工具了,这里用的命令是:
hashcat-4.0.0hashcat64.exe--potfile-path=encryption_test.pot-m10400-a3-i"encryption_test-CONFIDENTIAL.hash"?a?a?a?a?a?a
使用的参数有:
–potfile-path=encryption_test.pot:dedicatedpot文件是默认的
-m10400:用于破解40-bitPDF加密方式
-a3:暴力破解
?a?a?a?a?a?a:假设密码是6位数字字母字符
-i:这个选项意味着密码不一定是6位,也可以是1,2,3,4,5位
工具破解的结果是:
破解的密码是1806。
然后用QPDF进行验证:
结论
得出的结论是:用40bit加密的4位字符user密码保护的pdf文件,几秒钟就可以用免费的,开源工具破解了。
下面是一些破解加密pdf文件的开源工具:
Pdf工具地址:https://blog.didierstevens.com/programs/pdf-tools/
pdf-parser下载地址:http://didierstevens.com/files/software/pdf-parser_V0_6_8.zip
Makepdf下载地址:http://didierstevens.com/files/software/make-pdf_V0_1_7.zip
pdfid下载地址:http://didierstevens.com/files/software/pdfid_v0_2_2.zip
过程分析
因为pdf文件加密的密码是随机的,而且密码不长。首先,我们需要指导pdf的加密方式。
pdfid.py可以查看pdf文件的加密方式:
pdf-parser.py可以让我们了解更多信息:
加密信息在obj26:
我们可以得出结论使用的标准加密器。这种加密方法用的密钥是40bit的(注:一般会有字典记录:/length40,但是这里没有出现)。
为了保证pdf文件的机密性可以对文件进行加密,而用user密码加密的pdf文件需要提供加密密码才可以打开。而owner密码加密的pdf文件可以不提供密码打开,但是打开后的pdf文件会有一些限制,比如不能打印等。
QPDF是一款用于确定pdf文件机密的方式。
QPDF的输出是invalidpassword,这说明pdf是用user密码加密的。
作者写过很多关闭解密pdf文件的blog,但是使用的方法大多数是暴力破解,文章中作者用一种新的工具hashcat来破解密码。
首先,需要从pdf文件中提取需要破解的hash值,作者用了pdf2john.py来完成这个操作。注:因为pdf2john.py在运行中会出现一些问题,比如如果/length不指定,就不能产生40bit密钥的hash值。作者用打过补丁的pdf2john.py文件解决了默认40位密钥的问题。
下面是作者从pdf文件中提取到的hash值:
这个格式是比较适合JohntheRipper,因为如果是hashcat呢,就只需要hash(field2),而不需要其他域。
下面就提取field2的内容(也可以用awk替换csv-cut.py):
可以把输出保存在“encryption_test–CONFIDENTIAL.hash”中。
然后就可以用hashcat工具了,这里用的命令是:
hashcat-4.0.0hashcat64.exe--potfile-path=encryption_test.pot-m10400-a3-i"encryption_test-CONFIDENTIAL.hash"?a?a?a?a?a?a
使用的参数有:
–potfile-path=encryption_test.pot:dedicatedpot文件是默认的
-m10400:用于破解40-bitPDF加密方式
-a3:暴力破解
?a?a?a?a?a?a:假设密码是6位数字字母字符
-i:这个选项意味着密码不一定是6位,也可以是1,2,3,4,5位
工具破解的结果是:
破解的密码是1806。
然后用QPDF进行验证:
结论
得出的结论是:用40bit加密的4位字符user密码保护的pdf文件,几秒钟就可以用免费的,开源工具破解了。
下面是一些破解加密pdf文件的开源工具:
Pdf工具地址:
pdf-parser下载地址:
Makepdf下载地址:
pdfid下载地址:
相关文章推荐
- 轻松解决加密的PDF如何编辑简单技巧
- [转]有关如何破解PDF加密文件的教程
- 如何打印加密的PDF文件?
- 如何轻松的破解excel 2016工作表密码
- 破解加密PDF文件pdfcrack
- PDF编辑之加密的PDF文档如何解除密码和进行编辑
- 教你如何破解你家附近的wep wpa wpa2加密方式的密码~~~转的懒得写了。
- 如何在PDF文件中对文字进行加密处理
- 破解加密的PDF文件
- 如何用Python写一个暴力破解加密压缩包的程序
- 如何破解加密的EFS文件
- 三秒钟快速破解加密的PDF文件
- 破解打开证书加密的PDF文档-数字证书(电子书私钥)下载和导入教程
- PDF 已加密 如何去除限制
- 简单操作破解PDF加密文件
- 轻松破解加密网页
- 选一个适合自己的加密芯片,加密IC,如何才能真正的做到不被破解。
- 数字证书(电子书私钥)的导入方法-如何打开证书加密的PDF文档
- python—如何使用post进行登录操作与非对称加密的破解
- 细节:如何轻松影响他人,pdf电子书,百度云盘分享下载,罗辑思维推荐书