压缩包明文爆破
前置知识
明文攻击核心条件
- 加密方式:仅支持
ZipCrypto加密(AES 加密不支持) - 压缩模式:
Store(仅存储)模式成功率 100%,Deflate(压缩)模式需匹配压缩算法 - 已知明文:至少 12 字节(其中 8 字节连续),可通过已知片段 + 特征字符凑整
工具准备
使用工具bkcrack
下载链接https://github.com/kimci86/bkcrack/releases
下载完之后解压缩,将.exe文件的目录添加到环境变量中即可
例题
给了一个.txt和.zip文件

flag.txt内容是
- 先查看压缩包基础信息
|
|
-
分析: 加密方式:ZipCrypto(支持明文攻击) 压缩模式:Store(仅存储,无压缩,攻击成功率 100%) 文件信息:flag.txt原始大小 29 字节,CRC32 校验值1c277376 结论:完全满足明文攻击条件,是最优破解场景
-
整理已知明文与十六进制转换 根据题目给出的flag.txt格式,提取已知字符并转换为十六进制(ASCII 编码),用于攻击:
-
已知明文合计 12 字节(8+4),满足bkcrack最低要求(至少 12 字节,含 8 字节连续)
-
字节偏移为flag.txt文件内相对偏移(非压缩包全局偏移)
-
构建指令
-
1 2# 核心攻击命令:拼接开头+末尾已知明文 bkcrack -C flag.zip -c flag.txt -x 0 "666C61677B593075" -x 25 "2121217D"
-
-
爆破成功打开解压缩后的文件

bkcrack常用指令
一、前置信息查询(必做!确认攻击可行性)
| 指令 | 作用 | 示例 |
|---|---|---|
bkcrack -L 加密包.zip |
列出压缩包内文件的加密算法、压缩模式、CRC32、大小等,判断是否支持明文攻击(仅 ZipCrypto 有效) | bkcrack -L flag.zip |
bkcrack -h |
查看所有参数说明(查用法) | bkcrack -h |
关键输出判断:
- 支持攻击:
Encryption: ZipCrypto (Zip 2.0)+Compression: Store/Deflate - 不支持:
Encryption: AES-xxx (WinZip)
二、核心:明文攻击(获取密钥)
1. 完整明文攻击(已知完整明文文件,成功率 100%)
适用于有压缩包内某文件的完整明文版本(如 readme.txt)。
|
|
参数解释:
-C:指定加密压缩包路径(大写 C)-c:压缩包内目标文件名(精确匹配,区分大小写,小写 c)-p:本地完整明文文件路
|
|
2. 部分明文攻击(CTF 最常用,已知片段)
适用于仅知道文件部分内容(如开头 / 结尾),需凑足 ≥12 字节(含 ≥8 字节连续)
|
|
参数解释:-x(eXtend)指定「文件内相对偏移」+ 明文十六进制(无空格)。
示例 1(已知开头 8 字符 + 结尾 4 字符)
|
|
三、密钥操作(攻击成功后)
|
|
参数解释:
-k:填入攻击得到的 3 组密钥(如 33b19021 93c4a78d 9ceed931)-d:解密后输出文件路径
|
|
2. 生成无密码 / 新密码压缩
|
|
参数解释:-U(Update)生成新包,可选指定新密码。
|
|