看我如何輕鬆破解加密PDF

文中將介紹若是利用開源工具、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工具了,這裏用的命令是:

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

使用的參數有:

 
  1. –potfile-path=encryption_test.pot : dedicated pot 文件是默認的 
  2. -m 10400 : 用於破解40-bit PDF加密方式 
  3. -a 3 : 暴力破解 
  4. ?a?a?a?a?a?a : 假設密碼是6位數字字母字符 
  5. -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

相關文章
相關標籤/搜索