CTF-MISC基础-压缩包隐写总结
Posted Ocean:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF-MISC基础-压缩包隐写总结相关的知识,希望对你有一定的参考价值。
前置知识
-
file 根据文件头,识别文件类型,如果文件头前边有数据就识别不出来了
-
strings 输出文件中的可打印字符
可以发现一些提示信息或者特殊编码的信息
可以配合-o参数获取所有的ASCII字符偏移(字符串的位置)
-
binwalk命令
根据文件头识别文件
-e提取文件
-
foremost命令
提取文件,建议两个分离命令都试一遍
-
各种文件头
本地搜索:文件头
压缩包
基本思路
- 尽量用winrar避免异常
- 看属性
- 伪加密
- 暴力破解
- 明文攻击
- crc32碰撞
- 多个压缩文件合并 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字节,任意文件
方法
- 将明文文件压缩成压缩包
- 确认两者的压缩方式相同,即对比压缩之后的crc32值
- 使用apchpr进行明文攻击
tips:
在攻击过程中密钥框如果有字符了就可以停止攻击,点击右侧使用已知密钥解密按钮
docx
包含xml文件的zip压缩包
可能隐藏文件,信息在压缩包里,在word中看不到
可以将docx后缀改为zip
以上是关于CTF-MISC基础-压缩包隐写总结的主要内容,如果未能解决你的问题,请参考以下文章