add some new extensions
parent
7c340d533d
commit
b7e33c517d
|
@ -0,0 +1,26 @@
|
|||
EXTENSION DEFAULT_LOCK_KEY_STATES
|
||||
REM VERSION: 1.0
|
||||
REM AUTHOR: Korben
|
||||
|
||||
DEFINE #CAPS_ENABLED FALSE
|
||||
DEFINE #NUM_ENABLED TRUE
|
||||
DEFINE #SCROLL_ENABLED FALSE
|
||||
|
||||
DEFINE #SAVE_ORIGINAL_STATE TRUE
|
||||
|
||||
FUNCTION DEFAULT_LOCK_KEY_STATES()
|
||||
IF_DEFINED_TRUE #SAVE_ORIGINAL_STATE
|
||||
SAVE_HOST_KEYBOARD_LOCK_STATE
|
||||
END_IF_DEFINED
|
||||
|
||||
IF (($_CAPSLOCK_ON == #CAPS_ENABLED) == FALSE) THEN
|
||||
CAPSLOCK
|
||||
END_IF
|
||||
IF (($_NUMLOCK_ON == #NUM_ENABLED) == FALSE) THEN
|
||||
NUMLOCK
|
||||
END_IF
|
||||
IF (($_SCROLLLOCK_ON == #SCROLL_ENABLED) == FALSE) THEN
|
||||
SCROLLLOCK
|
||||
END_IF
|
||||
END_FUNCTION
|
||||
END_EXTENSION
|
|
@ -0,0 +1,19 @@
|
|||
EXTENSION DETECT_REFLECTION
|
||||
REM VERSION: 1.0
|
||||
REM AUTHOR: Korben
|
||||
|
||||
DEFINE #RESPONSE_DELAY 100
|
||||
|
||||
FUNCTION DETECT_REFLECTION()
|
||||
SAVE_HOST_KEYBOARD_LOCK_STATE
|
||||
$CURRENT_CAPS = $_CAPSLOCK_ON
|
||||
CAPSLOCK
|
||||
DELAY #RESPONSE_DELAY
|
||||
IF ($CURRENT_CAPS == $_CAPSLOCK_ON) THEN
|
||||
RESTORE_HOST_KEYBOARD_LOCK_STATE
|
||||
RETURN FALSE
|
||||
END_IF
|
||||
RESTORE_HOST_KEYBOARD_LOCK_STATE
|
||||
RETURN TRUE
|
||||
END_FUNCTION
|
||||
END_EXTENSION
|
|
@ -0,0 +1,121 @@
|
|||
EXTENSION RANDOM_VARIABLE_LABELS
|
||||
REM_BLOCK Documentation
|
||||
This extension is used to generate 5 guaranteed random unique random strings or characters
|
||||
|
||||
TARGET:
|
||||
Any
|
||||
|
||||
USAGE:
|
||||
Place this extension at top of your payload. Replace usages of
|
||||
static variable names within the code youre injecting with usages of
|
||||
the function calls below - RANDOM_LABEL_N - where N is 1-5
|
||||
|
||||
CONFIGURATION:
|
||||
To change the type of random label replace RANDOM_LABEL_TYPE with
|
||||
one of the following:
|
||||
$_RANDOM_LETTER_KEYCODE
|
||||
$_RANDOM_CHAR_KEYCODE
|
||||
$_RANDOM_NUMBER_KEYCODE
|
||||
WARNING: be sure to choose something that is a valid variable name in
|
||||
the language you intend to use this with
|
||||
|
||||
|
||||
If you only need 5 or less random variable names and would prefer
|
||||
injection performance and reduced payload size, set SINGLE_CHAR_MODE
|
||||
to TRUE
|
||||
|
||||
If you need MORE than 5 random variable names, use the template at
|
||||
the end of this extension to generate as many unique strings as
|
||||
needed with the 5 base variables: $random_label_1 through $random_label_5
|
||||
note: if this is the case you will need to keep SINGLE_CHAR_MODE FALSE
|
||||
|
||||
END_REM
|
||||
|
||||
|
||||
DEFINE #RANDOM_LABEL_TYPE $_RANDOM_LETTER_KEYCODE
|
||||
|
||||
DEFINE #SINGLE_CHAR_MODE FALSE
|
||||
|
||||
VAR $random_label_1 = #RANDOM_LABEL_TYPE
|
||||
VAR $random_label_2 = #RANDOM_LABEL_TYPE
|
||||
WHILE ($random_label_1 == $random_label_2)
|
||||
$random_label_2 = #RANDOM_LABEL_TYPE
|
||||
END_WHILE
|
||||
VAR $random_label_3 = #RANDOM_LABEL_TYPE
|
||||
WHILE (($random_label_1 == $random_label_3) || ($random_label_2 == $random_label_3))
|
||||
$random_label_3 = #RANDOM_LABEL_TYPE
|
||||
END_WHILE
|
||||
VAR $random_label_4 = #RANDOM_LABEL_TYPE
|
||||
WHILE (($random_label_1 == $random_label_4) || ($random_label_2 == $random_label_3) || ($random_label_3 == $random_label_4))
|
||||
$random_label_4 = #RANDOM_LABEL_TYPE
|
||||
END_WHILE
|
||||
VAR $random_label_5 = #RANDOM_LABEL_TYPE
|
||||
WHILE (($random_label_1 == $random_label_5) || ($random_label_2 == $random_label_5) || ($random_label_3 == $random_label_5) || ($random_label_4 == $random_label_5))
|
||||
$random_label_5 = #RANDOM_LABEL_TYPE
|
||||
END_WHILE
|
||||
|
||||
|
||||
FUNCTION RANDOM_LABEL_1()
|
||||
INJECT_VAR $random_label_1
|
||||
IF_NOT_DEFINED_TRUE #SINGLE_CHAR_MODE
|
||||
INJECT_VAR $random_label_2
|
||||
INJECT_VAR $random_label_3
|
||||
INJECT_VAR $random_label_4
|
||||
INJECT_VAR $random_label_5
|
||||
END_IF_DEFINED
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION RANDOM_LABEL_2()
|
||||
INJECT_VAR $random_label_2
|
||||
IF_NOT_DEFINED_TRUE #SINGLE_CHAR_MODE
|
||||
INJECT_VAR $random_label_1
|
||||
INJECT_VAR $random_label_3
|
||||
INJECT_VAR $random_label_4
|
||||
INJECT_VAR $random_label_5
|
||||
END_IF_DEFINED
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION RANDOM_LABEL_3()
|
||||
INJECT_VAR $random_label_3
|
||||
IF_NOT_DEFINED_TRUE #SINGLE_CHAR_MODE
|
||||
INJECT_VAR $random_label_2
|
||||
INJECT_VAR $random_label_1
|
||||
INJECT_VAR $random_label_4
|
||||
INJECT_VAR $random_label_5
|
||||
END_IF_DEFINED
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION RANDOM_LABEL_4()
|
||||
INJECT_VAR $random_label_4
|
||||
IF_NOT_DEFINED_TRUE #SINGLE_CHAR_MODE
|
||||
INJECT_VAR $random_label_3
|
||||
INJECT_VAR $random_label_2
|
||||
INJECT_VAR $random_label_1
|
||||
INJECT_VAR $random_label_5
|
||||
END_IF_DEFINED
|
||||
END_FUNCTION
|
||||
|
||||
FUNCTION RANDOM_LABEL_5()
|
||||
INJECT_VAR $random_label_5
|
||||
IF_NOT_DEFINED_TRUE #SINGLE_CHAR_MODE
|
||||
INJECT_VAR $random_label_3
|
||||
INJECT_VAR $random_label_4
|
||||
INJECT_VAR $random_label_2
|
||||
INJECT_VAR $random_label_1
|
||||
END_IF_DEFINED
|
||||
END_FUNCTION
|
||||
|
||||
REM_BLOCK
|
||||
REM Template; if you need more than 5 variable names
|
||||
|
||||
FUNCTION RANDOM_LABEL_^()
|
||||
INJECT_VAR $random_label_2
|
||||
INJECT_VAR $random_label_3
|
||||
INJECT_VAR $random_label_4
|
||||
INJECT_VAR $random_label_5
|
||||
INJECT_VAR $random_label_1
|
||||
END_FUNCTION
|
||||
|
||||
END_REM
|
||||
|
||||
END_EXTENSION
|
|
@ -0,0 +1,24 @@
|
|||
EXTENSION TIMED_WAIT_FOR_BUTTON_PRESS
|
||||
REM VERSION: 1.0
|
||||
REM AUTHOR: Korben
|
||||
|
||||
DEFINE #MAX_WAIT 10000
|
||||
DEFINE #CHECK_INTERVAL 100
|
||||
|
||||
FUNCTION TIMED_WAIT_FOR_BUTTON_PRESS()
|
||||
VAR $MAX_WAIT = #MAX_WAIT
|
||||
VAR $CURRENT_WAIT = 0
|
||||
VAR $CONTINUE = TRUE
|
||||
VAR $HELD_FOR = 0
|
||||
|
||||
WHILE ($CURRENT_WAIT > $MAX_WAIT)
|
||||
DELAY #CHECK_INTERVAL
|
||||
IF ($_BUTTON_PUSH_RECEIVED) THEN
|
||||
RETURN $CURRENT_WAIT
|
||||
END_IF
|
||||
$_BUTTON_PUSH_RECEIVED = FALSE
|
||||
$CURRENT_WAIT = ($CURRENT_WAIT + #CHECK_INTERVAL)
|
||||
END_WHILE
|
||||
RETURN 0
|
||||
END_FUNCTION
|
||||
END_EXTENSION
|
|
@ -0,0 +1,54 @@
|
|||
EXTENSION WAIT_FOR_BUTTON_HOLD
|
||||
REM VERSION: 1.0
|
||||
REM AUTHOR: Korben
|
||||
|
||||
REM_BLOCK DOCUMENTATION
|
||||
USAGE:
|
||||
Call WAIT_FOR_BUTTON_HOLD() - RETURNS TRUE if button held before timeout, FALSE if not
|
||||
|
||||
CONFIGURATION:
|
||||
MAX_WAIT - number of ms requried before execution continues
|
||||
regardless of button press - set to 0 to block forever until button hold
|
||||
|
||||
HOLD_LENGTH - number of ms required to regsiter button activity as a valid hold
|
||||
|
||||
CHECK_INTERVAL - number of ms interval to check button status
|
||||
END_REM
|
||||
|
||||
REM set #MAX_WAIT to 0 for no timeout -- wait forever
|
||||
DEFINE #MAX_WAIT 10000
|
||||
REM amount of time required to be considered a hold in ms
|
||||
DEFINE #HOLD_LENGTH 3000
|
||||
REM how frequently we check that the button is continuously being held
|
||||
DEFINE #CHECK_INTERVAL 100
|
||||
|
||||
FUNCTION WAIT_FOR_BUTTON_HOLD()
|
||||
VAR $MAX_WAIT = #MAX_WAIT
|
||||
VAR $CURRENT_WAIT = 0
|
||||
VAR $CONTINUE = TRUE
|
||||
VAR $HELD_FOR = 0
|
||||
|
||||
WHILE ($CONTINUE)
|
||||
DELAY #CHECK_INTERVAL
|
||||
IF ($_BUTTON_PUSH_RECEIVED) THEN
|
||||
$HELD_FOR = ($HELD_FOR + #CHECK_INTERVAL)
|
||||
IF ($HELD_FOR >= #HOLD_LENGTH) THEN
|
||||
$MAX_WAIT = 0
|
||||
REM button held target met
|
||||
RETURN TRUE
|
||||
END_IF
|
||||
ELSE
|
||||
$HELD_FOR = 0
|
||||
END_IF
|
||||
$_BUTTON_PUSH_RECEIVED = FALSE
|
||||
$CURRENT_WAIT = ($CURRENT_WAIT + #CHECK_INTERVAL)
|
||||
|
||||
REM check to see if we have timed out, if non-0
|
||||
IF (($MAX_WAIT > 0) && ($CURRENT_WAIT > $MAX_WAIT)) THEN
|
||||
$CONTINUE = FALSE
|
||||
END_IF
|
||||
END_WHILE
|
||||
|
||||
RETURN FALSE
|
||||
END_FUNCTION
|
||||
END_EXTENSION
|
|
@ -0,0 +1,20 @@
|
|||
EXTENSION WINDOWS_ONLY
|
||||
REM VERSION 1.0
|
||||
REM AUTHOR: Korben
|
||||
|
||||
DEFINE #FAILURE_LED TRUE
|
||||
DEFINE #FAILURE_LED_MODE LED_R
|
||||
DEFINE #FAILURE_ATTACKMODE ATTACKMODE OFF
|
||||
|
||||
IF (($_OS == WINDOWS) == FALSE) THEN
|
||||
IF_DEFINED_TRUE #FAILURE_LED
|
||||
#FAILURE_LED_MODE
|
||||
DELAY 500
|
||||
#FAILURE_LED_MODE
|
||||
DELAY 500
|
||||
#FAILURE_LED_MODE
|
||||
END_IF_DEFINED
|
||||
#FAILURE_ATTACKMODE
|
||||
STOP_PAYLOAD
|
||||
END_IF
|
||||
END_EXTENSION
|
Loading…
Reference in New Issue