CTF杂项之音频及视频隐写

  • A+
所属分类:CTF专场

CTF 题目主要使用的隐写策略,主要分为 MP3 隐写,LSB 隐写,波形隐写,频谱隐写等。

本篇文章中使用到的几个工具 :

● Audacity,ocenaudio音频编辑的工具软件

● Mp3stego 将需要加密的数据压缩加密隐藏在MP3文件中

● video to Picture 可以将视频的每帧提转换成图片

● QR Research ctf中常用的二维码识别软件

● mageMagick是一个免费的创建、编辑、合成图片的软件

● 以及一张摩斯密码对照表

CTF杂项之音频及视频隐写

01
频谱隐写:音频中的频谱隐写是将字符串隐藏在频谱中,此类音频通常会有一个较明显的特征,听起来是一段杂音或者比较刺耳。比如这题Hear With Your Eyes。
我们使用audacity打开。

CTF杂项之音频及视频隐写

点开三角形(或Shift+M)选择频谱图即可看到Flag。

CTF杂项之音频及视频隐写

02

还有使用摩斯密码的比如这题Hellokitty,打开文件后可以明显看到两段音轨不一样。

CTF杂项之音频及视频隐写

这段MP3正常播放一般是听不出来什么的,但是Shift+M 选择分离立体声到单声道然后独奏播放第一栏的音轨,是不是超级熟悉。

CTF杂项之音频及视频隐写

我们将得到的摩斯码解码可以发现是串字符。

CTF杂项之音频及视频隐写

于是试试解MD5,得到flag值。

CTF杂项之音频及视频隐写

03

MP3 隐写主要是使用Mp3Stego 工具进行隐写,使用方法如下:

encode -E hidden_text.txt -P pass svega.wavsvega_stego.mp3

压缩svega.wav(mono,44.1kHz,16位编码)并隐藏的text.txt。隐藏文本使用经过,穿过作为密码。这将产生名为svega_stego.mp3。

decode -X -P pass svega_stego.mp3

将svega_stego.mp3解压缩为svega_stego.mp3.pcm,并尝试提取隐藏信息。隐藏消息被解密、解压缩并保存到svega_stego.mp3.txt中。

这题hong_Ksfw02v就是使用了mp3stego。使用-X来解压。

CTF杂项之音频及视频隐写

解压完目录下出现一个hong_Ksfw02V.mp3.txt, 访问txt中的url发现是一个二维码,使用在线识别工具得到16进制字符串。

CTF杂项之音频及视频隐写

CTF杂项之音频及视频隐写

CTF杂项之音频及视频隐写

txt中有提示是这是一个文件,于是使用xxd-r -p还原之后

使用file命令查看,发现是一个python2.7文件。

CTF杂项之音频及视频隐写

但是直接运行没有输出也没有报错emm ,将文件改成pyc丢到https://tool.lu/pyc/反编译一波。

得到以下源码 直接调用flag函数即可得出flag值 zhi_fu_sai_ning。

CTF杂项之音频及视频隐写

04

当然出题者的脑洞通常都很大,比如这题使用了流量+音频分析的套路来出题。

打开traffic.pcapng文件后粗略的翻了翻发现有ftp的数据流,两个flag.zip ,一个c文件以及key.log。

把它们都撸出来先。

CTF杂项之音频及视频隐写

右键->追踪流->TCP流然后选择显示和保存数据为原始数据(key.log文件不用,直接另存为ascii即可)

依次把几个文件从数据包中剥离出来。

CTF杂项之音频及视频隐写

然而在解压flag.txt文件的时候却出乎意料的弹出了一个需要输入密码的小框框,当时哇的一下就哭了 。就直接祭出我的Gold finger,胡乱试了几个弱口令无果。我太…太…太南了。

换个思路,经我四下摸索(Bai)探讨(Du)交流后得知zip文件居然还存在伪加密这种神奇的手法。

那要怎么办呢,咳咳敲黑板画重点了啊。首先一个zip文件由压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标记三部分组成,而在压缩源文件目录区存在个00 00的全局方式位标记这就是有无加密,伪加密的关键所在。而对其起作用的是全局方式位标记的第二个0且当第二个0为奇数时为加密,为偶数时为不加密。

 

那么我们怎么判断到底是真加密还是伪加密呢?

● 无加密:

压缩源文件数据区的全局加密应当为0000 (504B0304两个bytes之后) 且压缩源文件目录区的全局方式位标记应当为00 00(504B0304四个bytes之后)

● 假加密:

压缩源文件数据区的全局加密应当为0000 且压缩源文件目录区的全局方式位标记应当为09 00

● 真加密:

压缩源文件数据区的全局加密应当为0900 且压缩源文件目录区的全局方式位标记应当为09 00。

CTF杂项之音频及视频隐写

看完以上内容我相信大家就能够粗略的了解其中大概的原理了,至于具体的细节就需要亲们自己去百度了呀。

然后就是打开winhex 修改压缩源文件目录区的全局方式位标记09 00为00 00就可以顺利解压文件了。

打开flag.txt之后

CTF杂项之音频及视频隐写

好吧按这种狗血剧情我猜另一个压缩包应该是真加密没跑了 。

试了一下果不其然。

CTF杂项之音频及视频隐写

只能找其他线索了。

通过各种寻找后发现某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中。也就是流量包中存在的key.log(NSS Key Log Format)文件,可供 Wireshark 加密使用。

在Wireshark中选择编辑->首选项->Protocols->tls(旧本叫ssl)(Pre-Shared-Key)导入key.log。

CTF杂项之音频及视频隐写

点击ok . 之后wireshark会自动重载数据包然后会发现其中多出来了好多http流量 ,过了一样感觉挺有东西的。

CTF杂项之音频及视频隐写

于是使用文件->导出对象->HTTP将最大这个包导出保存成zip 文件。

CTF杂项之音频及视频隐写

打开之后里面有个mp3文件 用ocenaudio打开在其中最后一段存在key 值为AaaAaaaAAaaaAAaaaaaaAAAAAaaaaaaa!

CTF杂项之音频及视频隐写

CTF杂项之音频及视频隐写

最终解压之前需要密码的flag.zip得到以下key。

CTF杂项之音频及视频隐写


本文始发于微信公众号(LemonSec):CTF杂项之音频及视频隐写

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: