杂项-图片隐写

文章介绍了多种图片隐写方法,包括Firework、Exif信息、Stegsolve工具、LSB替换、zsteg、wbstego4、Python脚本处理图像、TweakPNG、Bftools、SilentEye等,涉及到加密解密、JPEG图像检测、二维码处理等多个方面,展示了如何在图像中隐藏和提取信息。
摘要由CSDN通过智能技术生成
图片隐写的常见隐写方法:

在这里插入图片描述
三基色:RGB(Red Green Blue)

图片文件隐写

1.Firework

使用winhex打开文件时会看到文件头部中包含firework的标识,通过firework可以找到隐藏图片。
使用场景:查看隐写的图片文件
在这里插入图片描述

2.Exif

Exif按照JPEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图像,可以通过与JPEG兼容的互联网浏览器/图片浏览器/图像处理等一些软件来查看Exif格式的图像文件,就跟浏览通常的JPEG图像文件一样。

图片右键属性,查看exif或查看详细信息,在相关选项卡中查找flag信息。
在这里插入图片描述Linux:使用exiftool工具(格式:exiftool 图片名)

如果拍摄图片时,开启了GPS功能,则在图片的详细信息里会记录当前位置对应的经纬度。
在这里插入图片描述
可以下载谷歌地球查询对应经纬度的位置。

3.Stegsolve

当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息,StegSolve可以方便的进行这些操作。
使用场景:两张图片信息基本相同。

在这里插入图片描述
在这里插入图片描述

4.LSB(最低有效位Least Significant Bit)

LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原理的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。
在这里插入图片描述

1. Stegsolve

在这里插入图片描述

2. zsteg工具

zsteg可以检测PNG和BMP图片里的隐写数据:
在这里插入图片描述

3. wbstego4工具

在这里插入图片描述支持解密的文件格式:.bmp格式的图片、pdf文件
在这里插入图片描述

4.python脚本处理

将以下脚本放在kali中运行,将目标文件放在脚本同目录下,将脚本中的文件名修改为文件名,运行python即可。

#LSB.py
#coding:utf-8
import PIL.Image
def foo():
    im = PIL.Image.open('01.bmp')
    im2 = im.copy()
    pix = im2.load()
    width,height = im2.size
    
    for x in xrange(0,width):
        for y in xrange(0,height):
            if pix[x,y]&0x1 == 0:
                pix[x,y] = 0
            else:
                pix[x,y] = 255
    im2.show()
    pass
if __name__=='__mian__':
    foo()
    print ('ok.')
    pass

修改脚本中的图片名,直接在kali中python3运行(python3 LSB.py)
在这里插入图片描述

5.TweakPNG

TweakPNG是一款简单易用的PNG图像浏览工具,它允许查看和修改一些PNG图像文件的元信息存储。
使用场景:

  1. 文件头正常却无法打开文件,利用TweakPNG修改CRC。
  2. 有时CRC没有错误,但是图片的高度或者宽度发生了错误,需要通过CRC计算出正确的高度或者宽度。
    在这里插入图片描述
    通过CRC计算出正确的高度或者宽度:
    在这里插入图片描述
#coding:utf-8
import binascii
import struct
crcbp = open("panda.png","rb").read()	#打开图片
print("读取中...")
crc32frombp = int(crcbp[29:33].hex(),16)        #读取图片中的CRC校验值
print("图片中的CRC校验值:",crc32frombp)

for i in range(4000):
    for j in range(4000):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        #计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
        if(crc32 == crc32frombp):
            print("图片大小为:",i,j)
            print("hex:",hex(i),hex(j))
            exit(0)
6.Bftools

bftools用于解密图片信息。
使用场景:在windows的cmd下,对加密过的图片文件进行解密。
格式:

Bftools.exe decode braincopter 要解密的图片名称 --output 输出文件名
Bftools.exe run 上一步输出的文件

在这里插入图片描述

7.SilentEye

silenteye是一款可以将文字或者文件隐藏到图片的解密工具。
使用场景:windows下打开silentEye工具,对加密的图片进行解密。
在这里插入图片描述在这里插入图片描述

8.JPG图像加密
(1)Stegdetect工具探测加密方式

​ Stegdetect程序主要用于分析JPEG文件。因此用Stegdetect可以检测到通过 JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage 等这些隐写工具隐藏的信息。
在这里插入图片描述

(2)Jphide

Jphide是基于最低有效位LSB的JPEG格式图像隐写算法。
在这里插入图片描述

(3)Outguess

outguess一般用于解密文件信息。
使用场景:Stegdetect识别出来或者题目提示是outguess加密的图片。
在这里插入图片描述

(4)F5

F5一般用于解密文件信息。
使用场景:Stegdetect识别出来是F5加密或者题目提示是F5加密的图片。
进入F5-steganography_F5目录,将图片文件拷贝至该目录下,从CMD进入该目录。
在这里插入图片描述
运行结束后我们可以直接在目录下的output.txt中看到结果。

9.二维码处理
  1. 使用二维码扫描工具CQR.exe打开图片,找到内容字段
    在这里插入图片描述

  2. 如果二维码某个定位被覆盖了,该工具有时候也可以自动识别,如果识别失败,需要使用PS或画图工具将另外几个角的定位符移动到相应的位置,补全二维码。
    在这里插入图片描述

  3. 如果某个二维码的定位点中间是白色,可能被反色了,使用画图工具把颜色反色回来再扫描即可在这里插入图片描述

针对二维码颜色通道,可以使用Stegslove工具查看是否有加密的算法、密钥及密文。

课程链接:https://www.bilibili.com/video/BV1eq4y1x71H/?spm_id_from=333.999.0.0

文件操作合隐写是一种在CTF(Capture The Flag)比赛中常见的技巧。其中包括使用outguess解密文件信息、使用file命令来修改文件后缀名以正常打开文件,以及查找隐藏内容的方法。具体可以按以下步骤进行操作: 1. 使用outguess解密文件信息:outguess一般用于解密文件中隐藏的信息。首先,使用Stegdetect工具识别出是否是outguess加密的图片。如果是,则需要进行编译和安装outguess工具。通过运行"./configure & make & make install"命令来完成安装。然后,可以使用outguess命令来解密文件,格式为"outguess -r 要解密的文件名 输出结果文件名"。 2. 使用file命令修改文件后缀名:当一个文件没有后缀名或者有后缀名但无法正常打开时,可以使用file命令来识别文件类型,并根据识别出的文件类型来修改文件后缀名。使用命令"file 文件名"来获取文件类型信息,然后根据文件类型修改后缀名即可正常打开文件。 3. 查找隐藏内容:在文件中隐藏内容的常见方法是直接将密钥以十六进制的形式写在文件的开头或结尾部分。在分析文件时,可以重点观察文件的开头和结尾部分。如果密钥在文件中间部分隐藏,则可以通过搜索关键字KEY或flag来查找隐藏内容。在Windows下,可以使用工具如Winhex或010Editor来搜索隐写的文件内容。 综上所述,CTF杂项文件操作合隐写涉及outguess解密文件信息、使用file命令修改文件后缀名以正常打开文件,以及查找隐藏内容的方法。以上是一些常见操作步骤,具体情况可能会有所不同。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值