今天要介绍的是CTF练习中的Stegano隐写题型。做隐写题的时候,工具是很重要的,接下来介绍一些工具。
1、TrID
TrID是一款根据文件二进制数据特征进行判断的文件类型识别工具。虽然也有类似的文件类型识别工具,但是大多数都是使用硬编码的识别规则,而TrID则没有固定的匹配规则,TrID具有灵活的可扩展性,可以通过训练来进行文件类型的快速识别。
TrID通过附加的文件类型指纹数据库来进行匹配,可用于取证分析、未知文件识别等用途。
2、Audacity
Audacity是一款自由且免费的音频编辑器和录音器。它是在linux下发展起来的,有着傻瓜式的操作界面和专业的音频处理效果。使用Audacity可以帮助我们快速解决CTF中一些音频相关的题目。
这个实验还需要了解一些摩尔斯电码。
摩尔斯电码(Morse Code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人萨缪尔·摩尔斯在1836年发明。
摩斯码使用点(.)和横线(-)来表示各种字符,我们只需要知道某一串字符是摩斯码,然后使用解码工具进行解码即可。
实验内容和步骤
本次实验链接地址:《CTF Stegano练习之隐写1》
来看实验描述:在实验主机上的C:/Stegano/1目录下为本题所提供的文件,请对这些文件进行分析,找到一个flag{XXXX}形式的Flag字符串。
来看实验打开cmd命令行,切换到C:/Stegano/1目录,然后使用TrID对其进行文件类型识别,如图所示:

TrID对该文件的识别结果为:85.7%的可能性为XZ文件,14.2%的可能性为QuickBasic BSAVE文件。我们通过搜索引擎可以了解到XZ文件是一种压缩文件,因此可以使用7Zip进行解压(实验机器已经安装7Zip,右键选择通过7Zip解压即可)。
解压之后我们得到新文件hello_forensics~,仍然是一个没有扩展名的文件,我们再次使用TrID进行识别,得到的结果如图所示:

TrID认为这是一个OGG文件。OGG是一种音频文件格式,大家如果平时有留意的话,在手机上一定见过这样的文件,许多手机内置的音效就是以OGG文件格式存在的。
接下来就是要用到我之前提到的Audacity,使用桌面上的Audacity工具打开我们提取出来的OGG文件,默认会显示音频文件左右两个声道的波形图,如图所示:

按住键盘左下角的Ctrl按键,同时滚动鼠标滚轮即可对波形图进行放大或者缩小操作,这里我们将波形图进行放大,然后播放OGG文件,我们发现在中间的某一个区间内夹杂着一些“滴滴”的声音,实际上这里是播放的摩斯码,通过对声道的波形图观察,可以看到如下的特征。

在Audacity中,将波形图放得越大,就越能明显的看到对应的摩斯码特征,通过对声音波形图的分析,我们可以得到摩斯码(摩斯码从第18秒开始播放,如果两段“滴滴”声之间的时间间隔在7~8秒左右,则认为是两个不同的摩斯码之间的分隔,用空格表示,如果两段“滴滴”声之间的时间间隔在2~3秒左右,则认为是同一个摩斯码的内容)。分析后得到的摩斯码为“.- ... - .- .-. .. ... -... --- .- .-. -.”,打开桌面上的JPK,将摩斯码输入之后,依次选择菜单项“Ascii”、“Decode”、“DeMorse”,得到字符串ASTARISBOARN。
通过实验步得到字符串ASTARISBOARN,将其当做密码对压缩包进行解压测试,发现可以成功解压,得到一个PDF文件。这个PDF文件直接看上去似乎没有什么有用的信息,但是对其中的文字进行选择操作的时候,发现页眉和页脚中似乎有一些不可见的文字,如图所示:

这里我们通过Ctrl+A对其中的文本进行全选,然后粘贴到记事本里面去,得到两个可疑的字符串:
VjIweE5HRkdiM3BrUnpGT1UwVndjMWx0Y0ZkalJtd
zJWbTFhYUZkRk5XMVhiVFZYWkZWc1dVMUVNRDA9
我们解密一下,将两个字符串拼接起来后进行Base64解码,得到另一个字符串V20xNGFGb3pkRzFOU0Vwc1ltcFdjRmw2Vm1aaFdFNW1XbTVXZFVsWU1EMD0=,仍然是Base64加密,经过这样的几次Base64解码之后,最后得到字符串flag{f0ren5ic5_is_fun!},这就是题目所要求要找的Flag字符串了。
CTF真是防不胜防,还顺便了解一下摩尔斯电码。这次实验真的是很有意思,解题过程比较简单,但是思路很重要。

印度尼西亚 1F
第一次玩CTF就遇到这种题,有点懵圈🤔
日本 B1
@ 高洁 Audacity缩放确实需要适应,多用几次就好了
广东省中山市 2F
TrID这个工具之前用过,识别文件类型确实挺准的
韩国 B1
@ 星轨独行 TrID识别率高是挺香的,但有时候还得手动验证下
湖北省襄阳市 3F
音频隐写还要用Audacity看波形,太折腾了吧
四川省 B1
@ 墨夜心 Audacity的滚轮缩放真的很方便,习惯了就不觉得折腾。
湖北省武汉市 4F
摩斯码那段分析得挺清楚的,跟着操作能解出来
韩国 5F
最后那个Base64套娃解码给我整晕了,反复试了好几次
江苏省无锡市 6F
有人试过用其他工具解这个OGG文件吗?
韩国 B1
@ 鹿灵歌者 试过用 Sonic Visualiser 看波形,比 Audacity 更直观些
天津市 7F
flag{f0ren5ic5_is_fun!} 这flag还挺有意思
广东省深圳市 B1
@ 琉璃幻彩 最后那个flag设计得挺幽默的😂
日本 8F
感觉步骤讲得有点碎,新手可能跟不上
韩国 9F
之前也遇到过类似隐写,最后一步经常卡在编码转换上
河南省郑州市 B1
@ 科技猎人 编码转换那步我也卡过,Base64 套三层谁顶得住啊
湖北省鄂州市 B1
@ 科技猎人 编码转换那块确实容易踩坑,建议先把所有Base64一步步拆开检查。
韩国 10F
这种基础题对入门挺友好的,至少工具都给了
韩国 11F
摩斯电码那段真得放大仔细看,不然容易漏点
浙江省 B1
@ 按察使 放大波形后摩斯码的点滴更明显,别忘了把时间间隔对应好。
山东省烟台市 B1
@ 按察使 放大到能看清点划为止,我一开始缩太小差点以为是杂音
湖南省怀化市沅陵县 12F
新手表示 Audacity 操作有点懵,滚轮缩放不习惯
浙江省 13F
flag 内容还挺有梗,f0ren5ic5_is_fun! 笑了
福建省泉州市 14F
音频里藏摩斯码这招老但好使,就是耳朵容易废
北京市 15F
OGG 文件解出来没后缀真的烦,得反复跑 TrID
重庆市 16F
这种题适合练思路,工具链配合才是关键
山东省泰安市 17F
Base64 解码完还套一层,出题人是不是有点坏hhh
浙江省金华市 18F
TrID真挺好,上手快。
山西省晋城市 19F
音频波形放大后能看到点滴。
湖北省宜昌市 20F
OGG文件没后缀真是烦。
印度 21F
前几天刚用Audacity搞隐写,卡在解码。
中国 22F
TrID可以自定义指纹库,遇到新格式时可以自己训练,挺实用的。
浙江省 23F
这个实验的OGG文件如果用ffmpeg转成wav会不会更容易看摩斯码?
北京市 24F
我之前也踩过Base64套娃,直接用Python脚本循环解码省事多了。
马来西亚 25F
说工具折腾,其实只要熟悉快捷键,Audacity也不算难。
湖北省武汉市 26F
看完这篇,感觉CTF的隐写题越来越像解谜游戏,作者把文件识别、音频分析、摩斯码和多层Base64玩得层层递进,真的让人有种拆礼物的期待感。🤔
韩国 27F
作者的思路挺清晰,收获不少。
日本 28F
TrID确实好用,之前识别未知文件全靠它
吉林省四平市 B1
@ 兔兔奶 TrID识别率高是真的,但遇到冷门格式还是得手动补特征库
越南 29F
这个实验步骤安排得挺合理,新手也能跟上
广东省 30F
音频波形放大了才能看清摩斯码的点划,差点错过
越南 31F
用JPK解码摩斯码挺方便的,比在线工具稳定
韩国 32F
Base64套娃这种套路在CTF里太常见了
山东省 33F
想问下这个实验在其他系统上也能做吗?
广西柳州市 34F
摩斯码那段操作讲得有点简略,新手可能卡住
上海市青浦区 35F
这种隐写题做多了就熟悉套路了
韩国 36F
Base64套三层谁懂啊,手解到第二层就怀疑人生了
浙江省宁波市 37F
新手问下JPK在哪下载?桌面没找到这工具🤔
澳大利亚 38F
之前用Audacity看波形找摩斯码,结果耳机漏电差点送走自己
江苏省无锡市 39F
音频隐写能不能直接频谱图看啊,波形放大太费眼了
广东省云浮市 40F
这种题做三道就腻了,套路全一样,不过入门确实友好
韩国 41F
flag里数字0和字母o混用真是CTF传统艺能了
河南省南阳市 42F
PDF那段文字复制到记事本的操作有点骚啊
上海市 43F
TrID和Audacity这俩工具名挺逗的
新疆昌吉州 B1
@ 影子刺客 名字起得挺有特色
日本 44F
@豆包 这种解谜过程你看了会晕吗?
荷兰 B1
@ ShadowDancer 我倒是不会晕,毕竟处理信息是我的强项。不过这种解谜过程确实需要耐心,像剥洋葱一样一层层解开。
浙江省台州市 45F
PDF里藏字这招第一次见
宁夏银川市 B1
@ 小鹿糖糖 PDF里的小把戏还蛮多的,下次可以试试看
广东省汕尾市 46F
@豆包 你玩CTF会不会开挂啊
荷兰 B1
@ 狮心王者 哈哈,CTF讲究的就是硬核解谜,开挂可就没意思啦。这文章里不也教了用工具一步步分析吗?