
CTF 中对压缩包的处理

伪加密修复
工具
010 Editor
修复步骤
把50 4B 03 04 14 00
和50 4B 01 02 1F 00
后面的这两个字节改为00 00
- 修复前:
- 修复后:
CRC32碰撞
工具
攻击条件
被加密的文本文档很小(通常4kb)
爆破多个压缩包中的4字节文件
攻击步骤
这里调用了theonlypwner/crc32,要把下面的脚本放到同一个目录中
1 | import zipfile |
爆破单个文件
攻击步骤
先获取到该文件的CRC码
然后将CRC码带入到下面的命令中运行
1 | python crc32.py reverse [CRC] |
运行得到以下输出(此处以python crc32.py reverse 0x75F90D3A
为例):
1 | 4 bytes: z5Bz {0x7a, 0x35, 0x42, 0x7a} |
明文攻击
工具
ARCHPR
已知完整的明文文件
攻击条件
有一个加密的压缩包以及一个压缩包内存在的文件(可以通过CRC码判断,相同就是同一个文件)
攻击步骤
1. 构造压缩包并处理加密压缩包
先将该已知的文件logo.png
使用相同的方式压缩
然后被攻击包内==仅保留一个已知的文件==,其他文件都删除
2. 明文攻击获取解压密码
在ARCHPR打开处理过的加密压缩包flag.zip
,攻击类型选择明文,明文文件选择刚刚构造好的压缩包logo.zip
如果试了几次都是未找到,那很有可能是压缩软件出了问题
换一个软件压缩logo.png
,然后重复上述操作
这一次就顺利恢复了,这个加密压缩包的密码就是q1w2e3r4
已知少部分明文字节
攻击条件
- 已知12个字节及偏移
- 需获取加密文件中12字节的明文数据及偏移,其中至少8字节需要连续(如文件头、固定格式标识符)。
- 加密算法为 ZipCrypto
- 仅支持传统 ZIP 加密(ZipCrypto),不支持 AES 加密。
- 需确认加密方式为 ZipCrypto Deflate 或 ZipCrypto Store。
攻击步骤(以PNG为例)
1. 构造构造文件头
1 | python -c "import binascii; open('png_header', 'wb').write(binascii.unhexlify('89504E470D0A1A0A0000000D49484452'))" |
2. 提取密文数据
使用 bkcrack
从加密 ZIP 中提取目标文件的密文数据:
1 | bkcrack -C encrypted.zip -c target_file.png -p png_header -o 0 |
-C
:指定加密的 ZIP 文件。-c
:指定 ZIP 中被加密的目标文件(如target_file.png
)。
运行得到以下输出:
1 | bkcrack 1.7.1 - 2024-12-21 |
得到三个密钥:97d30dcc
173b15a8
6e0e7455
3. 使用密钥解密文件
通过恢复的密钥解密目标文件:
1 | bkcrack -C encrypted.zip -c target_file.png -k 97d30dcc 173b15a8 6e0e7455 -d decrypted_data |
-k
:输入恢复的密钥(顺序为key0 key1 key2
)。-d
:指定解密后的输出文件名(如decrypted_data
)。
运行得到以下输出:
1 | bkcrack 1.7.1 - 2024-12-21 |
此时你的根目录下将会出现一个经过解密得到的文件decrypted_data
。
4. 处理解密后的数据
根据加密时的压缩方式,可能需要进一步处理解密后的数据:
场景1:文件以 Store 模式加密(未压缩)
解密后的数据即原始文件,直接重命名即可。场景2:文件以 Deflate 模式加密(需解压)
解密后的数据需要进一步解压,使用tools
文件夹提供Python解压脚本:
1 | python tools/inflate.py < decrypted_data > output.png |
掩码攻击
工具
ARCHPR
攻击条件
已知压缩包密码的长度,还知道密码的其中一部分
攻击步骤
攻击类型选择掩码,左边选择好范围,在右边输入掩码
比如说已知压缩包的密码是以1391040
开头的手机号,那么掩码就可以填1391040????
,这里的?
可以理解为一个占位符
字典爆破
工具
弱口令:
shadowabi/S-BlastingDictionary: 自己搜集的爆破字典,包括常用用户名、密码弱口令、SQL万能密码等
zxcvbn001/password_brute_dictionary: 口令爆破字典,有键盘组合字典、拼音字典、字母与数字混合这三种类型
rootphantomer/Blasting_dictionary: 爆破字典
社工:
- 标题: CTF 中对压缩包的处理
- 作者: Aristore
- 创建于 : 2025-03-11 21:00:00
- 更新于 : 2025-03-25 16:50:52
- 链接: https://www.aristore.top/posts/ZipCracking/
- 版权声明: 版权所有 © Aristore,禁止转载。