上周在安恒萌新粉丝群:928102972分享介绍了binwalk,今天分享一款同样可以用来文件还原分离的神器。foremost是一个控制台程序,用于根据页眉,页脚和内部数据结构恢复文件。Foremost可以处理图像文件,例如由dd,Safeback,Encase等生成的图像文件,或直接在驱动器上。页眉和页脚可以由配置文件指定,也可以使用命令行开关指定内置文件类型。这些内置类型查看给定文件格式的数据结构,从而实现更可靠,更快速的恢复。在数字取证中和CTF中常用来恢复、分离文件。它默认支持19种类型文件(jpg, gif, png, bmp, avi, exe, mpg, mp4, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, html, cpp 等文件)的扫描识别恢复,还可以通过(通过配置它的配置文件foremost.conf)增加新的支持类型。
安装foremost在kali linux已经预装, 网上大部分是linux版本,不过有好心的网友编译出win版本并上传到了GitHub仓库里,你可以根据README的提示利用MinGW gcc去使用源码自行编译也可以直接使用作者编译好的exe文件。
具体下载地址可以看安恒萌新粉丝群公告:【安恒萌新粉丝の周一福利1.28】。
linux和macOS的安装方法看开源仓库README,已经很详细了。
注: 未指定输出目录,结果放在foremost所在目录的output文件夹内,配置文件为所在目录的foremost.conf。
简单使用ctf这类文件分离的题目,大多时候可以使用binwalk或者winhex也可以使用dd命令,这些在前几周也都介绍过,具体可以看公众号往期文章和群文件和公告。可以使用foremost,相对来说binwalk更加强大,速度也快,但是有时候如果不能分离出来,就可以试试看foremost。
这里使用1月新春贺岁赛题目演示,大家可以去周周练下载题目,练习使用喔。
题目给的一张zhu.jpg的图片:
将图片放在foremost所在目录下,并输入命令
在目录下会出现一个output文件夹,分离出两张图片,相比原图多了一个二维码图片
这里还需要一个隐写,通过使用stogslove进行色差分析即可拿到flag。
除了文件分离的功能,它还有一个特色功能就是文件恢复,如果误删了一个文件,可以使用
注意: 指定存放文件的目录必须为空,不然会报错。
-T 选项让foremost自动根据当前时间戳来生成output目录,这时生成的目录是类似这样的 output_Wed Jan 30 16_01_56 2019。
foremost 需要扫描整个磁盘或镜像文件来查找可能的文件,这个扫描速度令人堪忧。
不过可以使用-q来加快扫描速度,但是这个也是有个副作用:foremost只在每个扇区的开始位置与文件头进行对比,但可能会丢失一些嵌套在其他文件内的文件。
与-q常连用的是-b number, 它可以指定磁盘每个扇区的大小,默认是512个字节。但对于ext4文件系统来说,这个值一般是4096。
除此之外还有些其他用法,可以和其他工具结合起来,通过脚本完成一些自动化的工作。