目录

​隐写(信息隐藏,steganography)​

​Stegsolve​

​Binwalk​

​MP3Stego​

​Bftools(Brainfuck)​

​F5-steganography-master​

​S-Tools​


隐写(信息隐藏,steganography)

目的:以表面正常的数字载体如静止图象、数字音频和视频信号等作为掩护,在其中隐藏秘密信息。额外数据的嵌入既不改变载体信号的视、听觉效果,也不改变计算机文件的大小和格式(包括文件头),使隐蔽信息能以不为人知的方式进行传输

隐写分析:对多媒体信号进行统计分析,判断其中是否含有隐蔽信息

而隐写领域用的最多的就是对将要隐写的信息以二进制形式写入图片中,如:

copy /b 1.jpg+1.txt 2.jpg      #将1.txt以二进制形式写入到1.jpg的末尾,形成新文件2.jpg

隐写术_数据

一些图片格式16进制常见的头部和尾部(winhex打开查看)

jpg格式

  • 头部: 4A 46 49 46     JFIF

隐写术_二维码_02


png格式

  • 头部:50 4E 47   PNG

隐写术_右键_03


jfif格式

头部:JFIF

隐写术_二维码_04

gif格式

头部:47 49 46 38 39 61  GIF89a

隐写术_数据_05

在分析隐写文件的时候,会用到很多的工具,比如下面这些。我们接下来会讲些这些工具的用法。

隐写术_右键_06

 Stegsolve

stegsolve是一款用 java 写的图像隐写工具,可以查看图片的详细信息,每一层色阶等等,功能强大。

示例:​​http://www.shiyanbar.com/ctf/1768​

把图片下载下来,打开,发现漆黑一片。

隐写术_二维码_07

于是乎用Stegsolve打开,点击下面的向左或者向右按钮,出来了类似于二维码的图片,可是发现扫不出来。发现这跟正常的二维码图片有点不一样,好像反了。于是保存该图片

隐写术_数据_08

用PS打开,ctrl+i 进行反色,得到下面的二维码。扫描,得到flag。

隐写术_二维码_09

Binwalk

Binwalk是用于搜索给定二进制镜像文件以获取嵌入其中的文件和代码的工具。 具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。 Binwalk使用libmagic库,因此它与Unix文件实用程序创建的魔数签名兼容。 Binwalk还包括一个自定义魔数签名文件,其中包含常见的诸如压缩/存档文件,固件头,Linux内核,引导加载程序,文件系统等的固件映像中常见文件的改进魔数签名。

相关文章:​​https://www.aliyun.com/jiaocheng/122252.html​

MP3Stego

MP3Stego是在将WAV文件压缩成mp3的过程中,将水印嵌入到mp3文件中。嵌入数据先被压缩、加密,然后隐藏在mp3比特流中,默认输出的mp3格式是单声道的128bit

示例:​​http://www.shiyanbar.com/ctf/58​

下载该图片,是个美女,哇哇哇

隐写术_右键_10

把它交给 binwalk 处理下,发现里面含有zip压缩文件,zip压缩文件里面包含mp3格式的文件和另一个文件

隐写术_右键_11

于是乎将其分离,使用 -e 参数。得到 music.mp3 和一个 txt 文件。

隐写术_数据_12

打开txt文件,里面出现了钥匙。

隐写术_数据_13

把music.mp3文件放到MP3Stego里面,运行命令

decode.exe -X -P simctf music.mp3   #-X是获取隐藏的东西 -P指定密码

隐写术_数据_14

得到 music.mp3.txt 文件,打开,得到base64编码的数据

隐写术_右键_15

解码,得到 flag

隐写术_右键_16

利用MP3Stego加密

encode.exe -E key.txt -P 123456  test.wav  test.mp3  #将key.txt写入test.wmv中,密码为123456,最后胜出test.mp3文件

Bftools(Brainfuck)

隐写术_数据_17

示例:​​http://www.shiyanbar.com/ctf/1821​

隐写术_数据_18

然后将其进行Base64解码,得到flag

隐写术_二维码_19

F5-steganography-master

示例:​​http://www.shiyanbar.com/ctf/1938​

下载该图片 123456.jpg  ,放入F5-steganography-master文件夹中,运行该命令

java Extract 123456.jpg -p 123456   #-p指定密码

隐写术_二维码_20

得到 output.txt文件,打开,得到 flag

隐写术_右键_21

S-Tools

S-tools是一个时(空)域数字水印软件,支持 WAV 格式的音频文件、GIF和BMP格式的图像文件

示例:我们现在有一个 original.bmp 的图片,我们现在要利用S-tools将一个密码文件key.txt隐藏到该图片中

打开S-tools,界面是这样的。

隐写术_二维码_22

我们现在将图片拖进去 

隐写术_右键_23

然后将我们的密码文件 key.txt 也拖进去 ,此时会叫我们输入密码,我们输入密码,点击ok。这里还可以选择加密算法

隐写术_右键_24

然后会生成我们写入隐藏数据后的图片,右键,save as 保存名为 hidden.bmp !此时key.txt已经写入图片中了,并且图片可以正常打开,是看不到任何不一样的。

隐写术_右键_25

那么我们如何解密呢?把 hidden.bmp 拖入S-Tools中,右键->Reveal ,然后输入我们的密码。密码和加密算法必须和我们加密时候的一样

隐写术_二维码_26

然后就显示我们写入的 key.txt 文件了 

隐写术_二维码_27

我们右键,Save as就可以把我们写入的文件保存下来了!

CTF隐写术的一些思路

当我们做CTF题,拿到图片之后

  1. 第一步:先右键查看属性——>详细信息看有没有隐藏东西。如果没发现东西,
  2. 第二步:用Stegsolve打开,看图层是否隐藏了东西。如果还是没有,
  3. 第三步:则用Winhex打开图片,查看图片十六进制数据中是否隐藏了东西,有时候还需要修改图片的十六进制数据。传送门:​​https://www.jianshu.com/p/262397d9610b​

当我们做CTF题,拿到压缩包之后

  • 先解压缩,看能不能解压缩出来
  • 拿binwalk看一下压缩包里面有没有隐藏东西