ctf之misc

Ctf之Misc

文件操作

1.    可以使用file+文件名的方式 查看真实文件类型

File是通过文件的文件头来判断文件类型,当file判断不出文件类型时,建议使用winhex来查看文件尾去判断文件类型。当确定文件类型时,再在文件头中补上对应的文件头。

2.放进winhex可查看文件头判断文件类型

 

3.当文件头损坏时,可根据文件尾进行进行文件类型判断

 

1.    文件分离

Binwalk

 Binwalk工具可以快速分辨文件是否由多个文件合并而成,并将文件进行分离

(1)      文件分析binwalk 文件名

(2)      文件分离binwalk -e 文件名

 

Foremost

当binwalk无法分离出文件时,可以使用foremost

(1)      foremost 文件头 -o 输出目录名

dd

当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离

(1)dd if=源文件名 bs=1 skip=开始分离位置 of=输出文件名

举例:dd if=misc.jpg bs=1 skip=68019 of=target.zip

参数说明

If=file 输入文件名 (binwalk中可以获知文件格式)

Of=file 输出文件名

Bs=bytes 设置读写块的大小 (binwalk中可以得到对应bs值)

Skip=blocks 从输入文件开头跳过blocks个块 后开始再复制

2.    文件合并

linux:cat 合并的文件 >输出的文件

例如:cat file1 file2 file3 >file

windows:copy /B 合并的文件> 输出的文件

copy /B file1+file2+file3 file

3.    文件内容隐写

Hex隐写
  1. 以hex形式存放在文件中,此时以winhex(notepad++)打开文件,寻找对应flag值
  2. 或者以strings 文件名的形式,输出可打印字符

图片

JPEG|Exif

Jpeg有一个特殊的地方:具备exif文件描述信息

在windows中可直接查看文件属性,其他系统可使用exiftool

Steghigh

Setghigh是一个可以将文件隐藏到图片或者音频中的工具

(1)      隐藏文件 steghide embed -cf 图片文件载体 -ef 待隐藏文件 [-p 密码]

(2)      提取文件 steghide extract -sf 图片文件载体 [-p 密码]

举例:

 

Outguess

(1)      隐藏文件 outguess -k 密钥 -d 隐藏文件 原始图片 加密后的图片

(2)      提取文件 outguess -k 密钥 -r 加密后的图片 输出文件名

 

 

Png

Png|图片高度

经常会去改图片高度或者宽度是的一张图片显示不完整从而达到隐藏信息的目的

第二行0-3字节代表图片宽度,第二行4-7字节代表图片高度

 

Png|LSB

PNG图片中的图像像素一般是由RGB三原色(红绿蓝)组成,每一种颜色占据8位。Lsb隐写就是修改了像素中的最低的1bit,而人类的眼睛不会注意到这前后的变化,每个像素可以携带3比特的信息

Stegsolve

通过下方的按钮可以观察每个通道的信息

 

通过查看对应RGB(红绿蓝)通道,来判断隐藏信息

 

使用analyse中的Data Extract模块来进行

 

修改对应rgb值再重新导入

 

Cloacked-pixel

Cloacker-pixel是实现LSB图像隐写和基本检测的工具

工具下载:https://github.com/livz/cloacker-pixel 

加密:lsb.py hide <img_file> <payload_file> <password>

解密:lsb.py extract<stego_file> <out_file> <password>

 

Png|盲水印

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

工具下:https://github.com/chishaxie/BindWaterMark

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

 

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

GIF

GIF|空间

由于gif的动态特性,由一帧帧的图片构成,所以每一帧的图片,多帧图片间的结合,都成了隐藏信息一种载体

通过stegsolve工具一帧一帧的分析。加载gif图片 Analyse-frame browser

 

GIF|时间

文件每一帧的时间间隔也可以作为信息隐藏的载体

Imagemagick:linux安装 sudo apt install imagemagick

 

压缩包

Zip

Zip|通过进制转换隐藏信息

 

Zip|图种

将压缩包隐藏在一张图片中

解法:

1.binwalk -e foremost 分离

 

2.直接将图片后缀改成.zip

Zip|伪加密

 

解法:

 

Zip|暴力破解

 

Zip|掩码破解

 

Zip|明文攻击

明文攻击是一种较为高效的攻击手段,大致原理是当你不知道一个zip的密码,但是你有zip中的一个已知文件〈文件大小要大于12Byte)时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件

例子:已知明文.zip中存在的文件test.txt,因此将test.txt压缩(不用加密),这里需要判断明文压缩后的CRC32是否与加密文件中的一致,若不一致可以换一个压缩软件

 

Zip|CRC碰撞

CRC32:CRC本身是“冗余校验码"的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值。在产生CRC32时,源数据块的每一位都参与了运算,因此即使数据块中只有一位发生改变也会得到不同的CRC32值,利用这个原理我们可以直接爆破出加密文件的内容。

举例:已知一个压缩包,解压密码很复杂,无法爆破。我们打开看看,知道里面压缩的flag.txt文件内容为4个字节,CRC32为9BE3EOA3,尝试用CRC32碰撞一下

 

解法:使用脚本来进行爆破

 

用ARCHPR爆破工具攻击类型选择明文,加载加密文件和我们压缩的明文文件

 

Rar

Rar|暴力破解

从题目相关提示中猜解密码的长度以及字符范围等

还是使用archpr工具来进行暴力破解

 

Rar|伪加密

RAR文件由于有头部校验,使用伪加密时打开文件会出现报错,使用winhex修改标志位后如报错消失且正常解压缩,说明是伪加密。使用winhex打开RAR文件,找到第24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密。

 

解法:将对应的x4改为x0即可破解伪加密

音频

Mp3

Mp3|隐写
Mp3stego

工具下载:https://www. petitcolas.net/steganography/mp3stego/

加密:encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3

 

解密:decode -X -P pass svega_stego.mp3

 

波形

波形中隐藏摩斯密码,较长的蓝色即为 “-“,较短的即为 ”.“

 

Morse2ascii

Morse2ascii是一个PCM解码wac文件莫斯密码工具

安装:apt-get install morse2ascii

解密:运行命令:morse2ascii music.wav

 

音频

音频|波形

波形谱转化为01字符串

将单声道波形提取出来,接近1的变成1 ,接近-1的变成0,得到二进制,并转化为ascii

 

音频|频谱

音频中的频谱隐写是将字符串隐藏在频谱中,此类音频通常会有一个较明显的特征,听起来是一段杂音或者比较刺耳

 

 

声音

LSB

二维码

拼接

 

反向

 

残缺

 

二进制

 

文档

Word

Word|隐藏字符

 

Word|隐藏文件

 

Pdf

Pdf|隐藏文字

 

取证分析

内存取证

volatility

volatility 是一款内存取证和分析工具,可以对raw、wmem、img、dmp等内存镜像文件进行分析,并提取内存中的文件。

工具下载: https://www.volatilityfoundation.org/releasesvolatility使用:

volatility -f <文件名> --profile=<配置文件><插件>[插件参数]

 

Ctf之Pwn(待更)

Ctf之逆向培训(待更)

Ctf之Web(待更)

Ctf之密码学(待更)

posted @ 2021-03-29 16:29  sec_wuyy  阅读(1352)  评论(0编辑  收藏  举报