zip总结
0x00 伪加密
Zip伪加密的出现是因为zip二进制文件中有一位是标记是否加密的。若zip包实际上没有被加密但加密位却是01,那么在打开时就会提示有密码。(Mac OS以及部分Linux可以直接打开)
我们只要用16进制编辑器修改加密标志位为00即可破解。有关Zip文件头协议可以参考附录。
我们还可以利用工具ZipCenOp.jar工具修改,道理是一样的。
0x01 爆破密码
爆破主要是利用工具,结合密码所处域的所有可能性字符串进行爆破。有时我们知道密码的一部分,这时就可以缩小密码域的范围,缩小密码的域可以提升爆破速度,这时可以手工生成字典。
Windows下常用的爆破工具有:
Ziperello
AZPR
生成字典可以手动写脚本,也可以用一些工具,比如kali下的crunch。
0x02 明文攻击
明文攻击的条件是你已经知道压缩包中加密文件的一部分文件(大于12bit),这时就可以进行明文攻击。详细原理不赘述。
在攻击前,拿到了已知文件后可以先用压缩工具对已知文件进行压缩看看CRC32是否和未知加密文件的CRC32一致,若不一致可以考虑换个压缩工具。若一致可进行明文攻击。
攻击也可用AZPR工具进行。
注意:当明文的大小比较小时,攻击速度会比较慢;即使有时没有恢复密码,也可以使用明文攻击,最后点保存还是能得到压缩包里内容的(这点很坑。。)。
0x03 CRC32碰撞
当压缩包密码实在解不出来,但是压缩包内的内容比较短的时候可以用CRC32碰撞。
这里记录一个脚本:python2.7
0x04 压缩包损坏
附录:Zip文件协议
参考:
Last updated
Was this helpful?