DuckyScript for the WiFi Pineapple Pager
Payloads are scripts integrated with DuckyScript commands which leverage the power of the WiFi Pineapple system.
DuckyScript is the payload language of Hak5 gear.
Originating on the Hak5 USB Rubber Ducky as a standalone language, the Packet Squirrel uses DuckyScript commands to bring the ethos of easy-to-use actions to the payload language.
DuckyScript commands are always in all capital letters to distinguish them from other system or script language commands. Typically, they take a small number of options (or sometimes no options at all).
Payloads can be constructed of DuckyScript commands alone, or combined with the power of bash scripting and system commands to create fully custom, advanced actions.
DuckyScript commands themselves are often writen in bash as well, though some commands are provided as binaries to increase performance.
Pager-specific DuckyScript Commands
Pager DuckyScript commands interact with the pager UI: Use these to prompt the user to confirm actions, enter text, data, and addresses, make other selections, or just keep the user informed.
The majority of these commands must be run from inside a user or recon payload, since they take over the screen!
| DuckyScript command | Use | Details |
|---|---|---|
| ALERT | Raise a full-screen alert | Documentation |
| CONFIGURATION | Persistent configuration commands | Documentation |
| CONFIRMATION_DIALOG | Prompt the user with a yes or no confirmation | Documentation |
| ERROR_DIALOG | Show the user error information | Documentation |
| IP_PICKER | Prompt the user to enter an IPv4 address | Documentation |
| LOG | Send text to the payload log | Documentation |
| MAC_PICKER | Prompt the user to enter a MAC address | Documentation |
| NUMBER_PICKER | Prompt the user to enter a numerical value | Documentation |
| PROMPT | Raise a modal alert and wait for the user to continue | Documentation |
| RINGTONE | Play a ringtone or ringtone file, with optional vibration | Documentation |
| START_SPINNER | Start an indefinite progress spinner | Documentation |
| STOP_SPINNER | Stop an indefinite progress spinner | Documentation |
| TEXT_PICKER | Prompt the user to enter free-form text | Documentation |
| VIBRATE | Activate the haptic vibration motor in sync with a ringtone file | Documentation |
| WAIT_FOR_BUTTON_PRESS | Wait for the user to press a physical button | Documentation |
| WAIT_FOR_INPUT | Wait for the user to press any physical button | Documentation |
Pineapple-specific DuckyScript commands
Pineapple DuckyScript commands interact with the WiFi Pineapple functions: Use these to control the Pineapple configuration and functions.
| DuckyScript command | Use | Details |
|---|---|---|
| FIND_CLIENT_IP | Find the IP address of a client connected to a WiFi Pineapple access point | Documentation |
| PINEAPPLE_DEAUTH_CLIENT | Deauthenticate a client from a Wi-Fi network | Documentation |
| PINEAPPLE_EXAMINE_BSSID | Stop channel hopping and lock to the channel used by a known access point | Documentation |
| PINEAPPLE_EXAMINE_CHANNEL | Stop channel hopping and lock to a channel | Documentation |
| PINEAPPLE_EXAMINE_RESET | Resume normal channel hopping | Documentation |
| PINEAPPLE_DEVICE_FILTER_ADD | Add a MAC address to the Pineapple AP device filters | Documentation |
| PINEAPPLE_DEVICE_FILTER_ADD_FILE | Add a list of MAC address in a file to the Pineapple AP device filters | Documentation |
| PINEAPPLE_DEVICE_FILTER_CLEAR | Delete all MAC addresses from the Pineapple AP device filters | Documentation |
| PINEAPPLE_DEVICE_FILTER_DEL | Delete a MAC address from the Pineapple AP device filters | Documentation |
| PINEAPPLE_DEVICE_FILTER_LIST | List MAC addresses in the Pineapple AP device filters | Documentation |
| PINEAPPLE_DEVICE_FILTER_MODE | Control Pineapple AP device filter mode | Documentation |
| PINEAPPLE_RECON_NEW | Start a new recon session | Documentation |
| PINEAPPLE_SET_BANDS | Configure the Wi-Fi bands monitored by recon | Documentation |
| PINEAPPLE_MIMIC_DISABLE | Disable open AP mimic mode | Documentation |
| PINEAPPLE_MIMIC_ENABLE | Enable open AP mimic mode | Documentation |
| PINEAPPLE_NETWORK_FILTER_ADD | Add a SSID to the Pineapple AP network filters | Documentation |
| PINEAPPLE_NETWORK_FILTER_ADD_FILE | Add a list of SSIDs in a file to the Pineapple AP network filters | Documentation |
| PINEAPPLE_NETWORK_FILTER_CLEAR | Delete all SSIDs from the Pineapple AP network filters | Documentation |
| PINEAPPLE_NETWORK_FILTER_DEL | Delete a SSID from the Pineapple AP network filters | Documentation |
| PINEAPPLE_NETWORK_FILTER_LIST | List SSIDs in the Pineapple AP network filters | Documentation |
| PINEAPPLE_NETWORK_FILTER_MODE | Control Pineapple AP network filter mode | Documentation |
| PINEAPPLE_SSID_POOL_ADD | Add a SSID to the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_ADD_FILE | Add a list of SSIDs in a file to the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_CLEAR | Clear the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_COLLECT_START | Start automatic collection of probe requests in the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_COLLECT_STOP | Stop automatic collection of the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_DELETE | Delete a SSID from the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_LIST | List the contents of the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_START | Start advertising networks in the Pineapple SSID impersonation pool | Documentation |
| PINEAPPLE_SSID_POOL_STOP | Stop advertising networks in the Pineapple SSID impersonation pool | Documentation |
| WIFI_PCAP_START | Start an optimized packet capture | Documentation |
| WIFI_PCAP_STOP | Stop packet capture | Documentation |
| WIGLE_LOGIN | Fetch a Wigle login token | Documentation |
| WIGLE_LOGOUT | Remove Wigle API tokens | Documentation |
| WIGLE_START | Start a Wigle log | Documentation |
| WIGLE_STOP | Stop a Wigle log | Documentation |
| WIGLE_UPLOAD | Upload a Wigle log to the service | Documentation |