网络协议模糊测试框架?

12

有没有人可以推荐一些程序员友好(即可扩展的)框架或系统,用于执行网络级别的fuzzing测试?

我正在寻找这样一个系统,可以在其中编写附加数据包格式和以协议相关方式打破这些数据包的各种方法。

我知道如何使用谷歌搜索。 我正在寻找具体的建议 :)

谢谢!

7个回答

4

Scapy 看起来非常符合程序员的需求。它是用 Python 编写的。

你可以使用 Python 命令解释器作为其命令解释器。它有非常好的文档。看起来容易理解和使用。

API 看起来还不错,采用了 "Pythonic" 风格编写。它看起来非常完整,并且正在积极开发更新。


3

你可能会对使用American Fuzzy LopPreeny相结合来进行模糊测试感兴趣。这是一个相当简单易用的模糊测试工具,采用了遗传算法,也就是说它将检测输入位的哪些变化导致了新的代码路径,并更加关注这些路径。


3
我可以推荐Sulley模糊测试框架。它是一个Python框架,非常擅长其工作。
如果您想进行第二层协议模糊测试,请查看ernw.de团队的杰出工作:

http://www.ernw.de/download/l2sulley_04-15-08.tar.bz2

http://www.ernw.de/download/l2_fuzzing_shmoo08.pdf

你对哪些协议的模糊测试特别感兴趣?
更新:由于你的目标是DNS,你应该查看PROTOS测试套件,特别是他们的DNS模块。这是一个闭源的Java包,所以你无法像使用框架一样使用它,但是如果PROTOS不够彻底,你可以编写Sulley模块来满足你的特定需求。

虽然 Sulley 看起来非常完整(无论是用于事后分析还是模糊测试技术),但它并不适合用于测试:据我所知,您无法在模糊测试脚本中捕获服务器响应并基于其执行进一步的操作。您必须对数据包捕获进行后处理以检测服务器的错误行为。Scapy 在这方面要好得多。 - Hubert Kario

2

我认为其中一些已经过时了。TAoF已经好几年没有更新了。 - JohnnySoftware

1

如果你喜欢使用Perl,我知道Fuzzled是一个非常好的框架:http://www.securiteam.com/tools/5FP0Q1PKUS.html

JborFuzz和其他大多数模糊测试工具都不行,因为它们并不是作为框架设计的,尤其不是用于网络层。


1

以下是我的建议,主要是因为开发它们的安全团队声誉很高。

Scapy 是一个神奇的工具,但这些框架使用 Scapy 做更多的事情。


1

连一个指向 GitHub/Bitbucket 页面的链接都没有吗? :) - Brian Cain
2
@BrianCain 哦,好的!http://code.google.com/p/evldns/ - Alnitak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接