MISC工具使用
exif信息
拿到一个图片时,建议查看一下它的exif信息,可能会有意想不到的收获,出题人经常在图片exif的信息中藏flag或提示信息。
stegsolve和lsb隐写
Stegsolve是常用的工具,功能十分强大
用stegsolve打开图片后,建议先把图层看一遍,可能会有flag或者提示信息、二维码之类的东西
如果是gif图片,可以使用frame browser查看使用帧或者有网站查看帧
lsb隐写:在翻看图层的时候,可能会发现lsb隐写的痕迹,使用stegsolve的data extract,选上对应的通道,就可以得到隐藏的信息。
LSB隐写加密,GitHub上面有相关的加解密脚本(但这个项目是基于python2的,使用时需注意自己的python版本)
https://github.com/livz/cloacked-pixel
运行的命令为:
1 | 加密 |
1 | 解密 |
zsteg(lsb)
kali安装:
1 | gem install zsteg |
使用方法:
1 | zsteg 图片 |
OurSecret
出题人一般会给提示,比如我们的秘密是绿色的,其中秘密英文是Secret就是在暗示这个工具
使用 在UNHIDE 中打开文件 输入密码 再点击Unhide就好了
##S-Tools
打开之后,把要解密的图片拖进去,然后右键Reveal输入密码就可以得到隐藏文件了
##Jphswin.exe
点击open jpeg 打开图片 点击seek,如果有密码就输密码,没有就直接回车
Free_File_Camouflage
不太常见的一个工具
- 解密图片的位置
- 如果有密码的话就勾选,然后输密码,没有就跳过
- 解出文件的放置位置
##F5-steganography(F5隐写,需要密码)
kali中进行安装
1 | git clone https://github.com/matthewgao/F5-steganography |
进入F5-steganography 文件夹后,打开终端
解密
1 | java Extract 加密过的图片 -p 密码 |
运行后会在文件夹里生成一个output.txt,打开即可
加密
1 | java Embed 原图 生成图 -e 隐藏的文件.txt -p 密码 |
outguess(可需要password)
kali安装 先下载
1 | git clone https://github.com/crovick/outguess |
然后进入outguess文件夹,打开终端输入 ./configure&&make&&make install
成功之后即可
使用:进入文件夹后打开终端
加密
1 | outguess -k 密码 -d hidden.txt 1.jpg 2.jpg |
解密
1 | outguess -k 密码 -r 2.jpg out.txt |
steghide
kali 中的安装:sudo apt-get install steghide
加密
1 | steghide embed -cf out.jpg -ef flag.txt [-p 密码] |
把flag.txt隐写到out.jpg中,如果要添加密码,尾部要接上 -p 密码
解密
1 | steghide info out.jpg #查看图片中嵌入的文件信息 |
16进制查看软件及文件头修复加宽高爆破
推荐010Editor 和winhex
010Editor安装:https://www.sweetscape.com/download/010editor/
修改图片宽高
png
很多时候,所给图片的宽高,甚至crc32校验值都是被修改过的,需要我们去爆破得到正确的值,png图片修改宽高还是很容易的,这里是png.bt
模板,框中的值分别为宽高
和crc值
,这里修改之后保存即可
对于png,一般情况下,是把高度改大
,看下面有没有内容
jpg
运用jpg.bt
,可以很方便的修改jpg的宽高
对于jpg,一般情况下也是把高度改大
,能看到图片下面的内容
gif
整体和前两种差不多,借助gif.bt
,这里比较特殊的是,每一帧都有独立的宽高
,因为不知道flag藏在哪一帧,一般建议把所有帧的高度都改大
,然后用Stegsolve
打开,翻看每一帧图片。
bmp
借助bmp.bt
,整体和前面差不多,当宽高错误时,图片显示很乱
爆破脚本
png图片,已知正确的IHDR块的CRC值时,爆破宽度和高度
1 | import zlib |
png图片,如果IHDR块的CRC的值被修改过,那就直接爆破,运行后会生成很多个图片,看一下哪个是正常的就行
1 | #这里是已知高度的情况下爆破宽度,根据自己的需要修改脚本 |
jpg图片,已知高度,爆破宽度
1 | #如果跑出来的图片看不到想要的东西,可能是狗出题人把原本的高度调小了,可以试一下把高度改大,再跑一遍试试 |
gif图片,已知高度爆破宽度
1 | #如果跑出来没东西,试试把高度改高 |
查看文件的字节
使用010editor和winhex对文件进行分析
分析文件头文件尾
文件类型 | 文件头 | 文件尾 | 特征 |
---|---|---|---|
JPEG (jpg) | FFD8FFE000104A464946 | FF D9 | ÿØÿà |
PNG (png) | 89504E47 | AE 42 60 82 | PNG |
GIF (gif) | 47494638 | 47494638 | GIF89a |
ZIP Archive (zip) | 504B0304 | 50 4B | PK.. |
TIFF (tif) | 49492A00 | ||
(bmp) | 424D | BM | |
RAR Archive (rar) | 52617221 | Rar!… | |
Wave (wav) | 57415645 | ||
7Z | 377ABCAF271C | 7z¼¯ |
webstego解密
链接:https://pan.baidu.com/s/1mRvHQURAQbFJmvvglAFjLg
提取码:nail
encode是加密
decode是解密
盲水印
普通双图盲水印
项目地址:https://github.com/chishaxie/BlindWaterMark
具体安装过程自行百度
使用:
加密
1 | python2 bwm.py encode 1.png water.png 2.png #PY2 |
解密
1 | python2 bwm.py decode 1.png 2.png out.png #PY2 |
py2和py3的算法不一样,得到的out.png清晰度也不一样,建议都试一下
也可以加–alpha参数 可能会使图片更清晰
1 | python3 bwmforpy3.py decode 1.png 2.png out.png --alpha 10 #PY3 |