CTF-MISC基础-压缩包隐写总结

Posted Ocean:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF-MISC基础-压缩包隐写总结相关的知识,希望对你有一定的参考价值。

前置知识

  • file 根据文件头,识别文件类型,如果文件头前边有数据就识别不出来了

  • strings 输出文件中的可打印字符

    可以发现一些提示信息或者特殊编码的信息

    可以配合-o参数获取所有的ASCII字符偏移(字符串的位置)

  • binwalk命令

    根据文件头识别文件

    -e提取文件

  • foremost命令

    提取文件,建议两个分离命令都试一遍

  • 各种文件头

    本地搜索:文件头

压缩包

基本思路

  1. 尽量用winrar避免异常
  2. 看属性
  3. 伪加密
  4. 暴力破解
  5. 明文攻击
  6. crc32碰撞
  7. 多个压缩文件合并 cat 文件名(按需) > 保存文件名

文件结构

[记录文件头 + 文件结构 + 数据描述符] {此处可重复多次} + 核心目录 + 目录结束标识

暴力破解密码

仅适用于密码长度小于等于6位的,大于6位时间会非常的长

直接用apchpr爆破

zip伪加密

原理:

记录文件头以及核心目录区存在一个通用位标记(General purpose bit flag)的两个字节,不同的比特位有着不同的涵义

无加密:
压缩源文件数据区(ushort frFlags)的全局加密应当为 00 00,
且压缩源文件目录区的全局方式标记(ushort deFlags)应当为00 00

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

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

​ 修复工具:

  • winrar修复(也可以修复其他的修改内容) 工具->修复

  • binwalk foremost无视伪加密

  • ZipCenOp.jar(win)

    找到所在文件夹,在地址栏输入cmd

    java -jar ZipCenOp.jar r 文件名
    

CRC32碰撞

原理:

压缩包的crc32的值是未加密状态计算来的

如果文件内容很少(4字节左右)加密的密码却很长,可以使用crc32爆破获取原文件的内容

脚本F:\\CTF\\CTF工具合集\\脚本\\CRC32碰撞\\crc32-linux.py

明文攻击

基本条件

  • 一个加密的压缩包文件
  • 已知压缩文件的压缩工具,如winrar,7z
  • 已知压缩工具的版本
  • 已知压缩包文件中部分连续的内容,至少12字节,任意文件

方法

  1. 将明文文件压缩成压缩包
  2. 确认两者的压缩方式相同,即对比压缩之后的crc32值
  3. 使用apchpr进行明文攻击

tips:

在攻击过程中密钥框如果有字符了就可以停止攻击,点击右侧使用已知密钥解密按钮

docx

包含xml文件的zip压缩包

可能隐藏文件,信息在压缩包里,在word中看不到

可以将docx后缀改为zip

以上是关于CTF-MISC基础-压缩包隐写总结的主要内容,如果未能解决你的问题,请参考以下文章

ctf-misc-图片隐写术套路总结

CTF-MISC(入门|笔记|工具)

CTF-MISC(入门|笔记|工具)

CTF-MISC(入门|笔记|工具)

CTF-Misc基础知识之图片及各种工具

CTF-MISC-编码(持续更新)