When developing a payload (or deploying a new payload which may require configuration or tweaking), it can sometimes be difficult to identify the reason it is not activating as expected.
There are several ways to debug a payload:
Running payloads in Arming & Configuration mode
Payloads can often be run interactively in Arming & Configuration mode via the web UI terminal, or via a SSH connection.
To run a payload interactively from a terminal, simply launch the payload script via
root@squirrel:~# /bin/bash /root/payloads/switch1/payload
This method is the simplest when your payload does not require an offline mode - remember, if you change the
NETMODE in your payload, you may lose network access to the Packet Squirrel!
While debugging, you may be able to comment out the
NETMODE line in a payload. Remember to restore it when you're done!
Enabling SSH and the web UI in a payload
SSH and the web UI can be enabled in any payload mode where the Packet Squirrel has a network connection (
JAIL) with the commands
START_UI. Once SSH or the web UI has been started, you can connect to your Packet Squirrel and examine the state or re-run the payload.
Logging commands to a file
The output of commands can be sent to a file (see the chapter on Redirecting output for more information). This can help diagnose errors in a payload that can not be debugged interactively.
Remember that files in
/tmp are not preserved over a reboot - but you can log to
/root/, for example:
mkdir -p /root/payload_logs
command1 2>&1 >> /root/payload_logs/payload_debug.txt
command2 2>&1 >> /root/payload_logs/payload_debug.txt
Remember to use
>> to add to the end of the log file instead of replacing it!