详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程
}
封装程序将在当前目录寻找文件后缀为.spk的文件,作为generic_send_tcp的输入脚本文件,寻找命令行中的IP地址、端口、 SKIPVAR/SKIPSTR等变量值,作为 generic_send_tcp的输入参数。此外,它还允许添加skipfile参数,使我们可以跳过一定数量的.spk测试文件。又由于封装程序每次都按相同顺序测试文件,因此当需要重启fuzzing会话时,我们可以直接跳过已测试的文件。
若你不是用 BackTrack系统进行测试,运行时你就需要改变 generic_send_tcp命令的路径了。你还需要确保按照我提供的指南在Requirements and System Setup选项上设置,关于SPIKE在它不能发送数据时怎么修改使其有个非零值的结束。若是它不起作用,
generic_send_tcp将非常愉快的想一个已关闭的会话发送数据,一直到执行完成。这个封装程序取决于当它不再发包时它就停下来,所以确保你也这样做。
编辑脚本fuzzer.pl,给与其可执行权限(chmod +x).
重启抓包引擎(Capture menu-> Restart ),用Clear按钮将所有过滤条件去掉,确保Vulnserver程序在调试器中运行正常。现在我们用封装程序来做更多的fuzzing工作。不带参数时运行结果如下:
root@bt4r1vm:~/fuzzing# ./fuzzer.pl
Usage: ./fuzzer.pl IP_ADDRESS PORT SKIPFILE SKIPVAR SKIPSTR
向Vulnserver开启我们的fuzzing会话。Vulnserver服务器IP地址是192.168.56.101、端口9999,像下面这样运行fuzzer.pl脚本:
root@bt4r1vm:~/fuzzing# ./fuzzer.pl 192.168.56.101 9999 0 0 0
这样程序就开始运行了,它会向Vulnserver服务器喷射大量的测试数据。运行足够长的时间后,程序会中断,然后反馈下面信息。最后一行告诉我们,当测试脚本05trun.spk时,程序停下来了。若是你看完输出信息,你会发现有什么信息失踪了-bingo,是的,在很对SPIKES测试中Welcome信息没被反馈。
Fuzzing Variable 0:200
TRUN 05trun.spk : Variablesize= 10000
Fuzzing Variable 0:201
TRUN 05trun.spk : Variablesize= 5000
Fuzzing Variable 0:202
Couldn't tcp connect to target
Stopped processing file 05trun.spk
在终端显示信息中一直向上翻,一直看到Welcome信息为止。你将看到它在如下的地方:
[...SNIP...]