精华内容
下载资源
问答
  • 目录Peach安装Peach介绍Peach安装前准备Peach安装测试Modbus模糊测试编写pit文件Peach的扩展使用参考链接 Peach安装 Peach介绍 Peach是开源Smart Fuzz工具,支持两种Fuzz方法:基于生长(Generation Based)、基于变异...

    Peach安装

    Peach介绍

    Peach是开源Smart Fuzz工具,支持两种Fuzz方法:基于生长(Generation Based)、基于变异(Mutation Based)

    1.基于生长:产生随机或启发性数据填充给定的数据模型

    2.基于变异:在给定样本文件的基础上进行修改

    Peach安装前准备

    安装Peach需要先下载安装Debugging Tools for Windows
    windbg下载地址

    选择download,不选install
    只勾选Debugging Tools for Windows即可

    Peach安装

    Peach3下载地址(也许需要翻墙)
    或者使用这个:https://github.com/TideSec/Peach_Fuzzing
    直接解压就好

    测试

    打开cmd,运行以下命令:

    Peach.exe samples/HelloWorld.xml

    如果出现一堆乱码就说明安装成功了!恭喜!


    Modbus模糊测试

    编写pit文件

    放一个测试01号功能码的xml文件:modbus01.xml

    <?xml version="1.0" encoding="utf-8"?>
    <Peach xmlns="http://peachfuzzer.com/2012/Peach" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://peachfuzzer.com/2012/Peach ../peach.xsd">
    
     <DataModel name="ModbusTCP"> 
       <Number name="TransactionId" size="16" />
       <Number name="ProtocoId" size="16" value="0"  mutable="false"/>
       <Number name="DataLength" size="16"  signed="false" endian="big">
    	<Relation type="size" of="UnitIdAndData"/>
       </Number>
       <Block name="UnitIdAndData">
    	   <Number name="UnitId" size="8" value="1" mutable="false"/>  <!-- 不加mutable="false" 说明要对该数值进行fuzz -->
    		<Block name="ReadCoils">
    		   <Number name="ReadCoilsFuncionCode" size="8" value="1" />
    		   <Number name="StartAddress" size="16" endian="big" />
    		   <Number name="NumberOfCoils" size="16" endian="big" />
    		</Block>
      </Block>
     </DataModel>
    
     <StateModel name="StateVfolder" initialState="initial">
       <State name="initial">
        <Action type="output">
          <DataModel ref="ModbusTCP" />
        </Action>
      </State>
     </StateModel>
    
     <!--使用socket进行监听端口 -->
     <Agent name="Local">
      <Monitor class="Socket">
       <Param name="Host" value="127.0.0.1" />
       <Param name="port" value="502" />
      </Monitor>
     </Agent>
    
     <!--log保存-->
     <Test name="Default">
      <Agent ref="Local" />
      <StateModel ref="StateVfolder" />
      <Logger class="File">
       <Param name="Path" value="logs" />
      </Logger>
    
      <Publisher class="tcp.Tcp">
       <Param name="Host" value="127.0.0.1" />
       <Param name="Port" value="502" /> 
      </Publisher>
    
     </Test>
    </Peach>
    

    具体是什么意思网上有很多,请自行查找或者查看最底部的参考链接。

    运行

    Peach.exe samples/modbus01.xml

    在这里插入图片描述

    然后等结果就好了(是的我正在等,哦记得打开Modbus模拟器,以及Wireshark做好数据记录)

    Modbus模拟器的使用请参考:
    modbus-poll,modbus-slave用法(有关功能码和读写)

    Peach的扩展使用

    应该还有别的功能,以后补充

    参考链接

    深入探究文件Fuzz工具之Peach实战
    https://www.freebuf.com/sectool/120650.html
    工控网络协议模糊测试:用peach对modbus协议进行模糊测试
    https://www.secpulse.com/archives/119442.html
    基于Peach的工业控制网络协议安全分析
    http://jst.tsinghuajournals.com/CN/rhhtml/20170110.htm#
    Peach+Fuzzer
    https://www.cnblogs.com/baoyu7yi/p/7264971.html

    展开全文
  • 模糊测试工具-peachFuzzer

    千次阅读 2015-12-03 21:57:12
    Peach相关资料汇总 peach官网 PeachFuzzer交流 peach 下载安装说明等这里都有,仔细阅读。 Archive for the ‘Peach’ Category (peach一些相关档案信息) http://phed.org/ Peach Fuzzer Community Edition 源码...

    说明:本文对一些资源进行整合,中间涉及多处链接,无意冒犯,如有意见请回复。

    Peach相关资料汇总

    1. peach官网
    2. PeachFuzzer交流
      peach 下载安装说明等这里都有,仔细阅读。
    3. Archive for the ‘Peach’ Category (peach一些相关档案信息)
    4. http://phed.org/
    5. Peach Fuzzer Community Edition 源码
    6. Peach Forums https://forums.peachfuzzer.com/
    7. 《0Day》关于Peach介绍及安装
    8. 视频:Peach Fuzzer Demo(右边列表内还有好多相似视频)
    9. Peach中的一些问题的解释
    10. 浅析Peach Fuzz(绿盟科技博客)
      此文章挺好的,比《0Days》上详细一些

    其他相关资料

    1. Fuzzer工具综述
    2. Web安全工具大集合
    3. 鬼仔’s Blog(此大牛其他帖子也很有吸引力)
    4. What’s New in the .NET Framework 4
    5. Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)
      3中方式获得Debugging tools:WKD的一部分、Windows SDK一部分、单独工具包
      若要下载 SDK 并将其安装在其他计算机上,请单击下载链接并运行安装程序。然后,在指定位置对话框中,单击下载可安装在单独计算机上的 Windows 软件开发工具包

    (未完待续)

    赠送翻墙软件Chrome+发布页

    展开全文
  • 最近在做Fuzzing测试,使用Peach v3测试框架,期间在编写pit脚本遇见一些问题,搜寻好长时间才找到解决办法。我测试的时候想使用pit文件的when属性,找了好多资料,最后在官网找到相关介绍,如下(地址:...

    最近在做Fuzzing测试,使用Peach v3测试框架,期间在编写pit脚本遇见一些问题,搜寻好长时间才找到解决办法。

    网络上关于pit语法解释不够详细,对when属性讲解的更少。

    我测试的时候想使用pit文件的when属性,找了好多资料,最后在官网找到相关介绍,如下(地址:http://community.peachfuzzer.com/v3/Action.html)


    <DataModel name="InputModel">
            <Number name="Type" size="32" />
    </DataModel>
    
    <DataModel name="OutputModelA">
            <Number name="Type" size="32" value="11 22 33 44" valueType="hex" />
    </DataModel>
    
    <DataModel name="OutputModelB">
            <Number name="Type" size="32" value="AA BB CC DD" valueType="hex" />
    </DataModel>
    
    <StateModel name="StateModel" initialState="InitialState">
            <State name="InitialState">
                    <Action type="input">
                            <DataModel ref="InputModel" />
                    </Action>
    
                    <Action type="changeState" ref="State2" when="int(StateModel.states['InitialState'].actions[0].dataModel['Type'].InternalValue) == 2"/>
    
                    <Action type="changeState" ref="State3" when="int(StateModel.states['InitialState'].actions[0].dataModel['Type'].InternalValue) == 3"/>
    
            </State>
    
            <State name="State2">
                    <Action type="output">
                            <DataModel ref="OutputModelA" />
                    </Action>
            </State>
    
            <State name="State3">
                    <Action type="output">
                            <DataModel ref="OutputModelB" />
                    </Action>
            </State>
    </TheStateModel>
    
    

    when属性的表达式是ture时转跳转执行。

    该行语句就是when属性用法,但是它这里是接受到(整数型的2)状态发生转变,我想接受指定字符串时状态发生改变,例如接受到220 Server Welcome !找了好多办法,一直没成功,主要精力放在["Type"]、InternaValue、浪费很多时间

    <Action type="changeState" ref="State2" when="int(StateModel.states['InitialState'].actions[0].dataModel['Type'].InternalValue) == 2"/>
    


    很明显,StateModel.states['InitialState'].actions[0].dataModel['Type']含义是初始状态第一个动作接受的数据:

    <Number name="Type" size="32" />

    的值

    peach官网同样老兄提出问题“How can I change state by receive data of socket”地址:https://forums.peachfuzzer.com/forum/peach-community-edition/general-support/3924-how-can-i-change-state-by-receive-data-of-socket

    问题没人解释。

    使用Peach -1 --debug命令结果如下:

    红色圈的地方很明显是解决接受数据即是220 ftp0.99server,但是就是无法使用when属性中使用表达式

    后来我找到解决办法是:


    <DataModel name="InputModel">
            <Number name="Type" size="32" />
    </DataModel>
    更改为如下
    <DataModel name="InputModel">
            <String name="Type" size="32" />
    </DataModel>

    就是原整数类型改为String类型


    when属性更改:

    <Action type="changeState" ref="State2" when="str(StateModel.states['InitialState'].actions[0].dataModel['Type'].DefaultValue) == '***期望字符串'"/>


    解决办法很简单,但是不太懂xml的我中间遇见很多坑,包括引号问题(注意字符串需要引号),还有str、int问题


    需要再说明一下:DefaultValue 可以使用 int(), str(), etc.、InternalValue、Value - binary value written out (is a BitStream type)


    写的不是很详细,还有其他pit格式规范后续更新,欢迎交流peach。


    展开全文
  • 模糊测试工具Peach Fuzzer官方文档翻译
  • 模糊测试工具Sulley开发指南(2)——与Peach比较

    千次阅读 热门讨论 2017-09-28 12:54:55
    我们的测试对象是EasyFTP 1.7.0.11,已知漏洞如下(github): 命令 个数 CWD 1 LIST 1 … 11 Peach 简介 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MichaelW Eddi

    基于已知漏洞的ftp服务器的漏洞挖掘

        我们的测试对象是EasyFTP 1.7.0.11,已知漏洞如下(github):

    命令个数
    CWD1
    LIST1
    11

    Peach

    简介

        MichaelW Eddington等人开发的Peach是一个遵守MIT开源许可证的模糊测试框架,最初采用Python语言编写,发布于2004年,第二版于2007年发布,最新的第三版使用C#重写了整个框架。现在已经逐渐转入商业支持,我们这边调研使用的是peach社区版。

    整体工作流程

    sulley-2-1

    xml的编写,一些重要的元素

        DataModel定义发送的数据和接收的数据,可以支持很多协议的特性,例如校验码、固定长度元素等特性。
    DataModel
        StateModel是最重要的元素,定义是状态机,规定输入和输出,按照有步骤的来。
    StateModel
        还有一些其他的元素……

    运行截图

        命令行运行我们编写的ftp.xml,日志文件在c:\logs下。
    peach-cmd
        在此命令下每个test生成10个测试用例,然后会显示发送和接收的数据。
    peach-debug
        在运行过程中会发现一些错误:
    peach-error

    错误发现

        peach会在WinDebugger监视进程下记录所有可能导致程序异常的的测试用例和栈的情况,测试时间和结果如下:
    peach-result1
        文件夹下记录status和出现的fault:
    peach-result2
        fault文件下文件夹命名方式和已知的漏洞和一些未知的错误
    peach-result3
    peach-result4
        能查看导致程序崩溃的发送的数据和stack情况
    peach-result5

    Sulley

    简介

        Sulley一款用Python实现的开源Fuzz testing框架,主要应用于网络协议方面的测试. 目前现在关于这方面的测试工具也挺不少,不管是开源的(比如历史悠久的SPIKE, 或者是本文介绍的Sulley)还是商业的(比如Mu Dynamics公司的产品)
        事实上,在Sulley出来之前,这方面的工具已经有一些了,但是为什么Sulley的作者还要选择重新造轮子呢?根据Sulley的文档,他这么做的理由是,当时已有的工具主要是专注在”数据生成“部分,**而仅仅做到这一步对Sulley是不够的,因为Sulley设计的目标是:不仅要简化数据生成,同样要简化与目标系统的之间的数据传输,以及目标系统的监控。**因此我们可以把刚才这段话理解成,Sulley要做的是一个能支持fuzz testing的整个测试流程的框架。在这一点上,显然Sulley的定位比起之前的工具高出了很多。而且事实上,Sulley的作者也不算是在造一个全新的轮子,比如在具体实现Sulley的时候,他也借鉴了一些当时已经成熟很成熟的Fuzz框架(SPIKE)的经验,比如用“块”结构的方式来构造数据,这点从Sulley构造Request所用的API接口就可以看出来,包括对于特定数据类型所用到的fuzz library也都直接从SPIKE拿过来

    整体工作流程

    sulley-2-2

    sulley里面还有一些模块可以扩展,例如vmcontrol模块,可以控制虚拟机中程序奔溃返回原始状态

    重要的概念–session,区别于peach里面的状态机

        ftp里面的session如下图,sulley可以根据这幅图,自动遍历所有节点,保证每个节点顺利通过测试。

    sulley-2-3

    运行截图

        运行process_monitor模块:
    sulley-run1
        运行network_monitor模块:
    sulley-run2
        运行编写的ftp2.py文件后,开始生成测试用例:
    sulley-run3
        运行的时候还可以通过http:\\127.0.0.1:26000查看运行进度:
    sulley-run4

    结果

        运行时会对进行每个测试用例时候的网卡进行抓包
    sulley-network
    sulley-network2
        sulley会把运行的时候错误写在.crash_bin文件里,通过特定的插件可以查看crashbin文件里的内容,如下:
    sulley-result1
    sulley-result2

    Sulley和Peach

        功能方面:sulley和peach完成的功能点都是一样
        开发角度:peach专注于xml文件的编写,其余部分几乎很少能改写,代码量比较大、没有详细的代码注释、现在开放的是社区版;sulley用代码来写测试,可以开发一些插件、监视器等,适用于深度开发。
        ftp测试需要的代码量比较:peach的xml需要上千行代码,而sulley只需要300百行。

    展开全文
  • 用于进行模糊测试的开源工具,此压缩包内整合了64位绿色版本,及windbg 32位
  • 使用peach工具进行fuzz测试

    千次阅读 2017-10-10 19:21:00
    本文简要介绍了Fuzz 工具Peach的使用...Fuzz(模糊测试)是一种通过提供非预期的输入并监视异常结果来发现软件安全漏洞的方法。模糊测试在很大程度上是一种强制性的技术,简单并且有效,但测试存在盲目性。 典型地...
  • 模糊测试之实例讲解

    2021-02-24 12:01:33
    模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。测试的基本思想就是通过向程序中输入大量的随机数据,然后观察输入这些数据之后程序的情况,记录下使程序发生异常...
  • 练习 1 - 使用 Peach3 对 Vulnserver 进行模糊测试 运行桃坑验证: peach -t fuzzers\vulnserver_peachpit.xml 启动 Peach 远程代理(用于检测): peach -a tcp 运行 Peach 模糊测试会话: peach fuzzers\...
  • 在相同实验环境下,分别采用开源模糊测试方法Peach以及GA-Fuzzer对目标进行测试,结果显示GA-Fuzzer可有效改善传统遗传算法过早收敛的问题,且与Peach相比,达到相同的测试预期所使用的用例数量降低27.20%,测试时间...
  • 人工智能(AI)或机器学习融入传统模糊测试技术造就出查找应用程序或系统漏洞的强大工具,但研究人员和网络罪犯都能利用这一点。 定义AI模糊测试 AI模糊测试采用机器学习及类似技术查找应用或系统中的漏洞。模糊...
  • 协议模糊测试

    千次阅读 2015-12-06 10:57:49
    本文针对协议模糊测试的边角知识进行总结,简单的介绍了协议,模糊测试,漏洞等基础概念,并总结了协议漏洞挖掘的步骤,以及介绍了一款挖掘工具-Peach。   1. 协议是什么? 作用:远程信息传输 过程:比如,你...
  • 模糊测试之SPIKE测试框架简介

    千次阅读 2017-08-06 19:20:12
    模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监控目标程序异常,如崩溃,断言(assertion)失败,以...
  • 模糊测试方法研究

    千次阅读 2019-02-28 09:44:00
    表1列举了著名的开源模糊测试工具,其中SPIKE被商业和政府机构用于测试网络协议,Sulley和Peach用于文件格式和网络协议的测试。 表1.开源模糊测试工具 工具名称 工具语言 特点 ...
  • 模糊测试器的Worker worker是负责执行测试用例生成器提供的测试用例。当然,它还需要及时识别出一些意外的行为。 通常执行测试是非常简单的。worker用给定的输入检测任何不当行为的迹象。举个显而易见的例子,就是...
  • 模糊测试--强制性安全漏洞发掘

    万次阅读 2015-03-12 11:41:50
    http://blog.csdn.net/lxt889/article/details/18546373 ...--George W....模糊测试的概念至少已经流传了20年,但是直到最近才引起广泛的关注。安全漏洞困扰了许多流行的客户端应用程序,包括Microsoft的Intern
  • 什么是模糊测试

    2022-01-07 16:12:40
    什么是模糊测试模糊测试(Fuzz Testing)是一种自动化的软件测试技术,最初是由威斯康辛大学的巴顿·米勒于1989年开发的,通常用于识别程序中的潜在漏洞。模糊测试的核心是自动或半自动的生成随机数据输入到应用...
  • 本教程是针对的是windows上面的安装... Sulley的安装步骤就是麻烦,接下来我会更新两篇内容,一篇是主要介绍一下sulley的一些概念,第二篇真实案例,来对那些有漏洞的ftp服务器来进行fuzz测试,希望大家继续关注。
  • 模糊测试是自动软件测试中最常用的一种方法。通过模糊测试,我们可以根据一组规则来生成大量的输入,然后将这些非预期的输入注入到程序中来观察程序的异常行为。在安全领域,模糊测试是一种发现漏洞的有效方法。 ...
  • 因想了解自动化模糊测试的研究现状,读了些相关综述。这篇《Fuzzing: Challenges and Reflflections》主要描述了当前fuzzing技术存在的问题,指明研究的热点。 Fuzzing简述 Fuzzing指一种自动挖掘漏洞的技术,其可...
  • • 手工测试 • 补丁比对 ○ 定义:一种通过对比补丁之间的差异来挖掘漏洞的技术。 ○ 优点:发现速度快 ○ 缺点:已知漏洞 ○ 常见工具:PatchDiff2、bindiff • 程序分析 ○ 静态 § 定义:是指在不运行计算机程序...
  • 14.3.2 智能强制性模糊测试和基于生成的模糊测试 14.3.3 修改的客户端变异模糊测试 14.4 错误检测 14.4.1 人工方法(基于调试器) 14.4.2 自动化方法(基于代理) 14.4.3 其它方法 14.5 小结 第15章 网络协议模糊...
  • 0x10 物联网设备模糊测试 对于物联网设备,比如家用路由器模块,UPNP、HTTP server、Telnet都是用户经常接触的模块,通常也能够与外界交互,从而提供了入口。如果这些模块或者使用的协议存在漏洞,往往能够直接利用...
  • 手工测试 补丁比对 定义:一种通过对比补丁之间的差异来挖掘漏洞的技术。 优点:发现速度快 缺点:已知漏洞 常见工具:PatchDiff2、bindiff 程序分析 静态 定义:是指在不运行计算机程序的条件下,通过词法分析...
  • 在《模糊测试-强制发掘安全漏洞的利器》一书中,将模糊测试定义为“通过向应用提供非预期的输入并监控输出中的异常来发现软件中的故障的方法”。模糊测试方法 预生成测试用例:要求首先研究特定的规约,理解该规约...
  • 模糊测试初理解(fuzzing) 定义 通过向被测目标输入大量的畸形数据并检测其异常来发现漏洞 使用工具及测试阶段 Peach、Sulley、Autodafe、SPIKE等 确定测试目标; 确定输入向量;是否能找到所有的输入向量是模糊...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 308
精华内容 123
关键字:

peach模糊测试