John the Ripper(简称John)是一款功能强大的开源密码破解工具,支持多种哈希算法和加密格式,在渗透测试与安全审计中应用广泛。本文将详细演示如何利用John恢复常见的PDF、Word文档、ZIP压缩包以及WIFI密码。

恢复PDF文档密码
首先,我们模拟恢复一个加密PDF文件的密码。通过以下命令创建一个密码为xiaoyaozi123的PDF文件:
echo “Xiaoyaozi” > ~/kali.txt
enscript -p ~/kali.ps ~/kali.txt
ps2pdf -sOwnerPassword=xiaoyaozi123 -sUserPassword=xiaoyaozi123 ~/kali.ps ~/kali.pdf
生成的kali.pdf文件在打开时会提示输入密码。

提取PDF哈希值
使用John工具包中自带的pdf2john.py脚本,从受保护的PDF文件中提取可破解的哈希值。
python3 /usr/share/john/pdf2john.py ~/kali.pdf > ~/project/pdf_hash.txt
破解密码
接下来,使用John配合密码字典wordlist.txt对提取的哈希进行字典攻击。
john --wordlist=~/project/wordlist.txt ~/project/pdf_hash.txt
破解成功后,使用以下命令查看找到的密码:
john --show ~/project/pdf_hash.txt
恢复Word文档密码
对于遗忘密码的Word文档(DOCX格式),恢复流程类似。首先,使用office2john脚本从文档中提取哈希。
python3 /usr/share/john/office2john.py document.docx > hash.txt
注意替换为实际文件路径。
破解密码
使用John加载密码列表进行破解。
john --wordlist=/usr/share/john/password.lst hash.txt
此方法同样适用于加密的Excel和PowerPoint文件。
恢复ZIP压缩包密码
创建一个带密码的ZIP压缩包。
zip -e kali.zip secret_file.docx

提取ZIP哈希值
使用zip2john工具提取压缩包的哈希。
zip2john kali.zip > zip_hash.txt

破解密码
john --wordlist=/usr/share/john/password.lst zip_hash.txt

恢复WIFI密码
在获取到目标WiFi的握手包(如使用wifite等工具抓取的.cap文件)后,可借助John进行离线破解。
转换握手包格式
首先,使用hcxpcaptool将抓包文件转换为John支持的格式。
hcxpcaptool -z output.john input.cap
破解WPA/WPA2密码
使用John加载密码字典进行破解。
john --wordlist=/root/passwords.txt --format=wpapsk output.john