文中將介紹若是利用開源工具、python代碼等秒破加密的pdf文件。python
過程分析工具
由於pdf文件加密的密碼是隨機的,並且密碼不長。首先,咱們須要指導pdf的加密方式。加密
pdfid.py能夠查看pdf文件的加密方式:3d
pdf-parser.py能夠讓咱們瞭解更多信息:blog
加密信息在obj 26:ip
咱們能夠得出結論使用的標準加密器。這種加密方法用的密鑰是40bit的(注:通常會有字典記錄:/length40,可是這裏沒有出現)。get
爲了保證pdf文件的機密性能夠對文件進行加密,而用user密碼加密的pdf文件須要提供加密密碼才能夠打開。而owner密碼加密的pdf文件能夠不提供密碼打開,可是打開後的pdf文件會有一些限制,好比不能打印等。hash
QPDF是一款用於肯定pdf文件機密的方式。it
QPDF的輸出是invalid password,這說明pdf是用user 密碼加密的。io
做者寫過不少關閉解密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工具了,這裏用的命令是:
使用的參數有:
工具破解的結果是:
破解的密碼是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