前言

对ctf中出现的压缩包加密破解方式做个总结

属性隐藏看二进制ZIP伪加密暴力遍历明文攻击CRC32碰撞进制转换隐藏信息图片中隐藏压缩包

1、属性隐藏

很简单 就是在属性的注释里有密码

2、看二进制

用winhex打开 搜索字符pass 、 key 等 查看是否有含有压缩包密码

3、ZIP伪加密

一个ZIP文件由三个部分组成:

压缩源文件数据区压缩源文件目录区压缩源文件目录结束标志。

zip伪加密:

在文件头的加密标志位做修改打开文件时识被别为加密压缩包

具体如下:

压缩源文件数据区 50 4B 03 04 是头文件的标志 (0x04034b50) 00 00 全局方式标记(判断有无加密的重要标志)

压缩文件目录区 50 4B 01 02 目录中文件头标志(0x02014b50) 00 00 全局方式标记(有无加密的重要标志,更改这里就可以进行伪加密了,改为 09 00 打开就会提示有密码了)

压缩源文件目录结束标志 50 4B 05 06 目录结束标记

辨别真假加密:

无加密 压缩源文件数据区的全局加密应当为 00 00 且压缩源文件目录区的全局方式标记应当为00 00

假加密 压缩源文件数据区的全局加密应当为 00 00 且压缩文件目录区的全局方式标记应当为 09 00

真加密 压缩源文件数据区的全局加密应当为 09 00 且压缩源文件目录区的全局方式应当为 09 00

破解方法

winrar修复功能winhex打开修改标志位

4、暴力遍历

Windows下用的是ARCHPR 除了纯暴力 还有掩码、字典等功能

5、明文攻击

已知zip中的一个文件(文件大小要大于12Byte)或者已经通过其他手段知道zip加密文件中的某些内容时 因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的 所以可以用已知文件来找加密密钥 用ARCHPR或者AZPR进行明文攻击

过程

flag.txt是加密压缩包里的flag.txt的明文,一般是对比CRC是否一样将flag.txt压缩成.zip文件在软件中填入相应的路径即可开始进行明文攻击

例题 攻防世界 Misc高手进阶区 3分题 miscmisc

6、CRC32碰撞

CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值 在产生CRC32时,源数据块的每一位都参与了运算 因此即使数据块中只有一位发生改变也会得到不同的CRC32值 利用这个原理如果文件字节长度比较短的话,可以尝试CRC32爆破

碰撞脚本

#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

7、进制转换隐藏信息

当发现开头是PK的时候 说明是ZIP文件

进行进制转换 再用winhex保存为zip

8、图片中隐藏压缩包

以jpg格式的图片为例

一个完整的 JPG 文件由 FF D8 开头,FF D9结尾图片浏览器会忽略 FF D9 以后的内容因此可以在 JPG 文件中加入其他文件

用kali的binwalk指令

然后用foremost分离即可

结语

对压缩包加密破解做了个小结

Copyright © 2088 俄罗斯世界杯主题曲_世界杯下一届 - pin8pin8.com All Rights Reserved.
友情链接