Sandsifter:一款专门针对X86处理器的模糊测试工具

栏目: 编程工具 · 发布时间: 5年前

内容简介:今天给大家介绍的是一款名叫Sandsifter的x86处理器模糊测试工具。该工具可以通过系统生成的机器码来搜索处理器指令集,并通过监控异常数据来审计x86处理器中的隐藏指令和硬件漏洞。Sandsifter目前已经成功识别出了大部分处理器产品中的隐藏处理器指令,反汇编器、编译器和模拟器中普遍存在的软件漏洞,企业管理程序中的安全缺陷,以及x86芯片中关键的硬件安全漏洞。由于目前市场上仍存在着大量x86处理器,因此该工具的主要目的就是帮助广大用户检查自己系统中的隐藏指令以及安全漏洞。

前言

今天给大家介绍的是一款名叫Sandsifter的x86处理器模糊测试工具。该 工具 可以通过系统生成的机器码来搜索处理器指令集,并通过监控异常数据来审计x86处理器中的隐藏指令和硬件漏洞。Sandsifter目前已经成功识别出了大部分处理器产品中的隐藏处理器指令,反汇编器、编译器和模拟器中普遍存在的软件漏洞,企业管理程序中的安全缺陷,以及x86芯片中关键的硬件安全漏洞。

Sandsifter:一款专门针对X86处理器的模糊测试工具

由于目前市场上仍存在着大量x86处理器,因此该工具的主要目的就是帮助广大用户检查自己系统中的隐藏指令以及安全漏洞。

大家可以直接运行下列命令来对自己的处理器进行基础审计:

sudo./sifter.py --unk --dis --len --sync --tick -- -P1 -t

接下来,计算机会自动扫描异常指令。在上图的上半部分中,大家可以查看Sandsifter已测试的指令信息。图片的下半部分显示的是Sandsifter检测到的异常情况。整个搜索过程大约需要1个小时或1天的时间不等,具体取决于处理器的运算速度以及架构复杂程度。扫描完成之后,Sandsifter会将结果报告给用户:

./summarize.py data/log

Sandsifter:一款专门针对X86处理器的模糊测试工具

一般来说,该工具能够扫描出你处理器中的好几百万条隐藏指令,不过工具会帮你进行自动分类。在对异常数据进行分析和筛选之后,工具会将每一条指令分配到不同的目录中:

软件漏洞;

硬件漏洞;

隐藏指令;

按下“Q”键退出后,你可以获取到文字版的系统扫描结果:

虽然工具会对扫描结果进行自动化分类,但是具体的分析仍需要大家人工参与。如果你需要专业人员帮助你分析数据的话,你可以将./data/log文件发送至xoreaxeaxeax@gmail.com。

代码构建

Sandsifter首先需要安装 Capstone 反汇编器:【 传送门 】。常用的安装命令如下:

sudo apt-get install libcapstone3 libcapstone-dev
sudo pip install capstone

Sandsifter构建命令:

make

然后运行:

sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

Flag

大家可以使用–flag来给sifter传递标记值,使用– -f来给注入器传递数据:

sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

Sifter标记:

--len
 search for length differences in allinstructions (instructions that
 executed differently than the disassemblerexpected, or did not
 exist when the disassembler expected them to
--dis
 search for length differences in validinstructions (instructions that
 executed differently than the disassemblerexpected)
--unk
 search for unknown instructions (instructionsthat the disassembler doesn't
 know about but successfully execute)
--ill
 the inverse of --unk, search for invaliddisassemblies (instructions that do
 not successfully execute but that thedisassembler acknowledges)
--tick
 periodically write the current instruction todisk
--save
 save search progress on exit
--resume
 resume search from last saved state
--sync
 write search results to disk as they are found
--low-mem
 do not store results in memory

Injector标记:

-b

-b

mode: brute force

-r

mode: randomized fuzzing

-t

mode: tunneled fuzzing

-d

mode: externally directed fuzzing

-R

raw output mode

-T

text output mode

-x

write periodic progress to stderr

-0

allow null dereference (requires sudo)

-D

allow duplicate prefixes

-N

no nx bit support

-sseed

in random search, seed value

-Bbrute_depth

in brute search, maximum search depth

-Pmax_prefix

maximum number of prefixes to search

-iinstruction

instruction at which to start search(inclusive)

-einstruction

instruction at which to end search (exclusive)

-ccore

core on which to perform search

-Xblacklist

blacklist the specified instruction

-jjobs

number of simultaneous jobs to run

-lrange_bytes

number of base instruction bytes in each subrange

快捷键

M:模式-修改搜索模式;
Q:退出-退出Sifter;
P:暂停-暂停或继续搜索任务;

参考资料

1. https://www.youtube.com/watch?v=KrksBdWcZgQ

2. https://github.com/xoreaxeaxeax/sandsifter/blob/master/references/domas_breaking_the_x86_isa_wp.pdf

3. https://github.com/xoreaxeaxeax/sandsifter/blob/master/references/domas_breaking_the_x86_isa.pdf

* 参考来源: kitploit ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

敏捷软件开发

敏捷软件开发

马丁 / 邓辉、孙鸣 / 人民邮电出版社 / 2008-01-01 / 69.00元

《敏捷软件开发:原则模式和实践(C#版)》不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作。而且还是一部通俗的敏捷方法导引书和快速实用的LJML教程。通过《敏捷软件开发:原则模式和实践(C#版)》你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗。变得鲜活生动起来。 C#版与此前的Java版相比,主要的更新包括加强了UML的介绍章节。使其更加贴近实战;增加了对MVP模式的介......一起来看看 《敏捷软件开发》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换