这篇文章主要讲一下CTF杂项中的隐写术,因为隐写术包含了多个项目,如图片隐写、压缩包隐写、MP3隐写、DOC隐写等。
一、图片隐写术
图片隐写术就是利用图片来隐藏一些机密信息,让别人看起来以为是一张很普通的图片而不容易被察觉。
1、图种
所谓图种,就是先把要想隐藏的东西用zip打包压缩,然后再跟一张正常的图片结合起来,达到隐藏信息的目的。在这里我准备了一个flag.zip的压缩包和456789.png的 图片
然后在命令窗口输入:
copy/b C:\Users\DELL\Desktop\456789.png + C:\Users\DELL\Desktop\flag.zip output.png
得到一张名为output.png的图片文件,可以正常打开
说到这里就不得不提一下鲁迅先生曾经说过的名言了:湖人总冠军。
用binwalk工具可以根据检索匹配文件头的原理轻松地检索图片文件中隐藏的其他文件,还是以这张图片为例,在kali linux里输入命令 binwalk 然后将output.png拖入命令窗口回车执行即可
利用Linux下的foremost工具可以将output.png里隐藏的zip文件分离出来, 在kali linux命令行里输入foremost,然后将output.png拖入命令窗口回车执行即可分离,默认的输出文件夹为output,在这个文件夹中可以找到分离出的zip
当然,也还有一种更简单粗暴的方式:直接把图片的后缀改为.zip,然后解压即可(这种方法虽然简单快速,但如果隐写了多个文件时可能会失败)
2、LSB隐写
LSB隐写,也就是最低有效位 (Least Significant Bit)。图片中的像数一般是由三种颜色组成,即三原色,由这三种原色可以组成其他各种颜色,例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的1bit,写入加密信息,而人眼无法注意到前后的变化。
例如此图看起只是六只环保色猪头,但是其中包含了一张隐藏的二维码,我们可以通过工具Stegsolve.jar打开此图,然后通过下方的按钮切换到Gray bits,可以看到左上角出现了隐写在该通道的二维码,扫描二维码即可得到flag。
3、文件格式缺失&GIF隐写
下图是一张名为“此为gif图片.gif”的文件,打开发现了报错。
我们将其拖入winhex中查看。在CTF中有的时候会需要我们去修复图片,这对我们对于图片的文件结构要有了解。找到gif的文件格式,然后对照这个破损的文件对其进行修复。
Gif的图片格式文档可以查看这个链接,http://dev.gameres.com/Program/Visual/Other/GIFDoc.htm
用winhex打开,我们会发现和普通的GIF图片不一样,头部缺少了东西,在对比一些文档,会发现是少了GIF8。
我们手动修复一下然后浏览图片后会发现,有个PASSWORD一闪而过。gif和别的图片最大的区别就是gif是动态图,它是可以由多帧组成的可以顺序播放的,有的题就是把播放的时间弄得特别慢,几乎就不会动的,所以我们可以用工具一帧一帧的观察图片。 上面提到的Stegsolve就带有这种功能。
111Stegsolve——Analyse——FrameBrower就可以看到是有8帧的图片,最终得到了PASSWORDisY2F0Y2hfdGhlX2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU=。很明显这是一个Base64编码,然后拿去解码得到catch_the_dynamic_flag_is_qumte_simple运用载体隐藏信息
数据在隐藏的时候,我们常常是需要先分析是数据隐藏在哪里,也就是他在利用是什么做载体,之后才可以进一步的分析是加密或编码的。我们要对一个图片的格式要有了解,才能知道哪些地方是可疑的,哪些是会有冗余的成分在可以隐藏起信息的
二、压缩包隐写术
一个ZIP文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
1、伪加密
原理:zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包
预备知识:一个 ZIP 文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。方式标志位是判断有无加密的是数据位,伪加密是将 压缩源文件目录区的全局方式标志位进行修改。
我们现在把一个普通无加密压缩包放进winhex中,然后把第二个加密标记位的00 00改为09 00,打开就会提示有密码
同样的原理,遇到伪加密我们将第二个加密标记位的09 00改为00 00即可打开压缩包。另外,我的电脑上装有360压缩,发现在用360压缩打开经过伪加密的压缩包时没有提示输入密码框,可以直接打开。经过实验证明另一款国产软件快压也可实现同样的功能。
2、Zip密码爆破
爆破:逐个尝试所有密码,直到遇到正确密码
字典:字典攻击的效率比爆破稍高,因为字典中存储了常用的密码,因此就避免了爆破时把时间浪费在无用的密码上。
掩码攻击:如果已知密码的某几位,如已知8位密码的第4位是Z,那么可以构造XXXZXXXX进行掩码攻击,掩码攻击的原理相当于构造了第4位为Z的字典,攻击效率也比逐个尝试的爆破方式高
对于Zip密码爆破,有两款好用的软件。
第一个是神器ZAPR,集合了多种爆破类型,还可以自定义爆破字典。
还有一款软件,当在CTF中遇到题目不是伪加密且有密码范围提示,就可以用爆破工具ziperello,八位纯数字密码秒破。
三、其他隐写术
1、MP3隐写术
MP3隐写两种方式:
第一种:题目中给了密码了,用mp3stego去解密。
第二种:如果在题目中没有给key,而附件只给了一个MP3,那就有可是用mp3stego隐藏的数据,也有可能是在音轨的频谱中隐藏了数据。
MP3stego要在cmd命令提示符中打开,需要换盘到我们存储文件的分区,具体方法如下:
①、开始->运行->CMD
②、进入某个磁盘,直接盘符代号:如D:
③、进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E:/123/321 就输入 E:回车
然后将MP3stego解码程序所在的目录粘贴到cmd中,在开始分析之前,要先把准备分析的MP3文件粘贴到decode.exe所在目录中
2、PDF隐写
Office系列软件作为优秀的办公软件为我们提供了极大的便利,其中的Word、Excel、PowerPoint提供了许多在文档中隐藏数据的方法,比如批注、个人信息、水印、不可见内容、隐藏文字和定制的XML数据。今天我们涉及到的就是提到的隐藏文本功能。
利用PDF文件头添加额外信息,这个区域的信息会被Adobe Acrobat Reader阅读器忽略。
工具:wbStego4open
wbStego4open会把插入数据中的每一个ASCII码转换为二进制形式,然后把每一个二进制数字再替换为十六进制的20或者09,20代表0,09代表1。
最后,这些转换后的十六进制数据被嵌入到PDF文件中。查看用wbStego4open修改后的文件内容,会发现文件中已混入了很多由20和09组成的8位字节
3、DOC隐藏
Doc文件的本质是一个压缩文件,常见的隐藏文本的方式有两种,即:将字体隐藏或者设置同色字体,以下就是一个字体隐藏的例子。
如上图所示,除了两行无用数据意外我们并不能看出有其他有价值的信息,判断flag可能是被隐藏,需要开启文本显示功能,查看是否是我们猜测的那样。点击左上角文件-选项,打开Word选项对话框,在“显示”中勾选隐藏文字选项。
返回文档,即可看到我们要找的flag。
4、数据包隐写术
数据包隐写术,就是将所要传达的信息和文件,以流量包的形式下发给参赛选手,参赛选手要从流量包中自行提取出所需要的文件或者相关内容进行解题。比较常用的工具是wireshark。关于此类部分的详细介绍,大家可以访问这个网址:https://ctf-wiki.github.io/ctf-wiki/misc/traffic/data/
数据包隐写术目前两种考察行为:
①、flag或者关键信息直接隐藏在流量包中
②、flag相关文件隐藏在流量包中,需要分离文件
隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。关于隐写术的相关知识网上还有很多,大家还可以去查找一下,以下链接列出了其中一部分,同时在此文编辑过程中有参考的其中相关资料,在此一并表示感谢。
图片隐写术总结 - riba2534的博客 - CSDN博客.......................https://blog.csdn.net/riba2534/article/details/70544076
【CTF 攻略】CTF比赛中关于zip的总结 - M4x - 博客园............https://www.cnblogs.com/WangAoBo/p/6944477.html
CTF中MISC之MP3等音频隐写 - lastwhisper - CSDN博客..........https://blog.csdn.net/pdsu161530247/article/details/77568807
数据提取 - CTF Wiki.................................................................https://ctf-wiki.github.io/ctf-wiki/misc/traffic/data/
【从零开始学CTF】5、CTF中的隐写术 - 知乎..........................https://zhuanlan.zhihu.com/p/30539398
关注我们
Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。