MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等。
竞赛过程中解MISC时会涉及到各种脑洞,各种花式技巧,主要考察选手的快速理解、学习能力以及日常知识积累的广度、深度。
隐写术包括图片、音频、视频等文件隐写,在处理这类问题时,应优先确认该文件的实际类型,可参考下图,查看其文件头信息。
一、隐写
(1)图像隐写
??? 细微的颜色差别(像素三原色RGB)工具:stegsolve
??? GIF图多帧隐藏工具:stegsolve、Photoshop、firework
??? (1)颜色通道隐藏
??? (2)不同帧图信息隐藏
??? (3)不同帧对比隐藏
??? Exif信息隐藏工具:windows上右击打开图片属性
??? 图片修复 工具 winhex
??? (1)图片头修复
??? (2)图片尾修复
??? (3)CRC校验修复
??? (4)长、宽、高度修复
??? 最低有效位LSB隐写 工具:stegsolve、zsteg、wbstego4
??? 图片加密 Stegdetect outguess Jphide F5
(1)file命令
文件不知道后缀名,或者有后缀无法打开文件,根据识别的文件类型来修改文件后缀名即可正常打开文件
file? myheart
file? filejpj
查看文件头类型,根据文件头推断出文件头文件尾
文件类型 | 文件头 | 文件尾 | 特征 |
---|---|---|---|
JPEG (jpg) | FFD8FF | FF D9 | ???à |
PNG (png) | 89504E47 | AE 42 60 82 | .PNG... |
GIF (gif) | 47494638 | 00 3B | GIF89a |
ZIP Archive (zip) | 504B0304 | 50 4B | PK.. |
zsteg?? pic? -a?? #查看它的所有的可用组合
zsteg -E? 组合名? oldpicname? newpicname????? #重新组合
(1)当两张jpg图像外观、大小、像素都基本相同,可以考虑结合分析,即将两个图片进行XOR、ADD、SUM操作
Image Combine with
(2)图片LSB隐写
Data Extract
LSB.py
import PIL.Image
def foo():
im=PIL.Image.open("文件路径")
im2=im.copy()
pix=im2.load()
width,height=im2.size
for x in xrange(0,width):
for y in xrange(0,height):
if pix[x,y]&0x1==1:
pix[x,y]=0
else:
pix[x,y]=255
im2.show()
pass
if __name__='__main__':
foo()
print('ok')
pass
(6)TweakPNG
PNG图形浏览工具,当文件头正常但无法打开,可能是CRC校验错误,可以尝试通过TweakPNG打开
(2)音频隐写
??? 信息隐藏在声音里或者是数据里
??? 工具:MP3stego、Audition、Matlab
(3)视频隐写
??? 文件藏在视频的某个或多个帧里
??? 工具:Premiere、会声会影、
(4)文件分离
??? 工具:binwalk、dd、foremost、winhex
chmod 777 图片.png? 给图片最高权限
工具使用
(1)binwalk工具i
binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离
binwalk? filename?? #分析文件
binwalk? -e? filename? #分离文件
如果binwalk无法分离文件,可以使用binwalk,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件‘
foremost? filename? -o?? #输出目录名
(3)dd分离i
文件爱自动分离出错或者因为其他原因无法自动分离时,可以使用dd使用文件手动分离
dd? if=源文件? of=目标文件名 bs=1 skip=开始分离的字节数
if=file #输入文件名
of=file #输出文件名
bs=bytes #同时设置读写块的大小为bytes,可代替ibs和obs
skip=blocks#从输入文件开头跳过blocks个块后再开始复制
RAR伪加密
RAR文件由于有头部校验,使用伪加密时打开会出现报错,使用Winhex修改标志位后如报错消失且正常解压缩,说明是伪加密。使用winhex打开RAR文件,找到第24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密
补充一个在线扫条形码工具 Barcode Reader. Free Online Web Application
一、简单的考法
??????? 1、属性隐藏flag或者是某些重要的信息,如解压包密码
??????? 2、文件的十六进制数据(中间 \ 结尾)隐藏字符段,那些隐藏的字符段一般都是有规律的,可能需要进行一下解码才能的到flag,例题:Bugku之telnet_l2872253606的博客-CSDN博客
??????? 3、增加文件后缀zip进行解压,解压后的文件里就有flag
??????? 4、补全文件头
??????? 5、常见的文件类型
? 6、kali下file命令查看文件类型
? ? ? ? ? ? ? ? 命令:file 文件名
?????????????????头标识 50 4B 03 04
?????????????????版本号,头标识后面四位
?????????????????加密情况,版本号后面两位,00为未加密,其余通常为加密
? 原本没有加密的zip文件,在人为的修改16进制的情况(将版本号后面的00改掉),误让解压的时候以为加密了
?使用工具ARCHPR进行爆破
三、PNG
??????? 1、文件格式
??????????????? ?头识标,89 50 4E 47 0D 0A 1A 0A
??????????????? ?宽度位0x10-0x13,不可随意更改,需根据CRC值修改
??????????????? ?高度位0x14-0x17,可随便改
??????????????? ?CRC校验位0x1D-0x20,CRC是对文件数据块的校验,修改数据块会使校验失败,文件无法正常显示