CTF之MISC

文件操作与隐写

  1. file命令:当文件无法识别,不知后缀名的时候可以使用file命令分析出文件类型。举个例子:
    我在桌面放了一个jpg的图片,但是没有后缀名,win10就无法识别,CTF之MISC_第1张图片
    用一下file命令,在这里插入图片描述然后把后缀名加上就好了。CTF之MISC_第2张图片

  2. winhex的使用,Winhex可以查看文件的16进制数据,通过文件头信息判断出文件的类型。下面是常见的文件头类型:
    CTF之MISC_第3张图片举个例子,还是那张图,在这里插入图片描述可见FFD8FFE0就是Jpeg类型的图片(因为某种原因可能会在最后一回差那么一点)。

  3. 文件头残缺
    将刚才的图片头信息改为“44444444”,如图在这里插入图片描述

有些时候file命令是无法分析出文件类型的如下,在这里插入图片描述
就像这样,他只会返回一个data,我们就要通过其他手段猜出文件格式,使用winhex将其补充完整。改回来之后就分析出来了。在这里插入图片描述

文件分离操作

1.binwalk
有时候做题,我们会得到一张图片,然而flag可能被隐藏在图片的16进制信息里。我们可以这么操作,
binwalk filename:分析文件的构成,如图: CTF之MISC_第4张图片
可见文件由3部分组成。
binwalk -e filename可以将文件分离。如图:
CTF之MISC_第5张图片

CTF之MISC_第6张图片
分离后自动创建一个文件夹保存分离后的文件。

  1. foremost
    有时候binwalk是没办法将文件分离开的,我们可以考虑foremost.用法如下:
    foremost filename -o 分离后要保存的文件夹 CTF之MISC_第7张图片foremost还会自动生成一个分离日志。
    CTF之MISC_第8张图片
  2. 有时候文件被拆的七零八落,比如123abc456,这种情况下用binwalk和foremost自然是分不开的。举个例子:
    CTF之MISC_第9张图片dd if=filename of=filename bs=size count=num skip=num
    解释一下, if后的filename是你要进行操作的文件
    of后的filename是你操作后获取的一截数据要保存到哪里
    bs是将文件分块
    count是你要去几块
    skip是分块后,你要跳过前边几块,从哪一块开始取count块
  3. 如果不会dd也没关系,我们可以使用binwalk分析一下文件,

CTF之MISC_第10张图片
他会告诉我们从0到91是一个PNG,从92到87016是一个压缩数据,87017之后的又是一个文件。如此我们就可以从winhex打开文件,然后手动从92到87016的数据剪切出来保存得到一个文件。注意在winhex里地址是在这里插入图片描述
的。

文件合并

1.Linux下文件合并主要靠cat命令:cat 1.txt 2.txt 3.txt > all.txt,意思是将1.txt、2.txt、3.txt合并为all.txt.
CTF之MISC_第11张图片

Linux下计算md5:md5sum filename,比如md5sum duan.jpg
在这里插入图片描述

2.Windows下的文件合并:copy /B 需要合并的文件 输出的文件。举个例子:copy /B 1.txt + 2.txt + 3.txt all.txt
CTF之MISC_第12张图片

Windows下计算md5:certutil -hashfile 文件名 md5
CTF之MISC_第13张图片

文件内容隐写

文件内容隐写就是讲flag的值以16进制的形式写入到一个文件中,通常是在文件开头或者结尾,如果在中间的话可以用winhex或者010Editor或者Notepad++的HEX-Editor插件中的搜索查找flag或者key,但是不一定啊,有时候flag被加密成md5或者base64,如果文本不长的话最好还是大概看一眼。

图片文件的隐写

  1. 细微的颜色差别
    推荐Stegsolve,对图片进行运算(加减异或等),查看通道,

  2. GIF图片多针隐藏
    一般用photoshop,或者Firework查看图层,每一帧,或者通道。

  3. Exif
    右键属性查看详细信息,一般是图片在拍摄的时候记录的一些信息。

  4. 图片修复
    TweakPNG:文件头正常,但无法打开文件,可以考虑利用TweakPNG计算并修改CRC值。有时候替换之后还是不行,可能是因为图片的高度宽度不够,导致计算出来的CRC 错误,如此一来就要写脚本计算出对的高度和宽度(脚本问百度),改了高度宽度flag就回出来了,至于文件的高度和宽度对应的是哪几位,可以问百度,通常我是看一下图片现在的高度和宽度,计算出16进制,在winhex中找到对应的16进制就是高度和宽度了,一般在文件的16进制信息的前几行。

  5. 最低有效为LSB隐写
    LSB隐写就是通过修改RGB颜色分量的最低位二进制(LSB),来进行信息的储存,人类的眼睛并不能感知到前后的变化

    • Stegsolve:Stegsolve >> Data Extract,这个软件怎么玩儿大家可以自行百度,简单但是麻烦
    • zsteg工具:kali中安装命令gem install zsteg;检测隐写:zsteg filename
    • wbstego4
    • 自己写Python脚本:详情参见大佬博客LSB隐写
  6. 图片加密

    • Bftools
      Bftools:在windows下对加密过的图片进行解密;
      命令:Bftools.exe decode braincopter 要解密的图片名称 --output 输出文件名;
      Bftools.exe run 上一步输出的文件
      CTF之MISC_第14张图片
    • SilentEye
      SilentEye可以将文字或者文件隐藏到图片的解密工具。
      使用SilentEye打开目标图片,点击image->decode,点击decode查看隐藏文件,点击保存即可。
    • Stegdetect
      Stegdetect主要用来分析jpg文件
      命令:stegdetect xxx.jpg
      stegdetect -s 敏感度 xxx.jpg
      CTF之MISC_第15张图片
      Jphide是基于最低有效位LSB的JPEG格式图像隐写算法,当检测出来加密方式为jphide是,可以用jphs工具解密。jphs是win下的图形界面。
      Outguess加密,解密命令:outguess -r 要解密的文件 输出结果的文件;outguess是kali下的命令,使用sudo apt-get install outguess安装,kali的官方源可能找不到,我用的中科大的镜像源。
      F5加密:使用工具解密就好了,这个工具我也没有,或者使用脚本解密。

补充

有时候分析之后得到的二维码是黑白相反的,我们可以用windows自带的画图工具取反色。
操作如下:
打开图片
CTF之MISC_第16张图片
CTF之MISC_第17张图片
右键取反色
CTF之MISC_第18张图片

欢迎各位老铁访问我的博客,做题工具可以私聊我。

你可能感兴趣的:(安全,其他)