赞
踩
目录
LSB(最低有效位 Least Significant Bit)
今天学习到了关于CTF比赛中的杂项(MISC)的一些解题的思路。现在做以下的整理
当文件没有后缀名或者有后缀名而无法正常打开的时候,根据识别出的文件类型来修改后缀名即可正常打开文件
使用场景:不知道后缀名,无法打开文件
通过winhex程序中可以查看文件头类型,根据文件头类型判断出文件类型。
使用场景:windows下通过文件头信息来判断文件类型。
常见的文件头信息如下图所示:
通常文件无法正常打开有两种情况,一种是文件头部残缺,一种是文件头部字段错误i。针对文件头部残缺的情况,使用winhex程序添加相应的文件头,针对文件字段错误,可以找一个相同类型的文件进行替换。
使用场景:文件头部残缺或者文件头部字段错误无法打开正常文件。
格式:file 文件名
Binwalk是Linux下用来分析和分离文件的工具,可以快速分分辨文件是否有多个文件合并而成,并将文件进行分离,如果分离成功会在目标文件的目录。同目录下生成一个形如_extracted的文件目录,目录中有分离后的文件。
用法:
- 分析文件:binwalk filename
- 分离文件:binwalk -e filename
如果binwalk无法正确的分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。
用法:foremost 文件名 -o 输出目录名
如果不加上-o,那么默认会生成一个output文件在目标文件的目录下。
当文件自动分离出错或者因为其他的原因无法自动分离的时候,可以使用dd实现文件手动分离。
- 格式:
- dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数
- 参数说明:
- if=file #输入文件名,缺省为标准输入
- of=file #输出文件名,缺省为标准输出
- bs=bytes #同时设置读写块的大小为bytes,可代替ibs和obs
- skip=blocks #从输出文件开头跳过blocks个块后再开始复制
除了使用dd外,还可以使用winhex实现文件手动分离,将目标文件拖入winhex中,找到要分离的部分,点击复制即可。
使用场景:windows下利用winhex程序对文件进行手动分离。
将某个区域文件保存的方式如下:
文件内容隐写就是直接将KEY、flag以十六进制的形式写在文件中,通常在文件的开头或者结尾部分,分析时通常观察文件开头和结尾部分。如果在文件中间部分,通常直接搜索关键字KEY、或者FLAG来查找隐藏内容。
使用场景:windows下,搜索隐写的文件内容
通常将要识别的文件拖入winhex中,查找具有关键字或明显与文件内容不和谐的部分,通常有限观察文件首部和尾部,搜索key或者flag等关键字,最后拖动滚轮寻找。
使用Notepad++打开文件,查看文件头尾是否有含有关键字的字符串,搜索key或者flag等关键字,最后拖动滚轮寻找。另外通过安装插件HEX-Editor可以实现winhex的功能。
使用winhex打开文件时会看到文件头部包含firework的标识,通过firework可以找到隐藏图片。
使用场景:查看隐写的图片文件
Exif按照JPEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图像,可以通过与JPEG兼容的互联网浏览器/图片浏览器/图像处理等一些软件来查看Exif格式的图像文件、就跟浏览器JPEG图像文件一样。
图片右击属性,查看Exif或者查看详细信息,在相关选项卡中查找flag信息。
当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息,StegSolve可以方便的进行这些操作。
使用场景:两张图片信息基本相同
LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的7个高位平面与替代秘密信息的最低位平面组合成隐藏信息的新图形。
1. 像素三原色(RGB)
2. 通过修改像素中最低位的1bit来达到隐藏的效果
3. 工具:stegsolve、zsteg、wbstego4、python脚本
安装:gem install zsteg
检测LSB隐写:zsteg xxx.png
解密通过lsb加密的图片
可以将脚本放在kali中运行,将目标文件放在脚本同目录下,将脚本中的文件名修改为文件名,运行python即可。
TweakPNG是一款简单易用的PNG图像浏览工具,它允许查看和修改一些PNG图像文件的元信息存储。
使用场景:文件头正常却无法打开文件,利用TweakPNG来修改CRC
例如:当PNG文件头无法打开文件,可能是CRC校验出错,可以尝试通过TweakPNG打开PNG,会弹出校验错误的提示,例如显示CRC是fe1a5ab6,正确的是b0a7a9f1。然后我们就可以打开winhex搜索fe1a5ab6,将其改为b0a7a9f1。
有的时候CRC没有错误,但是图片的高度或者宽度发生了错误,需要通过CRC计算出正确的高度或者宽度。
Bftools用于解密图片的信息。
使用场景:在windows下的cmd下,对加密过的图片文件进行解密
- 格式
- Bftools.exe decode braincopter 要解密的图片名称 -output 输出文件名
- Bftools.exe run 上一步输出的文件
SilentEye是一款可以将文字或者文件隐藏到图片的解密工具。
使用场景:windows下打开SilentEye工具,对加密的图片进行解密。如果需要密码,勾选encrypted data,输入密码和确认密码,点击decode再解密。
Stegdetect程序主要用于分析JPEG文件,因此用Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、oppendX和Camouflage等这些隐写工具来隐藏信息。
- stegdetect xxxx.jpg
- stegdetect -s 敏感度 xx.jpg
JPHide是基于最低有效位的LSB的JPEG格式图像隐写算法。
OutGuess一般是用于解密文件信息。
使用场景:Stegdetect识别出来或者题目提示是outguess加密的图片
工具需要编译使用:./configure && make && make install
outguess -r 要解密的文件名 输出结果文件名
F5一般用于解密文件信息
使用场景:Stegdetect识别出来是F5加密的图片或者图片提示是F5加密的图片。
格式:Java Extract 要解密的文件名 -p 密码
使用二维码扫描工具CQR.exe打开图片,找到内容字段,如果二维码的某个定位角被覆盖了,该工具有时候可以自动识别,如果识别失败,需要使用ps或者画图工具将另外几个角的定位符移动到相应的位置,补全二维码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。