用alphafuzzer挖掘网络协议漏洞

AlphaFuzzer挖掘某通讯软件的内存破坏漏洞
AlphaFuzzer是一款多功能的漏洞挖掘框架,截止到1.3版本,AlphaFuzzer只包含了文件格式的漏洞挖掘框架。从1.4版本开始,AlphaFuzzer增加了网络协议漏洞挖掘框架。
图片1
如上图为测试版网络协议框架的界面,数据窗口用于定义数据包的文件格式,与文件格式挖掘框架使用相同的解析引擎。行为窗口用来定义测试时候需要的一些网络行为,支持的api语句有:
Recv:接受数据。
SendAll:发送数据窗口构建的数据。
SendHex:发送指定的二进制数据。
SendTxt:发送指定的文本型数据。
Sleep:系统等待一段时间。
Msg:弹出对话框。
SendXss:发送Xss指令。
SendSql:发送SQL指令。
等更多种类的函数,具体信息请关注正式版及相关文档。
下面以某知名的局域网通讯工具为例,演示AlphaFuzzer对网络协议的漏洞挖掘步骤。
首先,我们安装并且运行软件。为了测试方便这里选择在本机测试,当然也可以把alphafuzzer工具和测试软件放在2个不同的机器上做测试。
图片2

在数据窗口,我们定义了飞秋的通讯协议。通讯协议可以大体表示为
1:1:?:?:32:?
其中?表示字符串类型的数据,用于执行模糊测试。
在行为窗口,我们定义了我们的行为,只是简单的发送数据窗口生成的数据。
默认测试数为1000次,这里我们不做修改。
由于是本机测试,因此IP地址选择了127.0.0.1。
该协议属于UDP协议,我们选择UDP。
端口号选择该软件的通讯端口号2425。
这时候,我们点击FUZZ,开始我们的漏洞挖掘的过程。
图片3
这时候会发现,有大量的伪造消息发送了过来。
图片4
过了一段时间,该软件已经崩溃。
也就是说,若使用者欲对某协议作fuzz测试,只需要了解该协议后编写相应的协议格式解析脚本,即有可能挖掘出相应的内存破坏类漏洞。

AlphaFuzzer1.4正式版和相应的说明文档预计于2015年9月23日发布,敬请期待。
(免责声明:本文章所涉及的信息仅供技术研究使用,严禁用于非法用途。任何个人,团体,组织不得将其用于非法目的,如产生法律纠纷后果自负。本文章概不负责,也不承担任何法律责任)

Written by sys_cc