diff --git a/payloads/extensions/prompt.sh b/payloads/extensions/prompt.sh new file mode 100644 index 00000000..5fa523a0 --- /dev/null +++ b/payloads/extensions/prompt.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +################################################################################ +# Quickly get to a prompt on any platform with the BashBunny +# +# How this works? +# 1) Once the library is included in your payload, launch terminal\powershell\run +# with: +# PROMPT [OS] +# 2) OS options are: +# "AUTO" : Default - Hak5 2124 cross platform code +# "UNITY" : Launches Terminal in Unity +# "UNITY_RUN" : Opens run prompt in Unity +# "MAC" : Launches Terminal in OSX +# "POWERSHELL" : Launches Powershell in Windows +# "WINDOWS_RUN": Opens run prompt in Windows +# 3) To close a prompt use: +# CLOSE_PROMPT [OS] +################################################################################ + +################################################################################ +# Start HID Prompt +################################################################################ + + +function PROMPT() { +if [ -z "$1" ]; then + OS="AUTO" +else + OS=$1 +fi + +#AUTO +if [ "${OS}" = "AUTO" ]; then + LED G B 100 + QUACK ALT F2 + QUACK DELAY 50 + QUACK GUI SPACE + QUACK DELAY 50 + QUACK GUI r + clear_active_input + wait_enter_wait 200 1000 +fi + +#UNITY +if [ "${OS}" = "UNITY" ]; then + LED R B 100 + QUACK GUI + clear_active_input + QUACK STRING terminal + wait_enter_wait 200 1000 +fi + +#UNITY_RUN +if [ "${OS}" = "UNITY_RUN" ]; then + LED R B 100 + QUACK ALT F2 +fi + +#MAC +if [ "${OS}" = "MAC" ]; then + LED R B G 100 + QUACK GUI SPACE + clear_active_input + QUACK STRING terminal + wait_enter_wait 200 1000 +fi + +#POWERSHELL +if [ "${OS}" = "POWERSHELL" ]; then + LED B 100 + QUACK GUI + QUACK DELAY 500 + QUACK powershell + wait_enter_wait 200 1000 +fi + +#WINDOWS_RUN +if [ "${OS}" = "WINDOWS_RUN" ]; then + LED B 100 + QUACK GUI r + QUACK DELAY 500 +fi + +LED 0 + +} + +function CLOSE_PROMPT() { + if [ -z "$1" ]; then + QUACK ALT F4 + else + if [ "$1" = "MAC" ]; then + QUACK GUI w + else + QUACK ALT F4 + fi + fi +} + +# HELPER FUNCTIONS +function wait_enter_wait() { + if [ -z "$1" ]; then + BEFORE_WAIT=100 + else + BEFORE_WAIT=$1 + fi + if [ -z "$2" ]; then + AFTER_WAIT=100 + else + AFTER_WAIT=$2 + fi + + QUACK DELAY ${BEFORE_WAIT} + QUACK ENTER + QUACK DELAY ${AFTER_WAIT} +} + +function clear_active_input() { + QUACK DELAY 50 + QUACK BACKSPACE + QUACK DELAY 100 +} + +export -f PROMPT +export -f CLOSE_PROMPT \ No newline at end of file