ZIP明文攻击

ZIP明文攻击


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


相关工具

  • archpr(Advanced Archive Password Recovery)
  • keyunluo/pkcrack
  • kimci86/bkcrack
    wget https://github.com/kimci86/bkcrack/releases/download/v1.3.1/bkcrack-1.3.1-Linux.tar.gz
    tar -zxvf bkcrack-1.3.1-Linux.tar.gz
    cp bkcrack-1.3.1-Linux/bkcrack /usr/sbin/bkcrack
    bkcrack -h
    

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

ZIP 的加密算法

ZIP 的加密算法大致分为两种 ZipCrypto 和 AES-256, 各自又分 Deflate 和 Store。

  • ZipCrypto Deflate
  • ZipCrypto Store
  • AES-256 Deflate
  • AES-256 Store

ZipCrypto 算是传统的 zip 加密方式。

只有使用 ZipCrypto Deflate /Store 才可以使用 ZIP 已知明文攻击进行破解。

AES256-Deflate/AES256-Store 加密的文件不适用于明文攻击。


ZIP 明文攻击的条件

至少已知明文的 12 个字节及偏移,其中至少 8 字节需要连续。

明文对应的文件加密方式为 ZipCrypto Store


比较特殊的明文攻击案例

在知道目标文件部分连续明文的情况下,去爆破密钥

例如 flag.txt

flag{4d6ba874-881d-4c04-b7c3-5e974b81e86a

加密成 flag.zip 加密时注意使用 Deflate 压缩方法,ZipCrypto 加密算法

给出部分连续明文

flag{4d6ba874-881d-4c0

采用 bkcrack 进行爆破

echo "flag{4d6ba874-881d-4c0" > plain1.txt
bkcrack -C flag.zip -c flag.txt -p plain1.txt

# 爆破得到zip的密钥如下
1b10db88 4b87405b 0a41939c

利用密钥进行解密

bkcrack -C flag.zip -c flag.txt -k 1b10db88 4b87405b 0a41939c -d flag1.txt

cat flag1.txt

如果是已知部分且不连续可以采用 -o 偏移量参数组合使用

bkcrack -C flag.zip -c flag.txt -p plain1.txt -o 1 -x 29 37346636

# -c 提取的密文部分
# -p 提取的明文部分
# -x 压缩包内目标文件的偏移地址  部分已知明文值
# -C 加密压缩包
# -o offset  -p参数指定的明文在压缩包内目标文件的偏移量

Source & Reference

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

posted @ 2022-10-30 14:13  syscallwww  阅读(1464)  评论(0编辑  收藏  举报