CTF 解题技能之 MISC 基础二
一、隐写术总结
1、图种
如何把一个压缩包隐藏在图片中:
例如一个 zip 压缩包(1.zip)+一个 jpg 图片(4fcefdaba56019d77b476e30a5558b47.jpg)结合为一张图片(output.jpg)
以下为 Windows 命令:
C:\Users\lenovo>copy /b 1.zip + 4fcefdaba56019d77b476e30a5558b47.jpg output.jpg
Windows 输出得到 output.jpg
破解方法一:
使用 kali Linux 的 binwalk 工具 检索图片文件里的其他文件
然后使用 Linux 的 foremost 工具 将图片中的 zip 文件分离出来
破解方法二:
直接将文件后缀改为.rar,然后解压,但对于隐写了多个文件可能会失败
2、LSB 隐写
LSB 隐写,也就是最低有效位 (Least Significant Bit)。图片中的像数一般是由三原色组成,由这三种原色可以组成其他各种颜色,例如在 PNG 图片的储存中,每个颜色会有 8bit, LSB 隐写就是修改了像数中的最低的 1bit,写入加密信息,而人眼无法注意到前后的变化。
3、文件格式缺失&GIF 隐写
一张名为“此为 gif 图片.gif”的文件,打开发现了报错。
我们将其拖入 winhex 中查看。在 CTF 中有的时候会需要我们去修复图片,这对我们对于图片的文件结构要有了解。找到 gif 的文件格式,然后对照破损的文件对其进行修复。 我们可以用工具一帧一帧的观察图片。Stegsolve 就带有这种功能。
Stegsolve——Analyse——Frame Brower
4、stegsolve---图片隐写查看器
上面的2 中的 LSB 隐写、3 中的一帧一帧的观察图片,都使用到了这个工具;
今天做 CTF 隐写术的题偶然发现一隐写图片查看的神器 stegsolve,分享给大家
stegsolve 下载地址:http://www.caesum.com/handbook/Stegsolve.jar
stegsolve 安装配置:配置好 Java 环境变量(就是需要安装 Java,然后配环境变量,具体的配置过程上网一搜一堆,这里就不赘述)
配置好环境之后直接打开就可以使用stegsolve 功能简介:
上面是软件打开的界面,界面简单。主要供能为 analyse,下面对 Analyse 下面几个功能键作简单介绍:
File Format:文件格式,这个主要是查看图片的具体信息
Data Extract:数据抽取,图片中隐藏数据的抽取
Frame Browser:帧浏览器,主要是对 GIF 之类的动图进行分解,动图变成一张张图片,便于查看
Image Combiner:拼图,图片拼接
二、压缩包隐写术
下面有
三、音频及视频隐写术
1、工具
音频相关的 CTF 题目主要使用的隐写策略,主要分为 MP3 隐写,LSB 隐写,波形隐写,频谱隐写等。
主要使用到的几个工具 :
● Audacity,ocenaudio 音频编辑的工具软件
● Mp3stego 将需要加密的数据压缩加密隐藏在 MP3 文件中
● video to Picture 可以将视频的每帧提转换成图片
● QR Research ctf 中常用的二维码识别软件
● mageMagick 是一个免费的创建、编辑、合成图片的软件
● 以及一张摩斯密码对照表
2、 MP3 隐写术
MP3 隐写两种方式:
第一种:题目中给了密码了,用 mp3stego 去解密
第二种:如果在题目中没有给 key,而附件只给了一个 MP3,那就有可是用 mp3stego 隐藏的数据,也有可能是在音轨的频谱中隐藏了数据。
MP3 隐写主要是使用 Mp3Stego 工具进行隐写,使用方法如下:
encode -E hidden_text.txt -P pass svega.wavsvega_stego.mp3
3、频谱隐写
频谱隐写:音频中的频谱隐写是将字符串隐藏在频谱中,此类音频通常会有一个较明显的特征,听起来是一段杂音或者比较刺耳。我们使用 audacity 打开,播放即可看见flag。
摩斯密码:这里需要我们熟悉音频分析工具的使用;
可以看见上面,是不是有点像摩斯密码的.和-了,用摩斯密码即可解开,就是有点废眼睛,需要自己一个个看。
4、进制转换与加解密
5、RGB 值
1、RGB是指光学三原色:R是红色(Red)、是绿色(Green)、B是蓝色(Blue)
2、RGB的值是指其亮度,用整数从0、1、2...直到255来表示。其中,255亮度最大,0也是数值之一,表示亮度为0,因此,R、G、B都各有256级亮度。
6、游戏隐写
通过游戏之类
7、颜文字
jjencode/aaencode(颜文字) 首先,
什么是 jjencode?
将 JS 代码转换成只有符号的字符串
什么是 aaencode?
将 JS 代码转换成常用的网络表情
aaencode 加密:http://utf-8.jp/public/aaencode.html 解密方法:
可以直接利用浏览器的控制台输入密文,执行后即可解密。
四、其他
1、PDF 隐写
Office 系列软件作为优秀的办公软件为我们提供了极大的便利,其中的 Word、Excel、PowerPoint 提供了许多在文档中隐藏数据的方法,比如批注、个人信息、水印、不可见内容、隐藏文字和定制的 XML 数据。今天我们涉及到的就是提到的隐藏文本功能。
利用 PDF 文件头添加额外信息,这个区域的信息会被 Adobe Acrobat Reader 阅读器忽略。
工具:wbStego4open
wbStego4open 会把插入数据中的每一个 ASCII 码转换为二进制形式,然后把每一个二进制数字再替换为十六进制的 20 或者 09,20 代表 0,09 代表 1。
最后,这些转换后的十六进制数据被嵌入到 PDF 文件中。查看用 wbStego4open 修改后的文件内容,会发现文件中已混入了很多由 20 和 09 组成的 8 位字节
2、DOC 隐藏
Doc 文件的本质是一个压缩文件,常见的隐藏文本的方式有两种,即:将字体隐藏或者设置同色字体。
3、数据包隐写术
数据包隐写术,就是将所要传达的信息和文件,以流量包的形式下发给参赛选手,参赛选手要从流量包中自行提取出所需要的文件或者相关内容进行解题。比较常用的工具是 wireshark。
数据包隐写术目前两种考察行为:
①、flag 或者关键信息直接隐藏在流量包中
②、flag 相关文件隐藏在流量包中,需要分离文件
4、linux 隐写
Grep 查看文件或搜索 flag、key
五、PNG 文件格式详解
PNG 是 20 世纪 90 年代中期开始开发的图像文件存储格式,其目的是替代 GIF 和 TIFF 文件格式,同时增加一些 GIF 文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG’s Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG 用来存储灰度图像时,灰度图像的深度可多到 16 位,存储彩色图像时,彩色图像的深度可多到 48 位,并且还可存储多到 16 位的 α 通道数据。PNG 使用从 LZ77 派生的无损数据压缩算法。(说白了这就是一种方便的、适于网络传播的轻便图片文件格式)
如图:
首先是八个字节的文件头标志,标识着 png 文件:
找到 IHDR,在这之后的八个 bit 就是宽高的值:这个在逆向中经常会遇到。
下面是 IHDR 数据块的实际内容:
0000 0267 图像的宽,24 像素
0000 03B9 图像的高,24 像素
六、压缩包解密的几种方法
1、压缩包解密通用方法:
- 用 winhex 打开,搜索字符 pass 、 key 等,查看是否有含有压缩包密码
- 如果要爆破:先 0-6 位数字来一遍
- 如果爆破不成功可以根据题意或者社工 猜密码组合。例如某用户名叫王方,密码就有可能是 wangfang123.
- 伪加密
- 明文攻击6.crc32 爆破
2、zip 伪加密
1、无加密
无加密的zip压缩包压缩源文件数据区的全局加密应当为00 00,且压缩源文件目录区的全局方式位标记也为 00 00。
2、真加密
真加密的zip压缩包压缩源文件数据区的全局加密应当为01 00,且压缩源文件目录区的全局方式位标记应当为 01 00。
3、伪加密
伪加密的zip压缩包压缩源文件数据区的全局加密为 00 00,且压缩源文件目录区的全局方式位标记为09 00或者01 00。
3、爆破:
工具:ARCHPR 和 Ziperello
1.暴力:选择密码范围,长度等,由软件组合生成密码进行爆破
2.掩码:知道密码中的一部分,只需按规则构造其余部分
3.字典:通常是多数用户常用的一些密码集合,导入字典文件用其中的密码进行爆破推荐一款 windows 下的软件