说在前面
菜鸡一个,做题以来的总结,还请大佬补充
一、压缩包
1.伪加密
windows环境下使用zipcenop工具
java -jar ZipCenOp.jar r xxx.zip
2.爆破
工具ziperello、PasswareKitForensic
二、通用图片
1.文件分离(也适用于其他类型的文件)
kali下使用binwalk或者foremost
windows下使用winhex看十六进制
2.图片拼接——ImageMagick+gaps=自动拼图
借鉴大佬博客CTF~ImageMagick+gaps=自动拼图_ctf拼图题_kvmbox的博客-优快云博客
3.隐写类
Firework
使用winhex打开文件时会看到文件头部中包含firework的标识,通过firework可以找到隐藏图片。
使用场景:查看隐写的图片文件
EXIF隐写
使用MagicEXIF 元数据编辑器查看图片插入于相机拍摄的信息的隐藏信息
LSB最低有效位隐写
工具有:Stegsolve(win)、python脚本、zsteg(kali)
加密图片解密
探测工具:Stegdetect(JPG图片、kali)或者根据题目提示
解密工具:SilentEye(win)、Jphide(JPG图片、win)、Outguess(kali)、F5(win)
(1)Stegdetect
主要用于分析JPG图片,用法:
stegdetect xxx.jpg
stegdetect -s 敏感度xx.jpgexi(2)SilentEye
可视化工具,可以选择有密码和无密码两种模式
(3)Jphide(JPG图片、win)
可视化图形工具
(4)Outguess
outguess 一般用于解密文件信息。
使用场景:Stegdetect识别出来或者题目提示是outguess加密的图片该工具需编译使用: ./configure && make && make install
格式: outguess -r 要解密的文件名输出结果文件名(5)F5-steganography-master
F5一般用于解密文件信息。
使用场景: Stegdetect识 别出来是F5加密的图片或题目提示是F5加密的图片
进入F5-steganography_F5目录,将图片文件拷贝至该目录下,从CMD进入该目录格式: Java Exrtact 要解密的文件名 -p 密码
三、PNG图片
1.crc校验错误
1、开头的0~7八个字节为png的文件头:89 50 4E 47 0D 0A 1A 0A (固定格式)
2、8~11四个字节:00 00 00 0D 表示头部数据块的长度为13(固定格式)
3、12~15四个字节:49 48 44 52 表示文件头数据块的标示(固定格式)
4、16~19四个字节:00 00 03 84表示图片的宽(不固定)
5、20~23四个字节:00 00 00 96表示图片的高(不固定)
6、24~28五个字节:08 02 00 00 00表示Bit depth(图像深度)、ColorType(颜色类型)、 Compression method(压缩方法)、 Filter method(滤波器方法)、Interlace method(隔行扫描方法)这五个字节不固定,均为可变数据
7、29~32四个字节:76 EC 1E 40为图片的crc校验值由从第12个字节到第28个字节的十七位字节进行crc计算得到
拿到这类的题目之后,首先要验证图片的crc值是否正确。打开在线网站:http://www.ip33.com/crc.html
输入第12到第28共十七位字节,参数模型选择crc32,点击计算,得到图片crc校验值
当校验值不符时,一般是由于高度或者宽度所引起的,这里需要用到脚本对其宽高进行爆破。
## coding=gbk
#crc正确,爆破宽和高
import binascii
import struct
crcbp = open("misc43.png", "rb").read() #打开图片
crc32frombp = int(crcbp[29:33].hex(),16) #读取图片中的CRC校验值
print(crc32frombp)
for i in range(4000): #宽度1-4000进行枚举
for j in range(4000): #高度1-4000进行枚举
data = crcbp[12:16] + \
struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
# print(crc32)
if(crc32 == crc32frombp): #计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
print(i, j)
print('hex:', hex(i), hex(j))
exit(0)
#png爆破宽且crc错误,需要从一堆图片里面找
#import zlib
#import struct
#filename = "misc34.png"
#with open(filename, 'rb') as f:
# all_b = f.read()
# for i in range(901, 1200):
# name = str(i) + ".png"
# f1 = open(name, "wb")
# im = all_b[:16]+struct.pack('>i', i)+all_b[20:]
# f1.write(im)
# f1.close()
2.TweakPNG工具
当图片文件头正确,但是无法打开,或者没有其他办法了,可以考虑此工具
此工具可以编辑查看PNG图片数据块,通过删除色素块的方法来更正图片
3、APNGdis_gui 工具
将PNG文件按帧分开
可视化工具使用方便
4.PNG Debugger
可以进行读取 PNG 图片的数据,检测各数据块中的 CRC 是否正确,在 Windows 下使用。
记得有个题是图片有很多数据块,有的是数据块CRC是对的,有的是错的,要把错的转为0,把对的转为1.......
使用的话,用 Windows 下的命令行,进入上图中的 Debug 文件夹,再执行命令。
pngdebugger …/test/example.png >1.txt
四、gif动态图
1.利用不同帧之间的间隔时间来隐写
这里利用linux下的工具identify
安装命令:sudo apt-get install imagemagick
基本的命令格式:
identify [options] input-fileidentify:命令名称
options:参数
input-file:文件名。
提取命令:identify -format "%T " misc39.gif > 1.txt
2、
五、音频类
1.Audacity
可视化工具,导入wav音频看波形、频谱,是不是莫斯电码之类的
2.慢扫描电视SSTV
MMSSTV & RX-SSTV 图像解码软件,
是用来解码国际空间站在145.800Mhz频率发送的声音的解码成图片的软件。
声音的来源,是能接收145.800Mhz频率信号的无线电台(车载台、手台等,就是类似小区保安拿的那种),
将声音播放给这两款软件"听",就可以解码出相应的图片。
MMSSTV安装文件下载:https://pan.baidu.com/s/18PLHiCBd6tU6AuRVeRTFDQ 提取码:xflh
使用教程:
RX-SSTV 下载地址:https://www.qsl.net/on6mu/download/Setup_RXSSTV.exe
使用教程:
【业余无线电】RX-SSTV图像解码软件的简单教程_哔哩哔哩_bilibili
再搞个虚拟声卡 e2eSoft
3.mp3stego
顾名思义,解mp3隐写的
4.加密类
工具:silenteye、deepsound
如果题目有告诉你密钥和一个wav文件,再根据题目的提示选择工具
可视化工具,傻瓜式操作
六、流量分析
流量分析可以出很难很烧脑的题
主要是要学习基础知识,我建议直接上哔哩哔哩大学选秀流量分析这门课 - _ -
也要了解协议、端口、传输等计网的知识
键盘流量&鼠标流量
GitHub上有脚本,很好用
七、其他一些比较好用的工具
1.ToolsFx
2.随波逐流
3.飘云阁