Running Peach
Running your Peach fuzzer is easy. First launch any required Peach agents using the following command line:
peach.py -a
Next launch your fuzzer:
peach.py myfuzzer.xml
And that's it! For additional options just run peach with out any command line arguments.
>peach.py
] Peach 2.2 DEV Runtime
] Copyright (c) Michael Eddington
This is the Peach Runtime. The Peach Runtime is one of the many ways
to use Peach XML files. Currently this runtime is still in development
but already exposes several abilities to the end-user such as performing
simple fuzzer runs, converting WireShark captures into Peach XML and
performing parsing tests of Peach XML files.
All features exposed by this interface can also be accessed via the
Python API.
Please submit any bugs to Michael Eddington <mike@phed.org>.
Syntax:
peach.py -a [port] [password]
peach.py -c peach_xml_file [run_name]
peach.py -g
peach.py [-r runspot_file] peach_xml_flie [run_name]
peach.py -p 10,2 [-r runspot_file] peach_xml_flie [run_name]
peach.py -s pdml protocol > output.xml
peach.py -t peach_xml_file
-a,--agent Launch Peach Agent
-c,--count Count test cases
-g,--gui Launch Peach Builder
-s,--shark pdml protocol Convert a Wireshark capture to Peach XML
-t,--test xml_file Test parse a Peach XML file
-w,--web Monitor Fuzzer Runs with WebWatcher
-r,--restart [file] Restart fuzzer at saved position
-p,--parallel M,N Parallel fuzzing. Total of M machines, this
is machine N.
--debug Enable debug messages. Usefull when debugging
your Peach XML file. Warning: Messages are very
cryptic sometimes.
Peach Agent
Syntax: peach.py -a
Syntax: peach.py -a port
Syntax: peach.py -a port password
Starts up a Peach Agent instance on this current machine. Defaults to
port 9000. When specifying a password, the port # must also be given.
Peach Builder
Syntax: peach.py -g
Start the Peach DDL Editor.
Performing Fuzzing Run
Syntax: peach.py peach_xml_flie [run_name]
Syntax: peach.py [-r restart_file] peach_xml_flie [run_name]
A fuzzing run is started by by specifying the Peach XML file and the
name of a run to perform.
If a run is interupted for some reason it can be restarted using the
-r parameter and providing the restart file. Currently these files are
called "RunSpotSave_date_time.peach".
Performing A Parellel Fuzzing Run
Syntax: peach.py -p 10,2 [-r runspot_file] peach_xml_flie [run_name]
A parallel fuzzing run uses multiple machines to perform the same fuzzing
which shortens the time required. To run in parallel mode we will need
to know the total number of machines and which machine we are. This
information is fed into Peach via the "-p" command line argument in the
format "total_machines,our_machine".
WireShark to Peach XML
Syntax: peach.py -s pdml protocol > output.xml
Peach can convert PDML saved captures into Peach XML Templates. To
perform this conversion follow these steps:
1. Perform a capture in WireShark
2. Select a single packet and save as PDML
3. Open the PDML file and locate the <proto> element to convert
and note the name of the protocol
4. Run Peach using the provided syntax
5. Modify generated XML as needed
Validate Peach XML File
Syntax: peach.py -t peach_xml_file
This will perform a parsing pass of the Peach XML file and display any
errors that are found.
Peach Fuzzing Platform