看我如何破解加密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工具地址: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有興趣的朋友可以查看:
Cracking Encrypted PDFs – Part 2
https://blog.didierstevens.com/2017/12/28/cracking-encrypted-pdfs-part-3/
https://blog.didierstevens.com/2017/12/26/cracking-encrypted-pdfs-part-1/
如若轉載,請註明原文地址: http://www.4hou.com/technology/9515.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※CTF | 那些比較好玩的stego(正傳)
※js 可以跨域得到 cookie?QQ 郵箱被一封郵件黑了?
※如何針對PC端的應用軟體進行安全測試?
※墨子號等組成量子通訊網路,保證絕對的信息安全,那我們還要學習信息安全,密碼學和可信計算之類的專業么?
TAG:信息安全 |