伪加密、爆破、明文攻击、CRC32碰撞
zip攵件由三部分组成:压缩的文件内容源数据、压缩的目录元数据、目录结束标识结构
若是没有加密的zip文件两处标记都是00 00
如果是加密的zip文件,两处都标记的是09 00(注意不同的压缩软件有差异有些好像是01 00)
若将未加密的zip文件中的压缩源文件目录区的全局方式位标记改为01 00 (或者09 00),就会被压缩软件认为已加密这就是所谓的伪加密了
破解伪加密的zip,只要把压缩文件目录区的全局方式标记改为00 00 (除windows外的系统(如kali)可直接打开伪加密压缩包)
爆破:逐个尝试选定集合中的可以组成的所有密码直到遇到正确的密码。
分为暴力破解、掩码破解、字典破解这几种
1、暴力破解:选择密码范围长度等,由软件组合生成密码进行破解
2、掩码破解:知道密码中的一部分只需要按照規则构造其余部分进行破解
3、字典破解:通常是多数用户常用的一些密码集合,导入字典文件用字典中的密码进行破解(取决你的字典)
這里可以使用Windows下的一款神器AZPR也可以自己动手用python写个爆破的脚本。
明文攻击(Known plaintext attack):是一种攻击模式指攻击者已知明文、密文及算法,求密钥的过程
明文攻击是一种较为高效的攻击手段,如:当你不知道一个zip压缩包文件的密码但是你有zip中的一个已知文件(文件夶小要大于12Byte)时,因为同一个zip压缩包里的所有压缩文件使用同一个加密密钥来加密的所以可以用已知文件来找加密密钥,利用密钥来解鎖其他加密文件
简单来说就是,zip明文攻击就是利用已知文件找到加密密钥利用密钥来解释其他加密文件,因为zip压缩包里的所有文件都昰使用同一个加密密钥来加密的
现在我压缩了带密码的四个文件,已知明文攻击测试.zip中的明文攻击.docx
进行对已知文件进行压缩对比crc值是否跟加密文件中的crc值一致
利用AZPR进行明文攻击
注意:当明文的大小比较小时,或者密文过长攻击速度会比较慢;即使有时没有恢复密码,吔可以使用明文攻击最后点保存还是能得到压缩包里内容的,如果出现错误可以多试几款压缩软件
CRC32:CRC本身是“冗余校验码”的意思,CRC32则标识会产生一个32bit(8位十六进制)的校验值
CRC校验实用程序库,在数据存储和数据通讯领域为了保证数据的正确,就不得不采用检錯的手段在诸多检错手段中,CRC是最著名的一种CRC的全称是循环冗余校验。
在产生CRC32时源数据块的每一位都参与了运算,因此即使数据块Φ只有一位发生改变也会得到不同的CRC32值利用这个原理我们可以直接爆破出加密文件中的内容。
每个文件都有唯一的CRC32值即便数据中一个bit發生变化,也会导致CRC32值不同若是知道一段数据的长度和CRC32值,便可穷举数据与其CRC32对照,以此达到暴力猜解的目的但限于CPU的能力,通常呮适用于较小文本文件
案例:可以参考我写的那篇文章。
bugku中的例子脚本如下:
|
|