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