图片隐写
文件类型
识别方法
方法一 file
Linux下file命令
file 文件名
方法二 文件头类型
Windows下通过winhex查看文件头字段识别文件类型
文件分离操作
方法一: Linux下使用Binwalk工具进行文件的分析和分离。
分析文件:binwalk filename
分离文件:binwalk -e filename
方法二: 如果binwalk无法正确分离出文件,可以使用formost工具。
foremost 文件名 -o 输出目录名
方法三: 当文件自动分离出错或因为其他原因无法自动分离时,用dd工具进行手动分离。
dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数
参数:if=file输入文件名,省略为标准输入。
参数:of=file输出文件名,省略为标准输出。
参数:bs=bytes同时设置读写块的大小为bytes。
参数:skip=blocks从输入文件开头跳过blocks个块后再开始复制。
参数:count一共取的块。
方法四: 使用010Editor直接选择对应的十六进制,然后右键单独保存,实现分离。
文件合并操作
Linux
Linux下:cat 要合并的文件 输出的文件
完整性检测: md5sum 文件名
Windows
Windows下: copy /b 合并的文件 输出的文件
完整性检测:certutil -hashfile 文件名 md5
文件内容隐写
文件内容隐写,是直接将KEY以十六进制的形式写在文件中,通常在文件的开头或结尾部分,分析时通常重点观察文件开头和结尾部分。如果在文件内容中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。
示例
1.Firework
- 使用010Editor打开文件后,如果看到文件头部包含firework的标识,可以通过firework来找到隐藏的图片。
2.Exif
- Exif按照JPEG的规格在JPEG中插入一些图像、数字相机的信息数据以及缩略图像,可以通过与JPEG兼容的图片浏览器,图片处理软件等查看Exif格式的图像文件。
- 右键属性,查看exif或者详细信息,在相关的选项卡中查找flag。
- Linux下直接使用exiftool工具查看
3.Stegsolve
- 当两张jpg图片的样式,大小,像素基本相同时,可以考虑进行结合分析,将两个文件的像素进行ADD,SUB,XOR等操作,看是否可以得到有用的信息。Stegsolve工具可以方便的进行这些操作。
4.LSB(最低有效位)
- LSB替换隐写的基本思想:用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高低平面与替代 秘密信息的最低位平面组合成含隐藏信息对=的新图形。
- 通过修改像素中最低位的一位来达到隐藏的效果。
- 也可以使用Stegsolve来进行。
- Linux下的工具:zteg工具
- 下载:
gem install zsteg
- 检测LSB隐写:
zsteg xxx.png
- 下载:
- Windows下的工具:wbstego4工具。能够解密通过LSB加密的图片。
- 其它方式:Python脚本。
5.TweakPNG
- TweeakPNG是一款PNG图像浏览工具,它允许查看和修改一些PNG图像文件的原信息存储。
- 如果文件头是正常的,但却无法打开,可以使用TweakPNG修改CRC。出现校验信息错误时,可以根据错误的CRC去十六进制中搜索,然后改成正确的CRC。(CRC上一行之后的 8个字节,前四个为宽度,后四个为高度(十六进制下的第二行前八位))
- 有时不是CRC的错误,而是图片的宽高错误,需要通过CRC计算出正确的高度或宽度。可以通过脚本进行计算。
6.Bftools
- Bftools常用于解密图片信息。
- Windows下:
Bftools.exe decode braincopter 要解密的图片名称 -output 输出文件名
Bftools.exe run
上一步输出的文件。
7.SilentEye
- Windows下可视化解密工具。
8.JPG图像加密
- Stegdetect 工具用于探测JPEG文件的加密方式。(Linux下)
- 可以检测到JSteg,F5,Camouflage,OutGuess,JPHide,appendX,Invisible Secrets等加密方式所隐藏的信息。
stegdetect xxx.jpg
stegdetect -s 敏感度 xxx.jpg
9.Jphide
- 基于LSB的JPEG格式图像隐写算法。
- 如果使用Stegdetect检测到使用jphide,可以使用Jphs进行解密。
10.Outguess
- outguess用于解密文件信息。
- 如果确认使用OUtguess加密的图片,可以使用outguess进行解密。
outguess -r 要解密的文件名 输出结果文件名
11.F5
- 识别是F5加密后,进入F5-stegangraphy_F5目录,将图片文件拷贝下来,cmd进入该目录。
Java Exrtact 待解密文件名 -p 密码
- 运行成功后,在output.txt可以看到解密结果。
12.二维码处理
- 使用工具CQR打开图片,查看内容字段。
- 如果二维码的定位角覆盖,该工具有一定几率识别,如果不能识别,需要使用其他工具将另外几个角的定位符移动搭配相应的位置,补全二维码。
- 如果二维码定位点中间是白色,可能是被反色了,可以使用其它工具进行反色再回来扫描。
工具
stegsolve
参数
Analyse下面几个功能键作简单介绍:
File Format:文件格式,这个主要是查看图片的具体信息
Data Extract:数据抽取,图片中隐藏数据的抽取
Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看
Image Combiner:拼图,图片拼接
用法
解释
RGB是红绿蓝 但他们的值代表的实际上是亮度R的数字越大,则代表红色亮度越高;R的数字越小,则代表红色亮度越低。G,B同理R的亮度各有256个级别,GB同理。即从0到255,合计为256个。从数字0到255的逐渐增高,我们人眼观察到的就是亮度越来越大,红色、绿色或蓝色越来越亮。然而256是2的8次方 所以你会看见上图的7~0 一共8个通道而Alpha就是透明度 该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域alpha的值为0就是全透明,alpha 的值为 255 则表示不透明因此左半部分就理解了右半部分就是Extra By(额外的)和Bit Order(位顺序)和Bit Plane Order(位平面的顺序)1).Extra By(额外的):分为row(行)和column(纵) 每个像素用R,G,B三个分量表示,那么一张图片就像一个矩阵,矩阵的每个单位就是(0~255,0~255,0~255) 也就会有是纵排列和行排列了,一般事先访问行再访问列(如果相反会引起ve使用方法)2).Bit Order(位顺序):MSB是一串数据的最高位,LSB是一串数据的最低位。3).Bit Plane Order(位平面的顺序) 整个图像分解为8个位平面,从LSB(最低有效位0)到MSB(最高有效位7)随着从位平面0 到位平面7,位平面图像的特征逐渐变得复杂,细节不断增加。(一般我们的图片如果是RGB那么就是24位 3乘8嘛)4)Bit Plane Order(位平面的顺序):一般图片是24位 也就是3个8 大家可以想像成三明治 比如BGR就是B为三明治第一层 G为第二层 R为第三层。 3.Steregram Solve:立体试图 可以左右控制偏移 可以放张图片试一下就知道这个是什么意思了4.Frame Browser:帧浏览器 主要是对GIF之类的动图进行分解,把动图一帧帧的放,有时候会是二维码5.Image Combiner:拼图,图片拼接(意思显而易见)
接下来会带大家实战去深入理解一下Data Extract里面ctf经常用到的LSB隐写
这个我们之前介绍的很详细
而LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,(人类的眼睛只能识别一部分颜色的变化)
![]
如果我们修改lsb那么颜色依然和没修改的一样,并且修改的话每个像数可以携带3比特的信息。
这个作用是在于把最低位的二进制全部提取出来
这个作用在于对提取出来的最低位使用lsb解码算法
版权声明:
本站所有文章除特别声明外,均採用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
weehhd!
喜欢就支持一下吧
打赏
微信
支付宝