MISC:压缩包隐写的破解方法.
Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。
信息隐藏打破了传统密码学的思维范畴,从一个全新的视角审视信息安全。与传统的加密相比,信息隐藏的隐蔽性更强,在信息隐藏中,可以把这两项技术结合起来,先将秘密信息进行加密预处理,然后再进行信息隐藏,则秘密信息的保密性和不可觉察性的效果更佳。
通过观察二进制中隐含的文件头信息来判断图片中附加的文件类型,常见的文件头、文件尾分别如下:
◆ JPEG (jpg): 文件头,FF D8 FF; 文件尾,FF D9
◆ PNG (png) : 文件头,89 50 4E 47; 文件尾,AE 42 60 82
◆ GIF (gif) : 文件头,47 49 46 38; 文件尾,00 3B
◆ ZIP Archive (zip): 文件头,50 4B 03 04; 文件尾,50 4B
◆ RAR Archive (rar) ,文件头: 52 617221
◆ Wave (wav) : 文件头,57 41 5645
◆ AVI (avi) : 文件头,41 56 49 20
◆ MPEG (mpg): 文件头,00 00 01 BA
◆ MPEG (mpg): 文件头,00 00 01 B3
◆ Quicktime (mov) : 文件头,6D 6F 6F76
ZIP | 文件格式
组成:
1.压缩源文件数据区
(1)文件头
(2)文件数据
(3)数据描述符
2.核心目录
3.目录结束标识
ZIP I 通过进制转换隐藏信息
一般题目给了一根文档,里面有一长串的数字
我们通过观察(ZIP Archive (zip): 文件头,50 4B 03 04) ,可能是 zip 压缩包的十六进制数据
winhex 工具下载:http://www.x-ways.net/winhex/index-m.html
打开 winhex 工具,新建 输入任意字节大小
从题目第一个字节开始复制粘贴到 winhex 工具中,选择 ASCII-Hex 形式
然后 文件--> 另存为 保存为 zip 文件
然后,再把 zip 文件,放在 010Editor 中.
然后在 010Editor 中 ,选择 --> 文件 --> 导出16进制 为 txt 文件.
在 txt 文件中改为一行数字,再保存.(注意设置好数学之间的间隔)
然后再把这个 txt 改好的文件 ==> 导入 010Editor 中,再另存为 zip 格式,然后在直接打开
ZIP | 图种
将压缩包隐藏在一张图片中.
解法一 :
binwalk 图片 //查看图片有没有隐藏信息文件.
binwalk -e 要分离的文件名. //这个文件名是在查看隐藏信息文件.
解法二 :
foremost 要分离的图片
ZIP I 伪加密
一个 ZIP 文件由三个部分组成:
压缩源文件数据区 + 压缩源文件目录区 + 压缩源文件目录结束标志.
无加密:压缩源文件数据区的全局加密应当为00 00,且压缩源文件目录区的全局方式位标记应当为00 00
真加密:压缩源文件数据区的全局加密应当为09(或奇数)00且压缩源文件目录区的全局方式位标记应当为09
(或奇数)00
伪加密:压缩源文件数据区的全局加密应当为00(或其他数)00,且压缩源文件目录区的全局方式位标记应
当为09(或奇数)00
解法一:
搜索 --> 16 进制数值 50 4B 01 02,从 50 开始 16 进制下修改通用位标记 winhex 打开伪加密
压缩包第 9 第 10 字节改为 00 00
解法二 :
binwalk -e 要分离的文件名 //这个输入文件名
ZIP I 暴力破解
攻击类型选择暴力破解,打开加密的压缩包并选择密码的字符范围.(一般比赛是数字,密码是4个)
ZIP I 字典破解
ZIP I 掩码破解
已知密码的长度和某几位值,如已知密码长度为8和前4位密码的是abcd,那么可以构造 abcd????进行
掩码攻击,掩码攻击的原理相当于构造了前4位为abcd的字典,因此掩码攻击的效率也比爆破高出不少.
ZIP | 明文攻击
zip压缩文件所设定的密码,首先被转换成3个32bit的key,所以可能的key的组合是2“96,除非知道
密码的规则,或者是弱口令,否则很难穷举出正确的结果。
在压缩过程中,压缩软件使用这3个key加密包中的所有文件,即所有文件的key值是一样的。
如果将压缩包中的某个文件用同样的压缩软件同样的压缩方式进行无密码的压缩,得到的文件就是
Known plaintext(已知明文)。用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同
的文件,抽取出两个文件的不同点,应该有12byte不同,即3个key。
使用key无法直接还原出密码,但是可以利用key解压其他文件,达到了最终的目的
ZIP I CRC32碰撞
import binascii
import string
dic=string.printable
crc = 0x9BE3EOA3 //0x后面修改为加密文件的CRC
def CrackCrc(crc):
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s=i+j+p+q
if crc == ( binascii.crc32(s)&0xffffffff):
print s
CrackCrc(crc)
RAR | 暴力破解
从题目相关提示中猜测密码的长度以及字符范围等.
RAR | 伪加密
RAR文件由于有头部校验,使用伪加密时打开文件会出现报错,使用winhex修改标志位后如报错
消失且正常解压缩,说明是伪加密。使用winhex打开RAR文件,找到第24个字节,该字节尾数为4表
示加密,0表示无加密,将尾数改为0即可破解伪加密.
学习链接:3-CTF隐写术基础_哔哩哔哩_bilibili
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。