持续更新|模糊测试工具合集,附贴心教程(一)

持续更新|模糊测试工具合集,附贴心教程(一)模糊测试模糊测试是一种暴力可靠性测试技术。它采用黑盒测试的思想,通过自动或半自动的生成大量畸形的随机数据来作为应用程序的输入,并监视程序异常,以

大家好,欢迎来到IT知识分享网。

模糊测试

模糊测试是一种暴力可靠性测试技术。它采用黑盒测试的思想,通过自动或半自动的生成大量畸形的随机数据来作为应用程序的输入,并监视程序异常,以发现应用程序中可能存在的漏洞或模糊测试是一种暴力可靠性测试技术。它采用黑盒测试的思想,通过自动或半自动的生成大量安全缺陷。

当渗透测试者遇到没有任何已知漏洞的系统时,有必要考虑是否存在0day漏洞的可能性。所有计算机程序的本质都是接收用户输入,然后对其解析、处理、计算并返回结果。模糊测试的根本思路就是由测试人员向程序发出大量随机或半随机的数据,通过观察程序对不同输入数据的处理结果(如程序是否发生异常或崩溃),直观的判断程序是否存在漏洞。

利用模糊测试技术可以深度挖掘软件所隐含的通过其他测试手段无法挖掘出来的漏洞,比如缓冲区溢出、格式化字符串、代码注入和许多其他类型的漏洞。

模糊测试通常由6个步骤组成:识别目标识别输入生成模糊测试数据执行模糊测试数据监控输出和鉴别问题的可用性

要进行模糊测试,必然要使用模糊测试工具。市面上的模糊测试工具有很多,这些工具运用在不同的方向上,比如用于测试文本格式、网络通信协议、Web应用、无线通信协议等。有输入的地方就有可能产生攻击面,不可信的数据输入源往往会输入一些不安全的或与规定不一致的数据,从而产生不可预知的后果。因此需要对所有可能的数据输入进行尝试,即进行模糊测试,以验证已知和未知的漏洞。

本文将分为上中下三篇文章,介绍一些现有的运用在不同方向上的优秀fuzzing开源项目,包括通用Fuzzers通信协议Fuzzers文件Fuzzers

通用Fuzzers

开源网安模糊测试平台(简称:SFuzz)

1、什么是SFuzz

SFuzz是一款基于模型的通用模糊测试工具,提供丰富的模糊测试模型,可检测出各种软、硬件系统部件里的漏洞,支持文件格式、网络协议、工业控制协议、硬件设备及物联网等的安全测试。SFuzz平台具有效率高、可并发、可扩展、可回溯等优点,能够自动产生大量边界用例、畸形用例、随机用例等,通过这些测试用例发现被测对象是否有潜在安全漏洞。

1.1、SFuzz的工作原理

SFuzz平台通过模型库提供最广泛的协议测试等功能,累计200种左右。SFuzz根据被测对象的协议格式,通过对协议的解析分析,生成报文数据包(即种子输入),然后再利用SFuzz的变异算法,得到大量的测试用例。值得一提的是,SFuzz通过随机化序列技术,只要Fuzzing一直在运行,可以不断的生成测试用例,通过对这些测试用例的执行,最终得到Crash

持续更新|模糊测试工具合集,附贴心教程(一)

(工作原理)

1.2、SFuzz检测的业务流程

持续更新|模糊测试工具合集,附贴心教程(一)

(SFuzz检测的整体流程)

SFuzz平台采用框架式结构设计,可灵活配置不同的测试模型,适用于固件、驱动、软件、网络协议、API接口等不同产品、不同场景、不同层次的模糊测试。

通信协议Fuzzers

我们知道,为了完成通信或特定服务,通信双方实体必须遵循一定的规则和约定,这里的规则和约定就是通信协议。但在网络协议组装、解析的过程中可能存在漏洞,比如攻击方在与目标应用通信的过程中,向目标应用发送了变异或错误的值,使得目标应用发生了异常。因此,我们针对通信协议进行测试。

原始的做法是在知道产品服务端与客户端的通信协议后,根据协议的格式和定义来准备大量测试数据,然后手动地发送给服务器端,试图找到一些安全漏洞。但分析通信协议本身就是一件难事,需要测试人员掌握一定的协议知识,而且自己准备数据,耗时耗力,成本太高。这时,模糊测试就派上用场了。通过模糊测试,测试人员只需要把测试目标告诉测试工具,测试工具将自动生成大量测试数据,并将数据发送给目标服务器,最后由测试人员对测试结果进行分析即可。

网络协议模糊器的测试对象主要是各类网络产品中的网络协议解析模块,目的是测试其在组装、解析网络协议过程中是否存在漏洞。网络协议模糊测试的思想是模糊器与被测目标进行通信,向被测目标应用发送变异或包含错误的模糊值,并监视目标应用,以发现错误。

针对通信协议的开源的Fuzz工具——BED

1、什么是BED?

BED(Bruteforce Exploit Detector)是一款纯文本协议的模糊测试工具,常用于检测程序是否存在潜在的漏洞,如缓冲区溢出、格式化字符串、整体溢出等漏洞。它可以根据指定的协议,自动发送各种模糊数据或含有问题字符串的命令组合,测试目标的处理方式,从而判断目标是否存在缓冲区溢出等常见漏洞。它预置了是一种插件,这些插件针对不同的服务或系统,如FTP、POP等。同时,这些插件内包含了已知的各种攻击载荷。BED通过加载插件,向目标主机发送攻击数据,如果发现目标无法响应,则说明目标可能存在缓冲区溢出等漏洞。

BED目前支持的协议有finger、ftp、http、imap、irc、lpd、pjl、pop、smtp、socks4和socks5。

2、BED的简单使用

Kali Linux系统中自带了BED网络监测工具,它通过不断的向目标服务器发送已有的通信测试包以及基于这些包的一些变异用例来测试目标服务器的通信协议是否存在漏洞。

BED的相关文件存放在Kali Linux的/usr/share/bed路径下,执行bed.pl文件将显示BED的使用说明,你也可以直接在终端执行bed命令查看。

持续更新|模糊测试工具合集,附贴心教程(一)

根据使用说明,我们可用清楚地看到BED的基本使用命令格式大致为:./bed.pl -s-t-p-o[ depends on the plugin ]

其中-s标志用于扫描;指定要选择的协议;-t标志用于指定目标(IP地址),注意,不能指定为localhost;-p标志用于指定端口;最后使用-o标志来设置超时。

也可以直接使用bed命令,若使用./bed.pl命令,需要在该文件所在目录下执行。举个简单的例子,现在有一个http服务器在主机192.168.153.145的80端口,你试图使用BED来找到它的漏洞,那么你需要执行的命令为:bed -s HTTP -t 192.168.153.145 -p 80 -o 10

或者在/usr/share/bed目录下执行命令:./bed.pl -s HTTP -t 192.168.153.145 -p 80 -o 10

持续更新|模糊测试工具合集,附贴心教程(一)

如果它有漏洞,BED将会显示错误。比如若在上图Normal tests中+Bufferoverflowtesting的“testing:3”下显示了类似“attempt failed”这样的报错,则说明程序在进行第3项缓冲区溢出测试时出现了错误,也就是说这里可能存在缓冲区溢出问题。那么我们就要根据报错进行调查,首先要调查特定测试模块,检查测试指令(/bed/bedmod/http.pm文件),然后将目标程序恢复到正常状态,增加BED的超时时间,再进行几次重复实验,一步步确认问题是否真的存在。经过多次测试验证,就可以判断出漏洞出现的位置,然后通过手工执行验证、代码审核等方式找出漏洞的具体触发机制,从而加以利用。

最后,一起来动手试试吧!

参考链接:https://tools.kali.org/vulnerability-analysis/bed

针对通信协议的开源的Fuzz工具——Doona

1、什么是Doona

Doona继承自BED,是BED的分支。它在BED的基础上修正了一些bug,并添加了一些新的功能,例如dump测试用例到标准输出流中,支持中断以及恢复测试等。此外,它增加了一些插件,如proxy、rtsp、tftp、whois等。Doona对各个插件扩充了攻击载荷(也称为模糊用例),可以更彻底地检测目标是否有潜在的缓冲区溢出和格式化字符串等漏洞

2、Doona的简单使用

跟BED一样,Doona也是Kali Linux系统自带的一个测试工具。其相关文件一般存放于/usr/share/doona目录下。

在终端输入“doona”并执行,即可看到Doona的使用方法。

持续更新|模糊测试工具合集,附贴心教程(一)

这里给出了Doona的基本使用命令格式:./doona.pl -m [module],注意,该命令是以执行文件的形式进行的,需进入到doona.pl文件所在目录下(即/usr/share/doona目录)执行。也可以直接执行doona -m [module]。

其中,-m用于指定模块,可以是说明中列出DICT、FINGER、FTP等,此项是必要的,是可选项,你可以根据自己的需求选择说明中的选项;-c表示在每个 模糊案例之后执行健康检查;-t用于指定目标主机;-p指定端口;-o用于设置超时;-r用于在测试用例索引处恢复模糊测试;-k标志表示继续尝试直到服务器通过健康检查;-d将测试用例转储到标准输出(与 -r 结合使用);-M设置目标在第个案例后停止;-h是帮助选项。

举个例子,我想使用HTTP插件(-m HTTP)来对目标192.168.153.23(-t 192.168.153.23)进行模糊测试,并设置该目标在第5个案例后停止(-M 5),我将执行:doona -m HTTP -t 192.168.153.23 -M 5

下面我将使用doona来对baidu.com进行模糊测试。

首先通过ping baidu.com得到它的IP地址

持续更新|模糊测试工具合集,附贴心教程(一)

执行命令:doona -m HTTP -t 220.181.38.251 ,开始测试

持续更新|模糊测试工具合集,附贴心教程(一)

参考链接:https://tools.kali.org/vulnerability-analysis/doona

https://latesthackingnews.com/2016/12/04/use-doona-bruteforce-exploit-detector-tool-kali-linux/

持续更新|模糊测试工具合集,附贴心教程(一)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/59371.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信