CTF—图片隐写+数据隐写

一、【图片隐写】

题目描述:
在实验主机上的C:\Stegano\3目录下提供了一个名为stego的文件,
找到一个形式为flag{word_word_word}的字符串。

在这里插入图片描述

预备知识
【TrID】
TrID是一款根据文件二进制数据特征进行判断的文件类型识别工具。
虽然也有类似的文件类型识别工具,但是大多数都是使用硬编码的识别规则,而TrID则没有固定的匹配规则,
TrID具有灵活的可扩展性,可以通过训练来进行文件类型的快速识别。

TrID通过附加的文件类型指纹数据库来进行匹配,可用于 取证分析、未知文件 识别等用途。

【BinWalk】
BinWalk是一个固件的分析工具,旨在协助研究人员对固件进行分析,提取及逆向工程用处。
简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,
还有重要一点的是可以轻松地扩展。最简单的使用方法很直接,提供文件路径和文件名即可。
【StegHide】
Steghide是一个隐写程序,其可以将数据隐藏在各种图片文件以及音频文件之中。
Steghide可以对隐写的数据进行加密和压缩操作。
考察意图:

考察选手的文件隐写取证分析能力,包括对工具TrID、BinWalk、StegHide等的了解。

分析文件类型
题目提供的文件没有文件扩展名,因此我们需要先确定文件的真实文件类型,
使用【TrID】工具可以对未知文件类型进行有效的识别。

1、打开cmd命令提示符,切换到相关路径下,然后使用TrID对文件进行识别,如图所示:
在这里插入图片描述
根据TrID的识别结果,这是一个GZip压缩文件,我们使用7Zip对其进行解压
得到另一个没有扩展名的文件,再次使用TrID对其进行识别,提示为TAR压缩文件,如图所示:在这里插入图片描述
同样使用7Zip对其进行解压,得到 bowser.jpg 文件,是一张图片
在这里插入图片描述

内嵌文件数据分析
在CTF竞赛中,很多情况下会把一个文件的二进制数据嵌入到另一个文件之中,
对于[嵌入ZIP]之类的数据,我们可以尝试直接将文件名的后缀改为zip,
然后使用WinRAR之类的解压缩工具打开即可
但是对于未知的文件类型,这样可能就显得力不从心了,这里介绍一种通用的文件识别方法,就是使用BinWalk工具。

打开cmd命令提示符,切换到相关路径下。执行python binwalk命令来对bowser.jpg文件进行处理,如图所示:
在这里插入图片描述
从BinWalk的分析结果可以看出,JPG文件中有一个Zip压缩包,其文件偏移地址范围是0x226B5~0x2C842,这里我们使用C32Asm将Zip数据提取出来。

打开桌面上的【C32Asm工具】,选择 “文件”、“打开十六进制文件”载入C:\Stegano\3\bowser.jpg文件,然后右键选择“定义选择块”
填入数据块的起始地址为 0x226B5,结束地址为 0x2C842,单击确定就选中数据块了
右键复制数据,然后新建一个十六进制文件,将原有的数据替换为复制的数据
保存即可得到压缩包文件。操作过程如图所示:

在这里插入图片描述
但是实际测试时发现压缩包不能正常解压,这是因为BinWalk对ZIP的识别机制还不完善,漏掉了ZIP文件末尾的一段数据,所以我们需要重新复制数据,文件的开始位置仍然是0x226B5,结束位置直到文件的末尾,如图所示:
在这里插入图片描述
这样提取出来的压缩包就可以正常解压了,得到图片文件MarioCastle.jpg在这里插入图片描述

提取隐写数据
从实验步骤二中得到了MarioCastle.jpg文件,
这个图片里面显示有一个Passphrase字段,值为BaD_DR4G0N,
看到  [  Passphrase  ]我们就可以猜测使用了【steghide】进行数据隐写。
因此我们尝试使用steghide对MarioCastle.jpg进行隐写数据提取

在这里插入图片描述

打开cmd命令提示符,输入steghide extract -sf MarioCastle.jpg -p BaD_DR4G0N命令,提示没有任何可以提取的数据。

那么如果尝试对原来的 bowser.jpg 进行处理呢?实际测试表明bowser.jpg里面隐写了数据,通过steghide我们提取出了1.tar.gz文件,如图所示:
在这里插入图片描述
解压1.tar.gz文件,得到flaga.jpg文件,打开即可看到flag为flag{You_F0unD_M3}。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值