ZIP深入明文攻击 已更新(2021湖湘杯某取证题&美团鱿鱼游戏)

ZIP深入明文攻击

misc解题过程中会遇到一些明文攻击的题目,这里借鉴了大佬的博客(大佬),下面介绍一下我对深入明文攻击的理解:

1.想要实现深入明文攻击的条件:

  • 至少已知明文的12个字节及偏移,其中至少8字节需要连续。
  • 明文对应的文件加密方式为ZipCrypto Store,deflate也行,不过最后需要利用脚本实现图片转换

2.约束:
Winrar(v5.80)、7zip(v19.00)默认状态下加密使用的就是AES256算法,直接排除。360压缩(v4.0.0.1220)、好压(v6.2)使用的是ZipCrypto,不固定使用Store或Deflate(如果要固定使用ZipCrypto Store算法加密,可以在压缩的时候指定压缩方式为“存储”)。

3.使用的工具:bkcrack

bkcrack的安装:

bkcrack安装:
apt install cmake -y
cmake .
make     //在src下生成bkcrack文件
cp bkcrack /usr/sbin/bkcrack    //作为系统命令使用

也就是说在压缩文件满足一定的条件,且知道被加密文件的相关信息的情况下,可以解密。

湖湘杯 某取证题

这里看一下前半段flag的解密,pslist查看到存在wireshark,dumpfiles出来,foremost分离可以看到其中有一个压缩包内存在加密的两张图片。
在这里插入图片描述这里查看一下zip的信息:使用7z压缩包

在这里插入图片描述这里是jpg图片,利用jpg的文件头:FFD8FFE000104A4649460001

使用命令:

echo -n "FFD8FFE000104A4649460001" | xxd -r -ps >key   

参数解释:

n:     不换行输出
xxd:   用于用二进制或十六进制显示文件的内容
r:      把xxd的十六进制输出内容转换回原文件的二进制内容。
p:      以 postscript的连续十六进制转储输出,这也叫做纯十六进制转储。
s:      从infile的绝对或者相对偏移量开始. + 表示相对于标 输入当前的位置 (如果不标准输入就没有意义了). – 表示从档桉末尾 (如果和 + 连用: 从标准输入当前位置) 向前数一些字符, 从那个地方开始. 如果没有 -s 选项, xxd 从当前位置开始.

得到解密key,利用key对压缩文件中的图片解密

time bkcrack -C 1.zip -c t.jpg -p key -o 0

参数解释:

bkcrack常用参数:
-c 提取的密文部分(也可以指定a.jpg)
-p 提取的明文部分
-x 压缩包内目标文件的偏移地址  部分已知明文值
-C 加密压缩包
-o offset  -p参数指定的明文在压缩包内目标文件的偏移量
-time  加上time参数方便计算爆破时间

跑了10几分钟,可以得到解密密钥(并不是压缩解密密码)
b0a90b36 14dd97b9 f5d648cf
在这里插入图片描述
利用解密密钥解开a.jpg,得到a1.jpg,不过由于是inflate加密,无法直接看到,使用自带的inflate脚本可以看到

bkcrack -C 1.zip -c a.jpg  -k b0a90b36 14dd97b9 f5d648cf -d a1.jpg
python3 inflate.py < a1.jpg > 2.jpg 

在这里插入图片描述在这里插入图片描述
这一题第二张图片(flag的后半段)通过命令搜索图片,一个个导出来即可得到,最后拼接起来即为flag

美团ctf(鱿鱼游戏)

在这里插入图片描述在这里插入图片描述

  • 首先可以看到这里的加密方法符合预期,同时表示暴力无法解决问题,提供了zip文件中的信息:flagornot.txt,可以尝试去使用深入明文解密
echo -n "flagornot.txt" > plain.txt 自己创建一个txt文件就可以
bkcrack -C 1.zip -c flagornot.zip -p plain.txt -o 30 -x 0 504B0304

参数解释:

n : 不换行输出
C :待解压缩包
c : 提取的密文部分
p : 利用的明文
o : 表示txt文件在压缩文件flagornot.zip中的偏移量,这里txt文件在zip文件中的偏移量都是30(随便找了两个可以看到都是一样的)
在这里插入图片描述在这里插入图片描述
x : 表示flagornot.zip在总压缩文件中的偏移量
在这里插入图片描述

  • 可以看到解出了解密必要的三个key:

683a571e f954e70c 49da18ac
在这里插入图片描述

  • 下一步就是利用key进行解密
bkcrack -C 1.zip -c flagornot.zip -k 683a571e f954e70c 49da18ac -d 4.zip

在这里插入图片描述利用得到的txt文件可以winrar压缩成zip包进行普通明文解密尝试一下。
报错的原因是打开1.zip的是bandzip而不是winrar,winrar压缩过的才能明文解密,这里结果都是一样的,也就无伤大雅了。
在这里插入图片描述

  • 对于图片和某取证题是一样的办法(图中3.jpg是之前得到的)
bkcrack -C 1.zip -c PinkSoldiers.jpg -k 683a571e f954e70c 49da18ac -d 2.jpg
python3 inflate.py <2.jpg> flag.jpg  

在这里插入图片描述

  • 再拿水印工具看一下即可得到flag:

在这里插入图片描述结论:这里可以多去找找其他压缩包试试,一句话,没有绝对的安全

再次感谢大佬

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YnG_t0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值