CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF比赛中,会涉及MISC,PPC,CRYPTO,PWN,REVERSE,WEB,STEGA这几种题目。今天介绍STEGA中的图像隐写。STEGA是Steganography的缩写,意思为隐写术,这类题的flag被藏在一段视频,一张图片,一首音乐,或者任何你想想不到的载体中。今天介绍图像隐写中涉及的基础信息。
在做图片隐写题时思路:
1、看到图像的时候,我们首先想到的是看图像的属性。
2、检查图像开始标志和结束标志是否正确,若不正确修改图像标志恢复图像,图片未显示完全时,通过修改图像高、宽,使图像显示完全。
3、在图像结束标志后加入数据。
4、有时候你看到的图片不一定仅仅只是一张图片。在只给了一张图时,也要注意隐藏数据,这时候需要执行binwalk xxx.jpg 查看图像中是否是多个图像组合或者其中包含其他文件。(也可以用解压软件进行查看)
5、在图像数据中加入数据,不影响视觉效果情况下修改像素数据,加入信息。
6、利用隐写算法将数据隐写到图像中而不影响图像(仅限于jpg图像),隐写算法常见有F5、Guess等。
接下来总结关于图片的一些基本信息,查看图片信息以及对参数进行修改时推荐使用winhex。
png:
png图像的文件头数据块IHDR,它包含png文件中存储的图像数据的基本信息,并要作为第一个数据块出现在png数据流中,一个png数据流中只能有一个文件头数据块。而我们经常会修改的图像宽度,高度,深度等信息均在文件头数据块中。
以下图为例:
文件头标识:89 50 4E 47 0D 0A 1A 0A
文件尾标识:00 00 00 00 49 45 4E 44AE 42 60 82
(在下图1IHDR数据块中)
红色框:0000000D 表示IHDR头块长为13
黄色框:4948 44 52 IHDR标识(ASCII码为IHDR)
蓝色框:00 00 0C 4E 表示图像的宽, 3150像素
绿色框:00 00 01 F4 表示图像的高,500像素
灰色框:08 表示色深,2^8=256,即这是一个256色的图像
(在下图2IHDR数据块中)
红色框:02 表示颜色类型
黄色框:16 F4 1E 2A CRC校验
(文件头标识)
(文件尾标识)
(IHDR数据块1)
(IHDR数据块2)
jpg:
jpg图像会涉及到F5算法隐写,guess算法隐写,可用以下工具进行检查。在windows系统命令行下使用F5-steganography-master进行jpg图像是否为F5算法隐写。在kali系统中使用outguess-master工具(需要安装),检测是否为guess算法隐写。
文件头标识:FF D8 FF
文件尾标识:FF D9
(文件头标识)
(文件尾标识)
rar:
文件头标识:52 61 72 21 1A 07 00
(文件头标识)
gif:
gif文件的Header块是其文件的入口。Header一共包含六个字节,其中前三个字节对应ASCII码中的 G、I、F 三个字符,后三个字节用于说明此 GIF 的版本号,如下图所示,目前的版本号有 87a 和 89a 两个。
如下图(数据块图)所示,这一数据块由7个字节组成。
红色框:前四个字节分别是图像渲染区域的宽和高
黄色框:是一个压缩字节
蓝色框:表示背景色在全局颜色列表中的索引
绿色框:表示像素的宽高比,大多数时候这个值都是0。
87a文件头标识为:4749 46 38 37 61
89a文件头标识为:47 49 46 38 39 61
gif文件尾标识:00 3B
(header)
(文件头标识)
(文件尾标识)
(数据块)
ps: gif属于动图,需要分帧查看各帧图像组合所得数据若不是直接的ctf或flag信息 需要考虑将其解码。(使用stegsolve工具中Frame Browser进行查看)
zip:
一个zip文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。
压缩源文件数据区结构如下图所示:
红色框:50 4B 03 04 文件头标识
蓝色框:14 00 解压文件所需 pkware 版本
黄色框:00 00 全局方式位标记(有无加密)
(全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性。第二个数字为奇数时为加密,第二个数字为偶数时未加密)
灰色框中:
08 00 压缩方式
87 56 文件最后修改时间
5E 47 文件最后修改日期
AF 13 4F 85 CRC-32校验
(压缩源文件数据区图)
这里全局方式位标记会涉及到zip的伪加密,伪加密是在未加密的zip文件基础上修改了它的压缩源文件目录区里的全局方式位标记的比特值,使得压缩软件打开它的时候识别为加密文件,提示输入密码,而在这个时候,不管用什么软件对其进行密码破解,都无法打开它。以下介绍如何鉴别zip为真加密还是伪加密。
(压缩源文件目录区图)
50 4B 01 02:目录中文件文件头标记
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
zip无加密
压缩源文件数据区的全局加密应当为00 00(压缩源文件数据区图黄色框处)且压缩源文件目录区的全局方式位标记应当为00 00(压缩源文件目录区图中蓝色框)。
zip假加密
压缩源文件数据区的全局加密应当为00 00,且压缩源文件目录区的全局方式位标记应当为09 00,这个时候,对密码进行破解没有用时,回过头来查看参数进行修改,看看能否另有收获。
zip真加密
压缩源文件数据区的全局加密应当为09 00,且压缩源文件目录区的全局方式位标记应当为09 00。
以上,是对一些图像的基本信息总结以及介绍了zip伪加密相关的信息,了解图片的一些标识,方便在做题时对图像更清晰的认识,后续会介绍关于图像隐写中涉及到的其他知识点。
来源:freebuf.com 2020-03-10 22:41:24 by: 凯信特安全团队
请登录后发表评论
注册