文件隐写(CTF隐写)

本文详细介绍了IT技术中的隐写术,包括使用各种工具如file、WinHex、010Editor和专业工具Binwalk、Foremost分析文件,以及在图片、音频、视频和文档格式中的隐写方法。重点讨论了文件类型识别、头尾修复、密码破解和隐写检测等内容。
摘要由CSDN通过智能技术生成

最基本隐写

kali-Linux模式下,使用file命令(不知道后缀名,打开文件),知道文件后缀

winhex程序:windows下通过文件头识别文件,(使用工具010Editor查看)

jpgFFD8FFE1
png89504E47
gif47494638
bmp424DC001
zip504B0304
rar52617221
  • 文件内容隐写:用010Editor查看,先浏览一下有可能在最后有flag。

文件头残缺或错误

用file命令查看不到文件类型,只回复data

  • 使用010Editor在文件头纠正修改。

文件分离

Binwalk工具:Linux下分析和分离的工具

  • binwalk 文件名:分析文件

  • binwalk -e 文件名:分离文件

foremost工具:如果binwalk不成功,可以用foremost。将文件复制到kali里(会分类放到对应文件夹里)

  • foremost 文件名 -o 输出目录

  • count 是要到哪几块,skip就是跳到哪开始要

以foremost的题目为例:

winhex:手动分离(用010Editor就行,更简单)

  • 给16进制的.txt也可以用010Editor查看,知道文件头名,另存后修改后缀。

文件合并

Linuxwindows
cat 合并文件 > 输出文件copy /B 合并的文件 输出的文件
完整性检测完整性检测
** md5sum 文件名**certutil-hashfile 文件名 md5(也可以是其他的)
  • 会给合并成功的标志 例如:md5合并后如果一样说明合并正确

  • 合并后打不开,小心文件头残缺 利用file查看。再用010Editor修改文件头。

图片隐写的常见方法总结

  1. 细微的颜色差别

  2. GIF图的多帧隐藏

    • 颜色通道隐藏

    • 不同帧图信息隐藏

    • 不同帧对比隐藏

  3. Exif信息隐藏

  4. 图片修复

    • 图片头修复

    • 图片尾修复

    • CRC校验修复

    • 长,宽,高度修复

  5. 最低有效位LSB隐写

  6. 图片加密

    • Stegdetect

    • outguess

    • Jphide

    • F5

图片文件隐写

filework(类似PS,但没PS强大)

Exif

相当于查看文件属性,看详情信息。

Exiftool工具可以更加方便的读取和修改Exif的信息

  • 使用 sudo apt-get install libimage-exiftool-perl 命令安装

  • exiftool + 文件名、

盲水印

  • 傅里叶变换实现了从空域或时域到频域的转换。整个转换过程可以理解为,先将原图进行二维傅里叶变换生成频谱图,然后将水印编码,生成编码后的水印,叠加之后获得含水印的频谱图,最后经过二维傅里叶逆变换得到含水印的图像。

  • 要提取盲水印,只需要先把原图和带水印的图经过二维傅里叶变换转换为频谱图,然后频域相减,最后根据原来的水印编码方式进行解码。

  • 在CTF中我们可以使用Blind waterMark(GitHub - chishaxie/BlindWaterMark: 盲水印 by python) 附加和提取图片中的盲水印,使用Audacity等工具提取音频的频谱图获取盲水印。

Stegsolve

  • 也可能另一张图片在所给图片(用记事本打开)的最下边链接里

  • 也要注意顺序,多试几遍

  • 得出来的二维码要注意,这不是正常的,还需要颜色取反处理,就电脑自带的画图软件就可以。(彩色的有可能是多个二维码放一起了)

LSB

Stegsolve工具:这个工具需要自己去选组合

例题

Zsteg:把所有组合的情况全部展示

wbsteg04工具:解密通过lsb加密的图片(.bmp的图片)

  • 一般有6个步骤

  • 也可以用Zsteg直接解密

  • 有无密码,没有就直接next

  • 保存到另一个地方里,自己创建,或者直接输入,软件会自己创建

下边就直接next就可以,等待破解。

  • 打开是乱码再用010Editor打开,可以看到flag

  • python脚本解密(kali里要有python的环境)

  • 这题也可以转成.png再用Stegsolve工具打开,换通道也可以

import PIL.Image
def foo():
 im = PIL.Image.open('01.bmp')  #放文件名
 im2 = im.copy()
 pix = im2.load()
 width, height = im2.size
​
 for x in range(0, width):
     for y in range(0, height):
         if pix[x,y]&0x1 == 0:
             pix[x,y]=0
         else:
             pix[x,y]=255
 im2.show()
 pass
if __name__ == '__main__':
 foo()
 print('ok')
 pass

CRC校验错误

TweakPNG
  • CRC错误

  • CRC没错,但宽,高错了(例如给了一半的二维码,按上述修改CRC图片没变)

  • 也可以用filework直接看图层,尝试一下

import os
import binascii
import struct
​
crcbp = open("2.png", "rb").read()
for i in range(1024):
 for j in range(1024):
     data = crcbp[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
     crc32 = binascii.crc32(data) & 0xffffffff
     if crc32 == 0xcbd6df8a:
         print(i,j)
         print("hex", hex(i), hex(j))

Windows下Bftools

Windows下SilentEye

二维码处理

例题

  • 取反后用stegsolve打开,换不同通道,依次扫描(看到是DES加密,密钥,密文)

  • 在线加密解密工具解密就可以 (在线加密解密 - chahuo.com

了解

Stegdetect

音频隐写

主要工具:

  • MP3 :MP3Stego

  • 音频频谱:Audacity

CTF 音频隐写 大总结_ctf音频-CSDN博客

视频隐写

视频隐写是一种以视频为信息载体的隐写方式。CTF题目一般是将某些图片隐藏在视 频中,在图片中隐藏其他信息,因此首要任务是从视频中提取图片。

使用ffmpeg命令逐帧提取图片。

ffmpeg -i test.mp4 -r 30 image-%3d.jpg
  • text.mp4:被提取的视频文件。

  • -r 30:每秒提取30帧,一般是24帧。

  • image-%3d:文件命名格式是image-001.jpg。

ffmpeg -i test.mp4 -r 30 -t 4 image-%3d.jpg
  • -t:取t 时刻的帧。

ffmpeg -i test.mp4 -r 30 -ss 00:00:20 image-%3d.jpg
  • -ss:截取帧的初始时间。

ffmpeg -i test.mp4 -r 30 -ss 00:00:20 -vframes 10 image-%3d.jpg
  • -vframes: 截取帧的数量。

提取到隐藏图片之后继续从图片方向解题即可。

PDF隐写

  • PDF文件头添加额外信息

  • PDF中图片下还有图片

攻防世界 misc :pdf 多种方法(均有效)_攻防世界pdf-CSDN博客

DOC隐写

  • 更改压缩包内的内容

  • 将字体设置为不易被察觉的颜色或隐藏文字

【CTF-MISC-1】 Word隐写&零宽字符隐写-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值