任何人都可以推荐任何对程序员友好(即可扩展)的框架或系统来执行网络级数据包模糊测试吗?
我正在寻找这样一个系统,我可以在其中以其他数据包格式进行编程,并以与协议相关的方式破坏这些数据包的各种方式。
我知道如何谷歌。我正在寻找具体的建议:)
谢谢!
任何人都可以推荐任何对程序员友好(即可扩展)的框架或系统来执行网络级数据包模糊测试吗?
我正在寻找这样一个系统,我可以在其中以其他数据包格式进行编程,并以与协议相关的方式破坏这些数据包的各种方式。
我知道如何谷歌。我正在寻找具体的建议:)
谢谢!
Scapy看起来对程序员很友好。它是用 Python 编写的。
您使用 Python 命令解释器作为其命令解释器。它有非常好的文档。它看起来易于使用和理解。
API 看起来不错;以“pythonic”风格编写。它看起来非常完整,并且正在积极开发中。
我可以推荐Sulley 模糊测试框架。这是一个 python 框架并且擅长它的工作。
如果您想要第 2 层协议模糊测试,请查看 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 模块来满足你的特定需求。
您可能对American Fuzzy Lop和Preeny 感兴趣。这是一个使用非常简单并采用遗传算法的模糊器,在这种情况下,这意味着它将检测输入位的哪些变化会导致新的代码路径并更加关注这些变化。
我只是用谷歌搜索了一下。我从来没有使用过这些。
我知道 fuzzled 作为一个框架真的很好,如果你喜欢 Perl:http ://www.securiteam.com/tools/5FP0Q1PKUS.html
JborFuzz 和大多数其他 fuzzer 不会这样做,因为它们不是作为框架设计的,当然不是网络级别的。
建议的答案都不符合我的需求,所以我编写了自己的模糊 DNS 服务器。