生活中经常会遇到想要破解一个设有密码的压缩包的情况。就比如网络安全创新实验课的时候,课程中心明明已经有了实验内容的压缩包,还得等到老师讲完一大串内容才能开始计时实验。为了能在计时实验中获得一点多余的时间,我们就需要提前得到压缩包的密码。
这里仅仅针对实验课的场景做一下示范,假设我们拿到的是第二次实验课文件lab2.zip
。首先在Ubuntu下安装两个软件包:
sudo apt install crunch
sudo apt install fcrackzip
第一个是一个字典生成器。可以生成包含我们想要猜测的密码的字典。第二个是zip压缩包的爆破工具。
两者的具体用法不再赘述,可以百度或者用man
命令进行查看。
新建文件zipcracker.sh
,
键入内容:
crunch 4 4 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 > word.txt
#crunch 4 4 -t %%%% >word.txt
sed 's/^/Lab2./' word.txt > word2.txt
fcrackzip -D -p word2.txt -u lab2.zip
这里解释一下,4 4
两个参数代表生成长度为4的字符串,后面一串是可能的字符集合,可以根据需要自行设置,注意要遵循“小写-大写-数字-其他符号”的次序。
接下来一行是将这些长度为4的字符串,增加上Lab2.
的前缀。这是因为每一次实验课的密码,都会是LabX.xxxx
的形式。
最后一行,根据字典word2.txt
,对lab2.zip进行爆破。(注:这里-u参数表示,对可能的密码进行解压尝试,效率较低,如果没有这一项,fcrackzip只会快速显示出所有没有被排除的密钥)
保存之后我们执行这个文件:
可以看到目的达成。用时大概五分钟。
实际生活中如果没有密钥的足够信息,直接拿fcrackzip暴力破解,是不太可能的,因为穷举的种类太多了了。这里默认密码有固定的前缀,因此种数没有那么多。