今天有一个关于协议模糊测试的课程,我的教授详细解释了模糊测试,但忽略了解释人们如何实际测量模糊测试过程。
那么你会怎么做呢?一个简单的 Wireshark 捕获显示任何格式错误的数据包是否是成功的模糊测试的结果?我看过 Sulley,它需要安装在两台机器上(攻击者/受害者),但是如果你是攻击者并且你想查看你的 fuzzing 会话的结果以及它有多成功,有哪些选项可用(即坠机发生在哪里)?
今天有一个关于协议模糊测试的课程,我的教授详细解释了模糊测试,但忽略了解释人们如何实际测量模糊测试过程。
那么你会怎么做呢?一个简单的 Wireshark 捕获显示任何格式错误的数据包是否是成功的模糊测试的结果?我看过 Sulley,它需要安装在两台机器上(攻击者/受害者),但是如果你是攻击者并且你想查看你的 fuzzing 会话的结果以及它有多成功,有哪些选项可用(即坠机发生在哪里)?
取决于对黑框或白框进行模糊测试的情况,但是从简单的模糊器中读取代码,您可以轻松了解它是如何完成 的该实例使用的“日志”和“受害者”机器上的任何调试器(如 ImmunityDebugger)将足以重现崩溃
如果在尝试一些“盲目”模糊测试之前出现黑盒,您应该尝试建立一个实验室来尝试重现“受害者”场景,记住模糊测试会崩溃或损坏系统。如果您无法重现受害系统,我认为将日志设置到发送的缓冲区和wireshark 就可以了,但应该监控协议超时和其他网络注意事项 - 有关更多详细信息,请在 15 分钟内尝试 fuzzing
我很嫉妒你能上一堂关于模糊测试的课。
理想情况下,您已经设置了自己的受害者软件安装,并且可以在受害者上安装工具来监控它。如果您正在对您无法控制的服务进行模糊测试,那么您的选择将更多地限于变体,正如 Sarastro 所说,“当服务器停止响应时打印一行”
像 Sulley 这样的 Fuzzing 框架可以定义并检测目标以更好地监控其健康状况。因此,您的问题的答案将根据您的目标而改变。
真正简单的示例:您正在对远程主机上的 ftp 登录序列进行模糊测试。您可以定义除了对 USER 和 PASS 的响应之外,服务器不会做出任何反应,服务器会在 x 秒内做出响应,对于未找到的用户名和已找到的用户名不需要更长的时间。然后你让 fuzzer 撕裂,看看你是否得到任何意外的响应或超时。你的框架会记录这些意想不到的结果,这就是你的答案。
(这个场景改编自sulley-fuzzing和sulley-101)