misc图片隐写
1、LSB(最低有效位Least Significant Bit)
LSB替换隐写基本思想使用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高位平面与替代秘密信息的最低位平面组成含隐藏信息的新图形
例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像素中的最低的1bit。在人眼中看来是看不住来区别的,也把信息隐藏起来了。如:把A转成16进制的0*61在转成二进制的01100001,在修改为红色通道的最低位为这些二进制串。
像素三原色(RGB)
通过修改像素中最低为的1bit来达到隐藏的效果
工具:stegsolve、zsteg、wbstego4(通常用于.bmp和.pdf)、Python脚本
因为不确定Red、Blue、Green的排列顺序,所以需要依次选择RGB、BGR……
zsteg(这个方法很厉害)
zsteg是一个命令行工具,linux下输入gem install zsteg进行安装
使用:zsteg 图片名
zsteg会把所有可能情况RGB、BGR……中的文本信息依次显示出来
工具cloacked-pixel (用这个工具解密lsb是需要有密码的,所以一般有密码的lsb要想到这个工具,outguess也是需要密码的)
https://github.com/livz/cloacked-pixel
首先可以用solvelance判断是lsb隐写,再用cloacked-pixel解密
我把它放在kali里面了
python2 .\lsb.py extract .\goddess.png flag.txt 123456
我的使用出现了问题,不知道怎么给python2安装模块
2、CRC检验出错
当PNG文件头正常但无法正常打开文件,可能是CRC校验出错。可以尝试通过TweakPNG打开PNG,会弹处校验错误的提示,比如显示CRC是fe1a5ab6,正确的是b0a7a9f1,打开问winhex或010editor找到CRC值fe1a5ab6将其改为b0a7a9f1
3、图片高度或宽度错误
有时CRC没有错误,但是图片的高度或宽度发生了错误,需要通过CRC计算出正确的宽度和高度
前八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头,该段格式是固定的
前四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13,数据块包含了png图片的宽高等信息,该段格式是固定的
之后的四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示,该段格式也是固定的
之后进入13位数据块,前8个字节00 00 01 69 00 00 03 25中:前四个字节00 00 01 69代表该图片的宽,该段数据是由图片的实际宽决定的,后四个字节00 00 03 25代表该图片的高,该段数据是由图片的实际高度决定的
剩余的4位98 6B 9E 93为该png的CRC检验码
1 |
|
4、图片加密
Bftools
在windows的cmd下,对加密过的图片文件进行解密
格式:
Bftools.exe decode braincopter 要加密的图片名称 -output 输出文件名
Bftools.exe run 上一步输出文件名
Stegdetect
只适用于jpg加密
Stegdetect工具探测加密方式,主要用于分析PEG文件,因此用stegdetcct用于检测到通过JSteg、JPHide、OutGuess、Invisible Secret、F5、appenddX和Camouflage这些隐写工具隐藏的信息
格式:
.\stegdetect.exe xxx.jpg
.\stegdetect.exe -s 敏感度 xxx.jpg
.\必不可少
#敏感度最大为10,敏感度越大检测结果越准确,所以一般都是
.\stegdetect.exe -s 10.0 xxx.jpg
.\stegdetect.exe -tjopi -s 10.0 1.jpg
在stegdetect.exe所在位置右键“在Windows终端打开”,因为我下载了PowerShell
F5隐写:
进入F5-steganography/目录下java Extract Misc.jpg -p '密码'
5、Steghide隐写
kali自带
steghide extract -sf xxx.jpg
6、BPG图片查看
BPG Image format (bellard.org)