明文攻击
大致原理是当你不知道一个zip的密码,但是你有zip中的一个已知文件(文件大小要大于12Byte)或者已经通过其他手段知道zip加密文件中的某些内容时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件。
bkcrack使用方法
bkcrack常用参数:
-c 压缩包里加密的文件(或提取的密文数据)
-p 提取的明文部分
-x 压缩包内目标文件的偏移地址 部分已知明文值
-C 加密压缩包
-o offset
-p 参数指定的明文在压缩包内目标文件的偏移量
压缩包要采用 ZipCrypto 类(如 Store)算法
列出条目
列出条目名称和元数据列表
bkcrack -L cipher.zip
从文件中加载数据
有一个文件cipherfile ,其中有密码文本(从对应于加密头的12个字节开始)和plainfile ,其中有已知的明文,可以这样运行bkcrack
bkcrack -c cipherfile -p plainfile
稀疏的明文
如果你知道很少的连续明文(在8到11个字节之间),但知道其他一些已知偏移量的一些字节,你可以提供这些信息以达到总共12个已知字节的要求。要做到这一点,请使用-x 标志,后面跟一个偏移量和十六进制的字节。
bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21
解密&通过密钥获取文件
将明文的内容保存为plain.txt文件
参考例子的bkcrack解法
解密加密的压缩文件
也可以用你选择的密码生成一个新的加密档案。
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip password
这样生成的档案可以用新的密码用任何压缩文件工具来提取。它假定每个条目最初都是用相同的密码加密的。
恢复密码
考虑到内部密钥,bkcrack可以尝试找到指定长度的原始密码。
bkcrack -k 1ded830c 24454157 7213b8c5 -r 10 ?p