详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程
退出,这种功能对后面要运行的封装脚本是非常有用处的。修改完成后,正常在SPKIE的src目录下编译链接程序“./configure; make”。
在fuzzing目标服务器上,我们需要Administrator权限来运行Ollydbg调试器。在Vista或者Windows7系统上,右键以管理员身份运行Ollydbg调试器。
运行Vulnserver服务器很简单,将文件vulnserver.exe和essfunc.dll放在与Ollydbg同一目录下,用OllyDbg的open命令打开程序。程序默认监听TCP 9999端口,若想使用其他端口,需要将端口号作为vulnserver.exe的参数一起运行。
什么是Fuzzing?
Fuzzing是为了使程序产生失败或错误故意向程序发送错误格式数据的方法。fuzzing通常被攻击者用于挖掘软件漏洞。
当然,还是有一些其他流行的免费模糊测试器,但本文我们将关注在软件SPIKE上。 The SPIKE Fuzzer
从技术层面上讲,SPIKE是一个模糊测试创建工具集,它允许用户用C语言基于网络协议生成他们自己的测试数据。SPIKE定义了一些原始函数,这允许C程序员可以构建fuzzing数据向目标服务器发送,以期引起产生错误。既然SPIKE是专门被设计用来寻找可利用bug的,so,对我们来说这是极好的。
正如我所介绍,SPIKE是一个基于C语言的模糊创建工具集,但是要想使用SPIKE你却不必非得知道如何编写C代码,会修改就行。SPIKE还包含一些简单的脚本功能,其中有几个命令行工具,在下文中介绍。
SPIKE帮助文档不给力是出了名的,通过查看SPIKE的一些C源码,我们可以建立一系列元函数的列表。为了节省时间,本文将列出部分元函数。
目前也有不少关于SPIKE的论文与报告,但是最有意思的还是SPIKE作者Dave Aitel的日记(链接为/downloads/usingspike3.ppt )简简单单的几页PPT,就勾勒出SPIKE灰常NB的漏洞挖掘实力。对此,我们很有必要探讨一番,看看那些对我们是有用的。
SPIKE的功能是什么?
SPIKE拥有大量的内置字符串用来模糊测试,这在测试程序的时候是非常有效地。SPIKE以一种十分有效地方式,来确定能使程序产生失败的值。这意味着我们不用自已攒出这些数据,经验丰富的作者将向我们提供这些数据。
SPIKE有块(blocks)的概念,这可以在SPIKES内部推测出指定部分的大小。产生的数据就可以被SPIKE以不同的格式嵌入到自身测试数据中去。当需要在特定位置嵌入精确数据的时候,blocks是非常给力的,它大大节省了我们自行计算的时间。