什么是Misc

Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。

MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等

详细解释内容请见——>传送门

关于Misc的入门教程在网上挺多的,这里不再做详细阐述。

这里主要对我个人学习过程中所遇到的相关经典胎教问题进行解释。

参考内容:山石安研院第二节CTF夏令营Misc教学内容、sec_wuyy师傅的文章

一、文件头残缺或错误

文件有后缀名,但是无法正常打开,或者没有后缀名,同时通过file命令(Linux)发现文件类型是data,表示很有可能是文件头残缺或错误导致的,这时候需要根据后缀名、题目提示、文件头尾部数据等去猜测文件的真实类型,并使用winhex010Editor等软件添加或修改相应的文件头。

文件类型判断技巧:

文件类型特点
ZIP文件尾部包含0x504B0506的
RAR文件结尾为0xC43D7B004007
JPG文件结尾为0xFFD9
PNG文件头中包含IHDR信息
GIF文件结尾为0x3B

二、文件分离

binwalk

binwalk可以快速分辨文件是否由多个文件合并而成,并将文件进行分离,分离成功会在目标文件的目录下生成一个形如_文件名_extracted的文件目录,目录中有分离后的文件。

binwalk在kali里是自带的,想在window使用可以参考此教程传送门

简单操作教程

文件分析:binwalk 文件名

文件分离:binwalk -e 文件名

详细操作教程传送门

foremost

如果binwalk无法正确分离出文件,可用使用foremost。

foremost在kali已预装载

文件分离:foremost 文件名 -o 输出文件名

三、盲水印

盲水印是利用二维傅里叶变换,给文件添加肉眼无法直接看到的水印数据。

盲水印不仅仅用于图片,也可应用于像音频这种数据流

当出现两张看起来一模一样的图片,可以用盲水印解密工具来尝试。

BlindWaterMark工具

工具下载传送门

合成盲水印:python3 bwmforpy3.py encode 原图 信息文件 盲水印图片

提取盲水印:python3 bwmforpy3.py decode 原图 盲水印图片 信息文件

详细操作教程传送门

四、音频隐写

详细可以参考此文章传送门

推荐工具

MP3stego

工具下载传送门

加密: encode -E 加密的txt文件名 -P pass 加密的wav文件名 输出的mp3文件名

解密:decode -X -P pass MP3文件名

五、伪加密

一个ZIP文件由三部分组成:

压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标准

  • 无加密压缩源文件数据区的全局加密应当为00 00,且压缩源文件目录区全局方式位标记应当为00 00
  • 真加密:压缩源文件数据区的全局加密应当为09(或奇数) 00,且压缩源文件目录区全局方式位标记应当为09(或奇数) 00
  • 伪加密:压缩源文件数据区的全局加密应当为00(或其他数) 00,且压缩源文件目录区全局方式位标记应当为09(或奇数) 00

六、图片隐写

常见的图片隐写方式:

摘自:传送门

1.修改数据(png图片用winhex或者是010工具打开后,可以看到第二行前四个数据是高,后四个数据是宽。一般需要修改这两组数据来获得完整的图片)

2.图片的属性,详细信息中含有flag或者是含有密码,可以通过解密工具进行解密。

3.图片中含有另一张图,这时最简单的方法是使用foremost工具进行图片的分离

4.通过查看一个文件的文件头含有:data:image/png;base64,这就属于png图片格式,真正的base64编码是前缀之后的那些数据,然后就可以利用base64转图片进行操作(base64比较常用,但还是具体问题具体分析)

5.修改文件的后缀名:如将txt文件修改为jpg文件或者是png文件;有些题目需要将所有的文件名修改为png或jpg文件名后缀,然后拼接成为一个完整的flag

......

推荐工具:

OutGuess

下载(kali)教程传送门

隐藏文件:outguess -k 秘钥 -d 隐藏文件 原始图片 加密后的图片

提取文件:outguess -k 秘钥 -r 加密后的图片 输出文件名

七、流量分析

IP筛选

ip.src == 地址源ip筛选
ip.dst == 地址目的ip筛选
ip.addr == 地址ip筛选

MAC地址筛选

eth.dst == A0:00:00:04:C5:84目标mac地址筛选
eth.addrmac地址筛选

端口筛选

tcp.dstport == 80筛选tcp协议的目标端口为80的流量包
tcp.srcport == 80筛选tcp协议的源端口为80的流量包
udp.srcport == 80筛选udp协议的源端口为80的流量包

协议筛选

tcp筛选协议为tcp的流量包
udp筛选协议为udp的流量包
arp/icmp/http/ftp/dns/ip筛选协议为arp/icmp/http/ftp/dns/ip的流量包

注:可用!加协议名或者not加协议名表示排除该协议

流量包的修复

通过在线pacp包修复工具进行修复 传送门

才疏学浅、粗略总结,如有不足和错误,还望各位大师傅们帮忙指正:)!!!


手书无愧,无惧人间是非