EFuzz:基于程序环境的通用模糊测试工具

2024-06-03 364 0

关于EFuzz

EFuzz是一款功能强大的模糊测试工具,该工具支持基于程序运行环境来执行模糊测试,广大安全研究人员可以使用该工具对几乎任何程序组件执行安全模糊测试。

该工具在运行之后,会将所有的环境交互信息(包括用户输入数据),并将其存储到一个文件中,然后对目标应用程序执行模糊测试。在这个过程中,EFuzz会不断对原始用例进行变异,并尝试触发程序崩溃。

功能介绍

当前版本的EFuzz支持对任意组件执行模糊测试,其中包括但不限于:

1、网络服务器/客户端;

2、图形化用户接口(GUI)应用程序;

3、编辑器;

4、编译器;

5、数据库;

6、其他任何Linux用户模式软件;

7、...

工具运行机制

与其他模糊测试工具的不同之处在于,EFuzz会对目标与其环境的整个交互进行模糊测试,其中包括所有的文件(配置、缓存、资源、字体等)、套接字(会话管理器、命名服务等)、用户窗口交互、设备和数据流等。也就是说,EFuzz的模糊测试目标是整个环境本身,我们将其称之为基于程序环境的模糊测试。该工具执行架构如下图所示:

工具下载

广大研究人员可以直接使用下列命令将该项目地址克隆至本地:

git clone https://github.com/GJDuck/RRFuzz.git

代码构建

项目克隆完成后,切换到项目目录中,使用工具build.sh脚本完成代码构建:

$ cd RRFuzz

$ ./build.sh

注意,上述命令仅在Ubuntu系统中进行过测试。

工具使用命令

记录环境数据:

$ ./EFuzz record -- vim hello.txt

重放:

$ ./EFuzz replay

模糊测试:

$ ./EFuzz fuzz

复现崩溃:

$ ./EFuzz replay out/crash/SIGSEGV_XXXX_mYYYYY.patch

调试崩溃:

$ ./EFuzz replay out/crash/SIGSEGV_XXXX_mYYYYY.patch -d

工具使用样例

在第一阶段,我们可以使用下列命令记录gnome-calculator应用程序的所有环境信息:

$ ./EFuzz record gnome-calculator

上述命令会创建一个out/子目录,所有收集到的数据会记录在out/RECORD.pcap.gz文件中。

在第二阶段,我们就可以使用下列命令来对gnome-calculator应用程序执行模糊测试了:

$ ./EFuzz fuzz

EFuzz会使用第一阶段记录下的数据作为初始种子,并重复执行目标应用程序。在此过程中,EFuzz还会对初始种子不断地进行编译,以尝试触发新的程序行为或程序崩溃。

发现的程序奔溃信息会存储到out/crash/子目录中,下列命令可以复现崩溃:

$ ./EFuzz replay out/crash/SIGSEGV_XXXX_m0YYYY.patch

工具运行演示

在下面的例子中,演示了如何使用EFuzz对一款GUI应用程序执行模糊测试:

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可协议。

项目地址

EFuzz:【GitHub传送门

参考资料

https://github.com/GJDuck/e9patch

https://arxiv.org/pdf/1705.05937

https://arxiv.org/abs/2404.13951


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

苹果试图保护你的隐私,OpenAI可能做不到
Shuffle:一款完全自动化的安全栈增强平台
如何使用CODASM编码Payload并降低熵值
SessionExec:一款针对会话安全的安全命令测试工具
Arkime:一款大规模数据包捕获和索引数据库系统
从蓝队流量角度分析Shiro-550反序列化漏洞

发布评论