码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ZIP明文攻击


    ZIP明文攻击


    免责声明

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


    相关工具

    • archpr(Advanced Archive Password Recovery)
    • keyunluo/pkcrack
    • kimci86/bkcrack
      1. wget https://github.com/kimci86/bkcrack/releases/download/v1.3.1/bkcrack-1.3.1-Linux.tar.gz
      2. tar -zxvf bkcrack-1.3.1-Linux.tar.gz
      3. cp bkcrack-1.3.1-Linux/bkcrack /usr/sbin/bkcrack
      4. 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 进行爆破

    1. echo "flag{4d6ba874-881d-4c0" > plain1.txt
    2. bkcrack -C flag.zip -c flag.txt -p plain1.txt
    3. # 爆破得到zip的密钥如下
    4. 1b10db88 4b87405b 0a41939c

    利用密钥进行解密

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

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

    1. bkcrack -C flag.zip -c flag.txt -p plain1.txt -o 1 -x 29 37346636
    2. # -c 提取的密文部分
    3. # -p 提取的明文部分
    4. # -x 压缩包内目标文件的偏移地址 部分已知明文值
    5. # -C 加密压缩包
    6. # -o offset -p参数指定的明文在压缩包内目标文件的偏移量

    Source & Reference

    • ZIP明文攻击获得加密压缩包内文件
    • zip加密的明文攻击
    • ZIP已知明文攻击深入利用

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

    github haidragon

    https://github.com/haidragon

  • 相关阅读:
    一维码和二维码图像优化——提高读码率
    centos软件设置开机启动的方式
    深入C++04:模板编程
    【C语言】结构体内存对齐机制详解
    论文简读 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
    前端--性能优化【下篇】--框架优化与webpack优化
    Jenkins集成newman
    洗衣液行业调研:预计2028年将达到439亿美元
    来自中科院的一次java技术面经历
    【面试题】JSON.stringify()妙用,你真的知道吗?
  • 原文地址:https://blog.csdn.net/sinat_35360663/article/details/127601531
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号