#隐写术学习(1)
##介绍 隐写术是指将信息隐藏于一些无关紧要的文件中,是misc中的一类常见题型。
根据隐藏的介质不同,隐写术可分为图片隐写、音频隐写、压缩包隐写等。
##图片隐写 ###图片格式介绍 常见的图片格式有png、bmp、jpg,其中png由于格式规整、扩展性强,是最常见的隐写介质。
分析图片的隐藏信息,首先要了解图片的数据格式。
#####PNG文件头 |:--:|:--:| |89 50 4E 47 0D 0A 1A 0A | 文件头标识| |00 00 00 0D | IHDR 数据块大小| |49 48 44 52 | IHDR 数据块标识 |00 00 0B B9 | Width 图像宽度 |00 00 08 35 | Height 图像高度 |08 02 00 00 00 | 其余数据 |82 73 14 8B | CRC校验
常见的隐藏信息会位于高度之后,同时也要注意CRC校验是否正确,长宽是否被修改。
#####JPG文件头 |:--:|:--:| |SOF(Start Of Frame) | 帧图像开始,标识:FF C0 |00 11 | 数据块大小| |08 | 精度| |04 38 | 图像高度| |07 80 | 图像宽度| SOF数据区储存了所有的图像信息,包括高度、宽度等
###常见隐写方式
- 图块隐藏信息
- 文件/图片合成
- 冗余字节隐藏
- 缺少文件头
- 更改图片的长和宽
- 复合图片
- 双图对比分析
- 二维码
###常用工具 #####隐藏文件分离
- Binwalk
- Foremost #####文件二进制信息查看
- 010Editor
- HexEditXP #####LSB/MSB隐写查看
- Zsteg
- Stegsolve
之后的文章将详细介绍几种常见的图片隐写方式以及例题
##音频隐写
太累了,就偷个懒,讲讲最简单的音频隐写吧
###介绍
音频隐写也是隐写中比较常见的一种,在各类低端娱乐赛事中常常出现。技术含量较低。
###常见形式
按音频格式分类,可以分为MP3隐写、WAV隐写。
###MP3隐写
这类比较常规,原理是将数据压缩隐藏于MP3文件的比特流中,通常都是用MP3Stego出的题,用MP3Stego解就行。
###WAV隐写
WAV中常见的有频谱图隐写(较为直观)

###常用工具 MP3Stego Audacity(频谱图转换、声道分离等无所不能)
####简介 LSB隐写是指将信息隐藏于图像各颜色通道的最低比特位中,由于对最低比特位的修改通常肉眼不可见,所以LSB隐写具有较高的隐蔽性。
但LSB隐写方式所能隐藏的信息量与图像大小成正比,通常的图片(一般只有几百k)仅能够隐藏少量信息。 ####常用工具
- Stegsolve
- Zsteg ####解决方法
- Stegsolve调整到单颜色通道模式,查看是否有异常数据流,再对异常数据流进行提取。 例如,R0,G1,B0三个通道有噪声,则选中这三个通道,使用LSB模式进行提取。
- Zsteg可以自动化地检测和提取。
####简介 合成是指两个文件被拼接到了一起,不仅仅限于图片,压缩包、音频等文件都可以拼接。
较为简单的,仅仅是将文件拼接,运用各种分离软件分离即可。
复杂一些的,可能去除了附加文件的文件头,需要根据各种信息识别附加文件并修复。
####常用工具
- Foremost
- Binwalk
有些图片的某个颜色通道会被替换成其余的图像,常见的是一张二维码。用Stegsolve逐颜色通道查看即可。
有时遇到的只是一段比特流,如流量包中交换的数据,需要根据一些特征(通常为文件头)识别文件类型。
#####常见的特征:
- PNG: 文件头 89 50 4E 47 (即%PNG)、以及IHDR、IEND(标识PNG文件尾)
- BMP: Bitmap
- ZIP: 文件头 50 4B 03 04
- ......
剩余的图片隐写方式下次写,包括最近常见的二维码等。
##图片隐写常见形式(2) 今天听Crypto大佬讲课,惊讶地听到了不少Misc中的内容,尤其是最近很火的区块链题目,可惜听了一下午还是不会。
####介绍
二维码也是隐写中常见的内容,但与其它的图片隐写不同,二维码并不是自成一派的一种隐写方法,而是与其余隐写方式组合的一种手段。可以认为二维码是直接在图片上写flag这种方式的进阶版,并且由于二维码自身的特征(由黑白像素点组成、通常为正方形等)拥有种种优越性。
####二维码的识别
通常拥有以下特征的数据可以向二维码的方向考虑:
- 数据由01(或者类似的二元组)组成
- 数据长度为平方数
- 拥有三个规整的数据段(即定位符)
有以上某条特征的可以考虑写脚本提取
####二维码的修复
有时获得的二维码会:
- 缺失定位符,根据图像方位补上即可
- 缺失一部分二维码,由于二维码具有极高的容错性,缺失一部分仍然可能完整地获取信息,也可以针对有限区域进行爆破
- 被污损,需要使用PhotoShop等图像处理软件进行降噪、反相等操作
也有可能获得一堆二维码碎片,需要通过拼图的方式修复(自然是程序自动拼喽:))
####常用工具
- QR Research
- Photoshop
####附QR Code基础知识:
-
QR Code简介
QR Code(Quick Response Code)是二维码的一种编码方式,通过与背景颜色存在对比的色块表示二进制数据0和1,通过色块组成的二维矩阵表示信息。 -
QR Code的种类
目前共有5种类型的QR Code,分别是:使用最广泛的QR Code、只有一个定位图案的Micro QR Code、信息容量更大的iQR Code,可以存储隐私信息的SQRC和可以灵活嵌入图案的Frame QR。
###图片隐写与逆向的结合
有些题目提供一张加密后的图片,以及一个加密程序。
出题人大概是想引导我们逆向加密程序。这么做固然可以,但实际上这类加密程序基本与LSB等常见隐写方式所去不远,试着用常规LSB检测工具进行提取也可以成功。