MISC小总结——图片and压缩包

文章介绍了CTF竞赛中涉及的技术,包括压缩包的伪加密与爆破工具,通用图片的处理如文件分离、图片拼接和隐写术分析,特别提到了PNG图片的CRC校验错误处理和动态图的帧间隔隐写。此外,还涵盖了音频类文件的分析工具如Audacity和SSTV解码软件,以及流量分析的基础知识和相关工具。
摘要由CSDN通过智能技术生成

说在前面

菜鸡一个,做题以来的总结,还请大佬补充

一、压缩包

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的博客-CSDN博客

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

使用教程:

MMSSTV使用教程-其他视频-搜狐视频

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.飘云阁

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值