文件隐写(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博客

文件操作合隐写是一种在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命令修改文件后缀名以正常打开文件,以及查找隐藏内容的方法。以上是一些常见操作步骤,具体情况可能会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值