跳转至

图片隐写

图片隐写

置顶一个图片隐写神器,一键出 flag 1592054069578-5a68ef2f-c719-4637-9c02-5246f7e6055f.jpeg

https://github.com/zed-0xff/zsteg

安装:gem install zsteg

1592054337731-b0256fdb-ba7d-4114-ab5a-d8353dd753d5.png

图片相关

PNG 格式简介

文件格式:对于PNG文件来说,其文件头总是由固定的字节来描述的,剩余的部分由3个以上的PNG数据(Chunk)按照特定的顺序组成。

文件头:89 50 4E 47 0D 0A 1A 0A + 数据块 + 数据块 + 数据 块…..

修改图片高度

如果linux下打不开,windows下打得开可能就是该高度了

左边是宽度,圈起来的是高度,,把高度改成跟宽一样的

1567165442893-464c4f58-d908-47a5-8fd5-634ba2a4eb67.png

文件尾追加文件

直接十六进制编辑器

图片元数据

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(Data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

元数据中隐藏信息在比赛中是最基本的一种手法,通常用来隐藏一些关键的 Hint 信息 或者一些重要的比如 password 等信息。

这类元数据可以 右键 -> 属性 查看

outguess

kali下使用outguess -r avatar.jpg -t 1.txt

把 avatar.jpg 图片破解信息的数据输出到 1.txt

f5-steganography

F5-steganography-james.zip

F5隐写加密:

java Embed 原图片.jpg 生成的图片.jpg -e 隐藏的文件.txt -p 密码

F5隐写解密:

java Extract 生成的图片.jpg -p 密码

演示:

1580386028734-a57f5911-0caa-4af7-8bab-1c151f768851.png

1580385926648-4f6d39b0-7a77-407d-a9ad-5ecbf615382e.png

ps. 之所以使用jview是看自带的.bat文件是用的这个,但是用java貌似没啥影响

1580386387655-acda49cb-ca7a-434a-9671-6093853afe35.png

Beyond Compare

使用软件:Beyond Compare 提取码: uuch

安装打开后界面是这样的:点击红框框出来的

1575086852035-092de3b1-ca79-47d8-bced-c07067993e54.png

选择图片比较

1575086897546-f92c1ce6-ab60-49bd-9807-427b62aa126d.png

上面还有一些选项可以试试

1575086957741-d29ddbd6-cbc9-4cd1-bab6-bd6db280fff9.png

IDAT信息隐藏

IDAT:存储实际的数据,在数据流中可包含多 个连续顺序的图像数据块,储存图像像数数据。

在数据流中可包含多个连续顺序的图像数据块。

采用 LZ77 算法的派生算法进行压缩。

可以用 zlib 解压缩。

IDAT块只有当上一个块充满时,才会继续下 一个新块

如果有 IDAT 还没填满就填充了下一个就要考虑是不是有问题

命令:pngcheck.exe -v sctf.png 可以查看

1567167857257-3fe4637c-dae1-496b-9f9c-28355804361d.png

也可以使用 Stegsolve -> Analysis -> ** File Format **有详细介绍

这就说明这 138 是认为添加的,把这个位置的内容串保存出来,在进行其他操作(文本进制转换、写图片)

LSB信息隐藏

PNG文件中的图像像数一般是由RGB三原色组成,每一种颜色占用8位,取值范围为 0×00~0xFF,即256种颜色,一共包含了256的三次方的颜色,即16777216(1千677W)种 颜色。人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216(677W)种

LSB隐写就是修改RGB颜色分量的最低二进制位(LSB),每个颜色都会有8bit,LSB隐写就是修改了像数中的最低的1Bit,而人类的眼睛不会注意到这前后的区别,每个像数可以携带 3Bit的信息,这样就把信息隐藏起来了

使用 Stegsolve 各个通道都看看,或者 Analysis -> Data Extract 合起来看看,有什么熟悉的保存出来

cloacked-pixel

https://github.com/livz/cloacked-pixel

这是一个用来看 LSB 隐写的东西(带密码的 LSB)

可以提取数据,用法很明确了

$ python lsb.py 
LSB steganogprahy. Hide files within least significant bits of images.

Usage:
  lsb.py hide <img_file> <payload_file> <password>
  lsb.py extract <stego_file> <out_file> <password>
  lsb.py analyse <stego_file>

GIF信息隐藏

在某一帧图片藏着信息,用 ps 或者爱奇艺万能播放器也可以一帧一帧的看

每一帧图片间隔时间,可能藏着规律,或许是二进制编码、或许是摩斯密码

NTFS流隐写

安恒的一道题:猫片,先是LSB提取一个png,然后改高度得到完整的取反色,下载文件,得到RAR,使用NTFS流隐写,打开软件,然后用 winrar 解压缩,然后扫描一下,发现一些其他的东西,导出就可以了

1567171060656-78335963-22f5-4dcd-a716-ad28904092db.png

原文: https://www.yuque.com/hxfqg9/misc/btt8wc