b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

破解Zip加密文件的几种常用方法

电脑杂谈  发布时间:2020-04-08 10:02:16  来源:网络整理

zip文件怎么破解密码_zip的密码怎么破解_zip文件密码快速破解

在互联网浪潮中,您可能遇到过这种情况:

我从Internet上下载了一个zip文件,最后发现它受到密码保护,或者我使用密码对非常重要的zip文件进行了加密,但是过了一会我忘记了密码,无法打开它. 目前,我们可能需要破解此加密文件.

随着计算机性能的提高,许可能会发现找到zip文件的密码很容易.

我将从网络安全狗和CTF播放器的角度分析如何查找/破解Zip文件〜

让我们从最简单的方法开始. 许可能没有注意文件属性列. 有时,加密器会将密码放入属性中,如下图:

我们可以看到该Zip压缩文件的密码仅为〜

Zip伪加密是修改文件头中的加密标志,然后在打开文件时将其识别为加密的压缩包〜

Zip文件包含三个部分:

压缩的源文件数据区域+压缩的源文件目录区域+压缩的源文件目录结束标记

让我们看一下这个例子:

这里写图片描述

压缩源文件数据区域:

50 4B 03 04:这是头文件标记(0x04034b50) 
14 00:解压文件所需 pkware 版本 
00 00:全局方式位标记(有无加密) 
08 00:压缩方式 
5A 7E:最后修改文件时间 
F7 46:最后修改文件日期 
16 B5 80 14:CRC-32校验(1480B516) 
19 00 00 00:压缩后尺寸(25) 
17 00 00 00:未压缩尺寸(23) 
07 00:文件名长度 
00 00:扩展记录长度 
6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500 
压缩源文件目录区: 
50 4B 01 02:目录中文件文件头标记(0x02014b50) 
3F 00:压缩使用的 pkware 版本 
14 00:解压文件所需 pkware 版本 
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了) 
08 00:压缩方式 
5A 7E:最后修改文件时间 
F7 46:最后修改文件日期 
16 B5 80 14:CRC-32校验(1480B516) 
19 00 00 00:压缩后尺寸(25) 
17 00 00 00:未压缩尺寸(23) 
07 00:文件名长度 
24 00:扩展字段长度 
00 00:文件注释长度 
00 00:磁盘开始号 
00 00:内部文件属性 
20 00 00 00:外部文件属性 
00 00 00 00:局部头部偏移量 
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001 

压缩的源文件目录的结束标记:

50 4B 05 06:目录结束标记 
00 00:当前磁盘编号 
00 00:目录区开始磁盘编号 
01 00:本磁盘上纪录总数 
01 00:目录区中纪录总数 
59 00 00 00:目录区尺寸大小 
3E 00 00 00:目录区对第一张磁盘的偏移量 
00 00:ZIP 文件注释长度

我们可以大胆猜测:

zip文件怎么破解密码_zip文件密码快速破解_zip的密码怎么破解

如果适当修改了zip文件的文件头或加密标志,则可能会更改文件的可读性〜

我们可以使用十六进制编辑器添加文件头或文件结尾,我们可以修复zip.

上述方法比较麻烦并且不容易操作. 在Mac OS和某些Linux(例如Kali)系统中,您可以直接打开伪加密的zip压缩包. 目前,我们希望有一种简单而通用的方法该怎么办?

我们建议采用以下方法:

使用ZipCenOp.jar来检测伪加密. 如果解密后可以成功打开zip包,则将其伪加密,否则提示错误

我已经将下载的ZipCenOp.jar下载到本地,单击下载〜

这里是一个例子,下面是一个加密文件,原因很简单,文件夹后面是一个*〜

如何使用ZipCenOp.jar(需要Java环境):

java -jar ZipCenOp.jar r xxx.zip

我们使用上面的命令将其解压缩,如下所示:

让我们再次查看该文件:

发现文件夹后的*消失了,表明此文件是伪加密文件〜

当然,我们也可以对Zip文件进行伪加密〜

java -jar ZipCenOp.jar e xxx.zip

zip文件怎么破解密码_zip的密码怎么破解_zip文件密码快速破解

顾名思义,就是在知道遇到正确密码的情况下,一一尝试所有可以在所选集合中组成的密码〜

字典攻击的效率比爆破的效率略高,这是因为常用的密码存储在字典中,因此避免了爆破时浪费在翻滚键盘上的时间〜

如果已知密码的某些位是已知的,例如,如果已知6位密码的第三位是a,则可以构造掩码攻击? a ???,掩码攻击的原理等同于第一个的构造. 3位数的字典是a,所以掩码攻击的效率也比爆破的效率高得多

对于这种压缩问题,我在Windows下使用ARCHPR〜

单击开始爆炸. 〜以下是一个演示. 炸出密码是MIT花了4秒钟〜

所谓的字典攻击实际上是在正确选择字典后的很短时间内找到密码. 如果您需要字典,朋友可以和我聊天,我可以将它发送给您〜

示例如下:

如果对Wifi密码破解感兴趣的学生可以注意我的B站ID: Angel_Kitty,我录制了有关Wifi破解的视频zip文件怎么破解密码,则视频ID为:

掩码攻击由一定数量的已知密码构成. 在下面的示例中zip文件怎么破解密码,我们构造了?? T进行爆破,只花了81ms即可破解〜

明文攻击是一种更有效的攻击方法. 一般原则是,当您不知道zip的密码但在zip中有一个已知文件(文件大小大于12Byte)或通过其他方式知道zip加密文件中的某些内容时,因为同一zip归档文件中的所有文件都是使用相同的加密密钥加密的,所以您可以使用已知文件来找到该加密密钥,然后使用该密钥来解锁其他加密文件〜

这时我们可以尝试使用ARCHPR或pkcrack进行纯文本攻击〜

例如,下载链接在此处

我们可以看到readme.txt是加密压缩包中readme.txt的明文,因此可以进行明文攻击〜

zip文件密码快速破解_zip的密码怎么破解_zip文件怎么破解密码

将readme.txt压缩为.zip文件,然后填写软件中的相应路径以发起纯文本攻击. 在这里,我们使用ARCHPR来演示〜

一些朋友可能会说ARCHPR无效,通常是错误的版本〜

如果仍然有问题怎么办?然后尝试使用pkcrack

下载链接在这里: 〜conrad / krypto / pkcrack.html

该网站似乎每天都会崩溃,所以我将文件上传到了本地〜

Windows版本:

Linux版本:

某些朋友在Windows下会出现以下错误:

那是因为pkcrack只支持32位,因此需要在XP系统下运行此操作

如果选择Linux,则不必那么麻烦,只需直接安装即可,这是一种更快的方法〜

我已经将项目上传到Github,文件在这里:

让我们写一个shell脚本〜

#!/bin/bash -ex

wget https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-1.2.2.tar.gz
tar xzf pkcrack-1.2.2.tar.gz
cd pkcrack-1.2.2/src
make
mkdir -p ../../bin
cp extract findkey makekey pkcrack zipdecrypt ../../bin
cd ../../

保存文件,更改为install.sh,然后转到当前目录,为其授予执行权限x

chmod 777 install.sh

zip文件怎么破解密码_zip文件密码快速破解_zip的密码怎么破解

或直接:

chmod u+x install.sh

然后运行install.sh

./install.sh

然后将在当前目录中生成一个bin文件夹. 我们直接进入bin文件夹,看到有一个pkcrack文件,然后直接以纯文本格式破解该文件

./pkcrack -c "answer/key.txt" -p readme.txt -C Desktop.zip -P readme.zip

-C:要破解的目标文件(含路径)
-c:破解文件中的明文文件的名字(其路径不包括系统路径,从zip文件一层开始)
-P:压缩后的明文文件
-p:压缩的明文文件中明文文件的名字(也就是readme.txt在readme.zip中的位置)

有关其他选项,请参见. /pkcrack--help

pkcrack的另一个重要选项是-d,后跟文件名,例如crypto.zip,它指示解密的zip文件的输出. 据说此命令可以加快解密时间,我没有尝试过,所以花了两个小时没有用完密码QAQ

CRC32: CRC本身表示“冗余校验码”,CRC32表示它将生成32位(8位十六进制数)校验值.

生成CRC32时,源数据块的每一位都参与运算,因此即使数据块中只有一位发生变化,也将获得不同的CRC32值. 使用此原理,我们可以直接爆破加密文件的内容〜

有关具体算法的实现,请参见百度百科:

让我们看一个CRC32冲突的示例:

标志是4位数字,并且CRC32值为56EA988D

我们可以编写以下脚本:

#coding=utf=8
import binascii
real = 0x56EA988D
for y in range(1000,9999):
    if real == (binascii.crc32(str(y)) & 0xffffffff):
        print(y)
print('End')

在Python 2.x版本中,binascii.crc32计算的CRC值范围是[-2 ^ 31,2 ^ 31-1]之间的有符号整数,以便与常规CRC结果进行比较. 需要转换为无符号整数,因此添加&0xffffffff进行转换. 如果是Python 3.x版本,则计算结果为[0,2 ^ 32-1]之间的无符号整数,因此无需添加&0xffffffff.

脚本的运行结果如下,这是压缩文件的内容:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-168078-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 曹共公
        曹共公

        年年换中国豆苗大学生

      热点图片
      拼命载入中...