ctf中misc的基本解题思路
图片
图片内容、图片分析、图片拼接、图片修复、EXIF、LSB
主要步骤
看属性详细信息
010editor或winhex或notepad++打开看有无特殊信息,然后搜索ctf、CTF、flag、key等关键字
string、file命令(kali)
1
2strings test | grep -i flag
file 1.txt检查图像的开头标志和结束标志是否正确,若不正确修改图像标志恢复图像,打开查看是否有flag或ctf信息,(往往gif属于动图,需要分帧查看各帧图像组合所得数据 若不是直接的ctf或flag信息 需要考虑将其解码)
stegslove或者binwalk
修改高度png改IHDR、jpg改ffc2(16进制搜索)三个字节后的数据
根据对应格式使用响应隐写检测工具
看图片有无异常 盲水印 、f5、Lsb、guess、stegpy、steg、jphide、 stegdetect
JPG
特征
文件头标识(2 bytes):FF D8
文件结束标识(2 bytes):FF D9
Lsb
stegslove
IDAT隐写
使用pngcheck分析 pngcheck.exe -v file
判断异常IDAT串,使用winhex等工具创建新文件
根据创建后的新文件继续分析
修改高度
jpg改ffc2(16进制搜索)三个字节后的数据
stegdetect (win)
(检查jpg图片隐写方法,Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息)将图片复制到 stegdetect.exe 所在文件夹,打开 cmd输入
1 | stegdetect.exe -tjopi -s 10.0 [stego_file] |
steghide(win)
查看图片中嵌入的文件信息:
1 | steghide info out.jpg |
提取含有密码的隐藏内容:
1 | steghide extract -sf out.jpg |
提取不含有密码的隐藏内容:
1 | steghide extract -sf out.jpg |
steghide爆破密码
有些题目用steghide加密文件但是不给密码,此时就需要爆破,steghide本身并不支持爆破,需要一些其他的方法:
1 | steg_brute.py -b -d [字典] -f [jpg_file] |
需要安装的库:progressbar
1 | pip install progressbar2 |
F5
(F5隐写,需要passwd)
在kail下切换到F5-steganography,在java Extract运行命令:
1 | java Extract 123456.jpg图片的绝对地址 -p 123456 |
outguess
(kali下图片隐写+可需要可不要passwd)
1 | outguess -r /root/angrybird.jpg(绝对路径) 123.txt(信息存放的文本) |
PNG
特征
文件头标识(8 bytes):89 50 4E 47 0D 0A 1A 0A
文件结束:00 00 00 00 49 45 4E 44 AE 42 60 82
修改高度
010打开修改
tweakpng.exe打开图片提示IDHRcyc错误,表示文件尺寸被修改,且未修改crc值
XOR
1.binwalk分析出两张图片
2.用stegslove打开选择image combiner 选择XOR
3.根据XOR后的结果继续分析
zsteg(kali)
zsteg可以检测PNG和BMP图片里的隐写数据(lsb隐写、zlib、openstego等),一般来讲用 zsteg 解密的文件都为bmp文件
1 | zsteg 图片名 |
BlindWaterMark (盲水印,kali)
第一种 正常的bwm
打开 bwm.py 所在文件夹(桌面),在文件夹中打开终端
1 | # 1.png 为无水印原图 |
第二种 频域盲水印
1 | import cv2 |
使用
1 | python pinyubwm.py --original 1.png --image 2.png --result out.png |
查看 out.png 即可,如果无法得到正常图片,可将 1.png 和 2.png 调换位置再次尝试
lsb的py脚本解密(lsb隐写+需要passwd)
F:\CTF\CTF工具合集\脚本\cloacked-pixel-master
使用
1 | python lsb.py extract [stego_file] [out_file] [password] |
pngcheck(检查IDAT块_win)
在 pngcheck.exe 所在文件夹打开cmd
1 | pngcheck.exe -v 123.png |
可检查 png 的 IDAT 块是否有问题相关题目可参考: https://blog.csdn.net/u010391191/article/details/80818785
有关解题脚本可参考 FzWjScJ 师傅的blog: http://www.fzwjscj.xyz/index.php/archives/17/
WebP
安装(kali中)apt install webp需要的时候按 Y 即可
使用
cwebp - 编码器工具:可将png转为web
1 | cwebp 1.png -o 2.webp |
dwebp - 解码器工具:可将webp转为png
1 | dwebp 1.webp -o 2.png |
vwebp - 查看器工具:可直接查看webp格式图片
1 | vwebp 1.webp |
webpinfo - 格式查看工具:可打印出WebP文件的块级结构以及基本完整性检查
1 | webpinfo 1.webp |
exiftool(查看图片exif信息)
1 | exiftool 1.jpg # 显示图片所有信息 |
GIF
特征
文件头标识(6 bytes):47 49 46 38 39(37) 61 即GIF89a
其他
- bgp
文件头:425047FB
在线网站查看即可:https://webencoder.libbpg.org/show.html
音频
1.有key mp3steg
在MP3stego文件夹中打开cmd,然后将 Decode.exe 拖到命令行里,将要解密的文件放在文件夹中
1 | encode -E hidden_text.txt -P pass svega.wavsvega_stego.mp3 |
2.分析声道audacity
3.010打开
steghide(wav隐藏信息)
使用方法在本文jpg的介绍中
wav
优先考虑lsb隐写,使用silenteye工具
m4a文件头
00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00
视频
逐帧分割
video to pic.exe或者ffmpeg.exe
其他
视频中的音频、视频放到010中查看
压缩包
1.尽量用winrar避免异常
2.看属性
3.伪加密
修复工具:
- winrar修复
- ZipCenOp.jar(win)
找到所在文件夹,在地址栏输入cmd
1 | java -jar ZipCenOp.jar r 文件名 |
4.暴力破解
5.明文攻击
6.crc32碰撞
7.多个压缩文件合并 cat 文件名(按需) > 保存文件名
其他
pyc文件相关
uncompyle6(pyc文件反编译)
1 | uncompyle6 test.pyc > test.py |
Stegosaurus(pyc隐写_win)
版本:Python 3.6 or later
使用在 stegosaurus.py 所在文件夹打开cmd,输入:
1 | python stegosaurus.py -x [pyc_file] |
DTMF
在线工具http://dialabc.com/sound/detect/
本地工具 tdmf ton decoder
https://pas-products.com/download.html免费版有限制
pcap文件修复
winpcapfix工具• 在线修复• https://f00l.de/hacking/pcapfix.php
乐符解密
https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue
linux光盘文件(ext3)
linux挂载光盘,使用notepad或者strings、file命令来搜索关键词
1 | strings test | grep -i flag |
mount命令挂载文件
1 | pdfinfo 文件名 #查看pdf属性 |
und/detect/
本地工具 tdmf ton decoder