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