目录
一、misc的介绍
二、使用到的工具
1、010editor
2、Binwalk(kali自带)
3、Notepad++
4、Stegsolve
5、audacity
三、相关题型
文件/图片操作与隐写
文件类型的识别
1.使用linux中的file命令查看文件属性
2.使用010editer或者Winhex查看文件的文件头
3.既然会出现没有后缀的文件,那当然也会出现缺少头部的情况,可以根据后缀名来选择文件头部进行填充,如果没有后缀名,则查看文件尾部来判断文件类型。
文件分离操作
1.binwalk(binwalk工具在遇到压缩包时,会自动解压。)
2.formost
3.dd命令(相当难用,操作复杂,适用于解决难题):
4.winhex(手动分离)
文件合并操作
1.Linux系统中合并文件:
2.Windows下的文件合并:
文件内容的隐写
例题(BUUCTF的你竟然赶我走):
图片隐写
常见的图片隐写:细微的颜色差别、GIF图多帧隐藏(图片通道隐藏、不同帧图信息隐藏、不同帧对比隐写)、Exif信息隐藏、图片修复(图片头修复、图片尾修复、CRC校验修复、长宽高修复)、最低有效位LSB隐写、图片加密(Stegdetect、Outguess、Jphide、F5)
图片混合
例题:
1.隐藏在动图之中(BUUCTF中的金三胖)
2.隐写图片的大小(BUUCTF中的大白)
3.隐写在图片的属性中(BUUCTF中文件中的秘密)
压缩包的分析
解题方式:
暴力破解加密密码(ARCHPR4.54):
例题(BUUCTF中的rar):
一、misc的介绍
MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等。
二、使用到的工具
1、010editor
查看文件类型
2、Binwalk(kali自带)
合并文件
3、Notepad++
进行字符串处理
4、Stegsolve
图片隐写处理
5、audacity
音频隐写处理
三、相关题型
文件/图片操作与隐写
文件类型的识别
杂项题目主要是以文件附件作为题目,但是给的文件不一定是有后缀名的,这就需要我们识别这些文件
1.使用linux中的file命令查看文件属性
使用方法:
将文件复制到kail或者带有file工具的系统中,使用file查看文件。
将文件后缀名补上即可正常打开。
然后根据实际情况进行初步判断可能是什么类型的题目。
2.使用010editer或者Winhex查看文件的文件头
常见的文件头:
3.既然会出现没有后缀的文件,那当然也会出现缺少头部的情况,可以根据后缀名来选择文件头部进行填充,如果没有后缀名,则查看文件尾部来判断文件类型。
以下是常见的文件尾部:
(1)zip文件的结尾以一串504B0506开始。
(2)rar文件以C43D7B00400700结尾。
(3)JPG文件结尾为FFD9
(4)PNG文件结尾为000049454E44AE426082。
(5)Gif文件结尾为3B。
文件分离操作
1.binwalk(binwalk工具在遇到压缩包时,会自动解压。)
Binwalk是一个在Linux下用于分析和分离文件的工具,它能够快速判断文件是否由多个文件合并而成,并将其进行分离。如果分离成功,会在目标文件所在的目录下生成一个名为"文件名_extracted"的文件夹,里面存放着分离后的文件。
相关命令:分析文件:binwalk filename分离文件:binwalk -e filenamebinwalk -e .... --run-as=root
分析文件:
分离文件,会生成一个新的文件夹:
2.formost
如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。
该命令有的kali没有自带,可能需要额外下载:
sudo apt install foremost
命令:
foremost 文件名 -o 输出文件名
3.dd命令(相当难用,操作复杂,适用于解决难题):
当无法使用自动工具正确分离文件时,可以借助 dd 命令手动实现文件分离。
使用的格式:
dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数
参数说明:
if=file /*输入文件名,缺省为标准输入*/
of=file /*输出文件名,缺省为标准输出*/
bs=bytes /*同时设置读写块的大小为bytes,可以代替ibs和obs*/
skip=blocks /*从输入文件开头跳过blocks个块后再开始复制*/
4.winhex(手动分离)
除了使用 dd 命令之外,还可以通过使用 WinHex 工具来手动分离文件。只需将目标文件拖放到 WinHex 中,然后定位到需要分离的部分,最后进行复制即可完成操作。
文件合并操作
1.Linux系统中合并文件:
命令:cat 需要合并的文件 > 输出的文件名
完整性检测:Linux下计算文件md5:md5sum 文件名
2.Windows下的文件合并:
使用场景:windows下,通常要对文件名相似的文件进行批量合并,格式为:
copy /B 合并的文件(文件1+文件2+...+文件n) 输出的文件命令
完整性检测:windows下计算md5,格式为:
certutil -hashfile 文件名 md5
文件内容的隐写
文件内容隐写,就是直接将KEY以十六进制的形式写在文件中,通常在文件的开头或结尾部分,分析时通常重点观察文件开头和结尾部分。如果在文件中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。
在Windows系统中,通常将要识别的文件使用winhex打开,查找具有关键字或明显与文件内容不和谐的部分---通常优先观察文件首部和尾部,再搜索flag或key等关键字。
例题(BUUCTF的你竟然赶我走):
图片隐写
常见的图片隐写:细微的颜色差别、GIF图多帧隐藏(图片通道隐藏、不同帧图信息隐藏、不同帧对比隐写)、Exif信息隐藏、图片修复(图片头修复、图片尾修复、CRC校验修复、长宽高修复)、最低有效位LSB隐写、图片加密(Stegdetect、Outguess、Jphide、F5)
图片混合
图片混合也就是把两张图片重叠在一起,由于颜色的重叠或者其他一些因素,我们只能看到其中的一张图片,达到的这种效果就相当于隐藏了另一张图片。
这时我们就需要借助工具来对混合后的图片进行分离:Stepsolve.jar
例题:
1.隐藏在动图之中(BUUCTF中的金三胖)
下载完附件后打开发现是一个GIF动图,并且在播放过程中有红色字符闪过,怀疑信息被隐藏在动图的某些帧里,使用stegsolve.jar打开该动图(java -jar Stegsolve.jar)并使用analyse----frame browser来逐帧查看:
2.隐写图片的大小(BUUCTF中的大白)
先查看图片宽高
放入010editer,修改宽高,重新打开照片,得到flag
3.隐写在图片的属性中(BUUCTF中文件中的秘密)
flag在图片的属性里
压缩包的分析
一个zip的组成有三部分:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
可参考:CTF-MISC总结_ctfmisc-CSDN博客
1.无加密
数据区 的全局加密应当为 00 00
目录区 的全局方式位标记应当为 00 00
2.假加密(伪加密)
数据区 的全局加密应当为 00 00
目录区 的全局方式位标记应当为 09 00
3.真加密
数据区 的全局加密应当为 09 00
目录区 的全局方式位标记应当为 09 00
4.压缩源文件数据区 50 4B 03 04开头
+压缩源文件目录区 50 4B 01 02开头
+压缩源文件目录结束标志50 4B 05 06开头
识别一个zip文件是否加密主要是看压缩源文件 (数据区) 的全局方式位标记和压缩源文件 (目录区) 的全局方式位标记,关键操作在其中的全局方式标记的第一字节数字的奇偶上,其它的不管为何值,都不影响它的加密属性。第一字节数字为偶数表示无加密,例如:00,02,04等;为奇数表示有加密,例如01,03,09等。
解题方式:
真加密:把这个zip文件拖入winhex中,把09 00修改为00 00保存后即可得到flag
伪加密:把全方位标记区 的 01 00 或 09 00 改为 00 00
暴力破解加密密码(ARCHPR4.54):
如果设置了加密密码,可以尝试借助工具进行暴力破解
需要注意的是攻击类型中的“掩码”,攻击类型选择掩码时可以进行复杂的暴力破解,比如知道密码前3位是abc,后3位为数字,则在攻击类型选择掩码,在掩码处输入acb???,暴力范围选项选择所有数字,打开要破解的文件,点击破解。此时???的部分会被我们选择的暴力破解范围中的字符代替。
例题(BUUCTF中的rar):
使用暴力破解工具
口令就是压缩包的密码