標籤:

看我如何破解加密PDF

文中將介紹如果利用開源工具、python代碼等秒破加密的pdf文件。

過程分析

因為pdf文件加密的密碼是隨機的,而且密碼不長。首先,我們需要指導pdf的加密方式。

pdfid.py可以查看pdf文件的加密方式:

pdf-parser.py可以讓我們了解更多信息:

加密信息在obj 26:

我們可以得出結論使用的標準加密器。這種加密方法用的密鑰是40bit的(註:一般會有字典記錄:/length40,但是這裡沒有出現)。

為了保證pdf文件的機密性可以對文件進行加密,而用user密碼加密的pdf文件需要提供加密密碼才可以打開。而owner密碼加密的pdf文件可以不提供密碼打開,但是打開後的pdf文件會有一些限制,比如不能列印等。

QPDF是一款用於確定pdf文件機密的方式。

QPDF的輸出是invalid password,這說明pdf是用user 密碼加密的。

作者寫過很多關閉解密pdf文件的blog,但是使用的方法大多數是暴力破解,文章中作者用一種新的工具hashcat來破解密碼。

首先,需要從pdf文件中提取需要破解的hash值,作者用了pdf2john.py來完成這個操作。註:因為pdf2john.py在運行中會出現一些問題,比如如果/length不指定,就不能產生40bit密鑰的hash值。作者用打過補丁的pdf2john.py文件解決了默認40位密鑰的問題。

下面是作者從pdf文件中提取到的hash值:

這個格式是比較適合 John the Ripper,因為如果是hashcat呢,就只需要hash(field 2),而不需要其他域。

下面就提取field 2的內容(也可以用awk替換csv-cut.py):

可以把輸出保存在「encryption_test – CONFIDENTIAL.hash」中。

然後就可以用hashcat工具了,這裡用的命令是:

hashcat-4.0.0hashcat64.exe --potfile-path=encryption_test.pot -m 10400 -a 3 -i "encryption_test - CONFIDENTIAL.hash" ?a?a?a?a?a?an

使用的參數有:

–potfile-path=encryption_test.pot : dedicated pot 文件是默認的n-m 10400 : 用於破解40-bit PDF加密方式n-a 3 : 暴力破解n?a?a?a?a?a?a : 假設密碼是6位數字字母字元n-i : 這個選項意味著密碼不一定是6位,也可以是1,2,3,4,5位n

工具破解的結果是:

破解的密碼是1806。

然後用QPDF進行驗證:

結論

得出的結論是:用40bit加密的4位字元user密碼保護的pdf文件,幾秒鐘就可以用免費的,開源工具破解了。

下面是一些破解加密pdf文件的開源工具:

Pdf工具地址:blog.didierstevens.com/

pdf-parser下載地址:didierstevens.com/files

Makepdf下載地址:didierstevens.com/files

pdfid下載地址:didierstevens.com/files

對破解加密pdf有興趣的朋友可以查看:

Cracking Encrypted PDFs – Part 2

blog.didierstevens.com/

blog.didierstevens.com/

如若轉載,請註明原文地址: 4hou.com/technology/951 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

CTF | 那些比較好玩的stego(正傳)
js 可以跨域得到 cookie?QQ 郵箱被一封郵件黑了?
如何針對PC端的應用軟體進行安全測試?
墨子號等組成量子通訊網路,保證絕對的信息安全,那我們還要學習信息安全,密碼學和可信計算之類的專業么?

TAG:信息安全 |