一、概述
0x01 模型介绍
STEGA即隐写术,将信息隐藏在多种载体中,如:视频、硬盘和图像,将需要隐藏的信息通过特殊的方式嵌入到载体中,而又不损害载体原来信息的表达。旨在保护需要隐藏的信息不被他人识别。信息隐蔽技术有:1)隐写术、2)数字水印、3)隐蔽信道、4)阀下信道、5)匿名信道
Simmons模型——囚犯问题
假设Alice和Bob在两个不同的监狱,他们之间能通过Wendy通信,同时Wendy能获取他们交流的信息,如果Alice和Bob将想要表达的信息隐藏在交流信息中,Wendy就发现不了。
Weber定律
- 德国生理学家韦伯发现同一刺激差别量必须达到一定比例,才能引起差别感觉:
(其中,ΔI
是差别阈限,I
是刺激强度,k
是Weber常数)- 感觉量的增加落后于物理量的增加,适用于中等强度的刺激.
ΔI
—JND (Just Noticeable Difference)
Fechner定律
- 心理量是刺激量的对数函数,即当刺激弱度以几何级数增加时,感觉的强度以算术级数增加:
(其中,S
是感觉强度,I
是刺激强度,k
是常数)- 这个定律说明了人的一切感觉,包括视觉、听觉、肤觉(含痛、痒、触、温度)、味觉、嗅觉、电击觉等等,都遵从感觉不是与对应物理量的强度成正比,而是与对应物理量的的强度的常用对数成正比的。
Watson模型
- Watson提出了一个测量视觉保真度模型,估计了原图像和目标图像之间的JND值。
- 基本原理:根据图像块的DCT系数估计变化的感知性,然后将这些估计合并成对感知距离的单个估计。
- 过程:1)频率敏感性;2)亮度敏感性;3)对比度敏感性;4)合并,计算总的感知距离
听觉感知
- 听觉感受到的刺激是:能量、频率。遵从Fechner定律。
- 掩蔽效应:频域掩蔽、时域掩蔽
- 频域掩蔽阈值:人耳能感知的最低频率成分的声压级。
- 绝对听觉阈值:安静环境中,能被人耳感知的纯音最小值。
通信隐写模型
隐写术安全模型
数字水印空间模型
典型隐写模型
- 评价隐写术的标准核心标准:隐蔽程度隐蔽程度越高,直接导致检测有效信息越困难
- 其他标准:隐写算法的好坏、隐写手段的复杂度、提取信息的难易度
隐写术分类
CTF隐写术现状
LSB隐写介绍
一种常见的方式是利用LSB来进行隐写,LSB也就是最低有效位 (Least Significant Bit)。原理就是图片中的像数一般是由三种颜色组成,即三原色,由这三种原色可以组成其他各种颜色,例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的1bit,在人眼看来是看不出来区别的,也把信息隐藏起来了。譬如我们想把’A’隐藏进来的话,如下图,就可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二进制串。
如果是要寻找这种LSB隐藏痕迹的话,Stegsolv.e是个神器,可以来辅助我们进行分析。
注:jpg是有损压缩,无法LSB隐藏信息;png虽有压缩却是无损的,bmp没有被压缩,这两者都可用LSB隐藏信息。
0x10 工具介绍
- binwalk
Binwalk是一个固件的分析工具,多用于逆向工程、取证、隐写分析。 更多...
$ binwalk firmware.bin //最简单的操作
$ binwalk --enable-plugin=zlib firmware.bin //有些签名无法识别,利用zlib插件扫描zlib压缩包可识别
$ binwalk -y filesystem firmware.bin //指定字符串“filesystem”搜索(正则),-Y 输出结果只包含文本字符串
$ binwalk -x filename firmware.bin //排除搜索结果中指定'filename'字符串(正则)
$ binwalk -y filesystem -x jffs2 firmware.bin //输出既包含'filesystem'又排除'jffs2'的字符串
$ binwalk --dd='zip archive:zip:unzip %e' firmware.bin //<type>:<extension>[:<command>]. type 是签名中描述的小写字符串(支持正则表达式);extension 是将数据保存到磁盘时使用的文件扩展名;command 是当数据已保存到磁盘后可选的命令执行语句
$ binwalk -e firmware.bin //自动提取
$ binwalk --extract=./my_extract.conf firmware.bin //自定义提取规则'my_extract.conf'
$ binwalk -Me firmware.bin //递归提取(8层)
$ binwalk -A firmware.bin //扫描与功能相关联的各种框架操作码
$ binwalk -W firmware1.bin firmware2.bin firmware3.bin //比较, 在文件当中相同字节的是绿色显示,不同的是红色显示,蓝色表示只是有些文件当中的不同部分
$ binwalk -S firmware.bin //字符串搜索
$ binwalk -E firmware.bin //熵分析
$ binwalk -AE firmware.bin //签名或字符串以及熵分析
$ binwalk --heuristic firmware.bin //启发式扫描, 加密或压缩的高熵的数据块进行分类
$ binwalk --list-plugins //插件列表
$ binwalk --enable-plugin=foo firmware.bin //启用插件扫描
$ binwalk --disable-plugin=foo firmware.bin //禁用插件扫描
$ binwalk -f binwalk.log firmware.bin //日志记录功能
$ sudo binwalk -u //升级binwalk
- WinHex
Winhex是在Windows下执行的十六进制编辑软件,此软件功能很强大,有完好的分区管理功能和文件管理功能。能自己主动分析分区链和文件簇链。在CTF中一般用来查看文件头格式、直接修改16进制数据,等等。更多...
- 010 Editor
010 Editor是一款非常强大的文本/十六进制编辑器,除了文本/十六进制编辑外,还包括文件解析、计算器、文件比较等功能,但它真正的强大之处还在于文件的解析功能。我们可以使用010Editor官方网站提供的解析脚本(Binary Template)对avi、bmp、png、exe等简单格式的文件进行解析,当然也可以根据需求来自己编写文件解析脚本。
- Stegsolve
Stegsolve是一款图片分析工具,具体功能如下:
- Stegdetect
stegdetect是一种数字图像隐写分析工具,主要实现JPEG图像的隐秘信息的嵌入的检测。更多...
功能:
q – 仅显示可能包含隐藏内容的图像
n – 启用检查JPEG文件头功能,以降低误报率。如果启用,所有带有批注区域的文件将被视为没有被嵌入信息。
如果JPEG文件的JFIF标识符中的版本号不是1.1,则禁用OutGuess检测。
s – 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,
算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
d – 打印带行号的调试信息。
t – 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
j – 检测图像中的信息是否是用jsteg嵌入的。
o – 检测图像中的信息是否是用outguess嵌入的。
p – 检测图像中的信息是否是用jphide嵌入的。
i – 检测图像中的信息是否是用invisible secrets嵌入的。
- ffmpeg
ffmpeg作为媒体文件处理软件,基本用法:
ffmpeg -i INPUTfile [OPTIONS] OUTPUTfile
输入输出文件通常就是待处理的多媒体文件了。可以是纯粹的音频文件,纯粹的视频文件,或者混合的。ffmpeg支持绝大部分的常见音频,视频格式,像常见的mpeg,AVI封装的DIVX和Xvid等等,具体的格式支持列表可以使用ffmpeg -formats查看或直接查阅文档。更多...
- MSU Stego
用于对 AVI 文件进行隐写\提取操作. 官方介绍如下:
MSU StegoVideo allows hiding any file in a video sequence.Different popular codecs were analyzed and an algorithm, providing the smallest data loss after compression, was chosen. Convolutional codes with Viterbi decoding are used to correct occurred errors. 更多...
Main features
Small video distortions after hiding info.
It is possible to extract info after video compression.
Information is protected with passcode.
- QR Reader
二维码扫描工具可自定义参数,可以自动识别二维码反色,自动识别电脑屏幕二维码,识别率比手机扫码高,非常强大。
- MP3Stego
用于对 MP3 音频文件进行隐写、提取等操作。更多...
用法:
encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3
decode -X -P pass svega_stego.mp3
二、文本格式
0x01 文件格式概述
- 文本格式:.pdf、.txt、.doc、.docx
- 图像格式:.png、.jpg、.bmp、.gif
- 音频格式:.mp3、.wma、.wav
- 视频格式:.mp4、.rmvb、.avi、.flv
0x10 格式协议分析
- pdf文件格式 更多...
数据类型
- 对象, 一个PDF文档是由一个由基本数据类型组成的数据结构。
- 文件(物理结构), 决定对象是如何存放在一个PDF文件中的, 它们是如何被访问的,如何被更新的。这个结构是独立于对象的语义的。
- 文档结构, 说明一些基本的对象类型是如何来表现PDF文档的成分的:页,字体,批注,和另外一些内容。
内容流.一个PDF文件内容流包含一系列的指令,描述页面的外观或其他图形实体的外观和文件内容。
持续更新中...