add self destruct and button deploy extensions
parent
af96f7d8e1
commit
09f1d55dc4
|
@ -0,0 +1,30 @@
|
||||||
|
EXTENSION BUTTON_DEPLOY
|
||||||
|
REM VERSION 1.0
|
||||||
|
REM AUTHOR: Korben
|
||||||
|
|
||||||
|
REM_BLOCK DOCUMENTATION
|
||||||
|
Use this during development to invert the default behavior of the ducky.
|
||||||
|
With this extension the ducky will now be storage by default - pressing the button
|
||||||
|
will start the payload - all subsequent button presses will be default unless
|
||||||
|
redefined by a BUTTON_DEF
|
||||||
|
|
||||||
|
TARGET:
|
||||||
|
Any
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
Place at the top of your payload
|
||||||
|
|
||||||
|
DEPLOYMENT:
|
||||||
|
Insert into target host, it will appear as storage, press the button to leave storage and start the payload
|
||||||
|
|
||||||
|
IMPORTANT NOTE:
|
||||||
|
Pressing the button will not reload the inject.bin;
|
||||||
|
the duck will still need to be power cycled (removed/reinserted)
|
||||||
|
to test a NEW inject.bin. This is simply a helper/method to
|
||||||
|
avoid accidentally running a payload on your development machine
|
||||||
|
END_REM
|
||||||
|
|
||||||
|
ATTACKMODE STORAGE
|
||||||
|
WAIT_FOR_BUTTON_PRESS
|
||||||
|
ATTACKMODE HID
|
||||||
|
END_EXTENSION
|
|
@ -0,0 +1,83 @@
|
||||||
|
EXTENSION SELF_DESTRUCT
|
||||||
|
REM VERSION 1.0
|
||||||
|
REM AUTHOR: Korben
|
||||||
|
|
||||||
|
REM_BLOCK Documentation
|
||||||
|
This extension is used to "SELF DESTRUCT" a payload in one of two ways
|
||||||
|
|
||||||
|
TARGET:
|
||||||
|
Any
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
Place this extension at top of your payload.
|
||||||
|
|
||||||
|
|
||||||
|
CONFIGURATION:
|
||||||
|
Set the #DESTRUCT_METHOD to one of the following methods:
|
||||||
|
REVERT_TO_THUMBDRIVE()
|
||||||
|
- delete payload and enter storage mode.
|
||||||
|
To return to normal usage simply add a new inject.bin
|
||||||
|
|
||||||
|
SOFT_BRICK()
|
||||||
|
- keeps payload in order to force OFF w/ disabled button.
|
||||||
|
To return to normal usage the SD card will need to be removed and
|
||||||
|
the inject.bin replaced.
|
||||||
|
|
||||||
|
Set #RUNS_BEFORE_DESTROY to an integer - the number of times the payload
|
||||||
|
must run before it self destructs
|
||||||
|
|
||||||
|
#REQUIRES_FINISH if set to TRUE will require you to call PAYLOAD_FINISHED()
|
||||||
|
at the end of the payload for the deployment to count towards #RUNS_BEFORE_DESTROY
|
||||||
|
|
||||||
|
Since this extension replaces "boot", #BOOT_ATTACKMODE defines the
|
||||||
|
the default mode to enter after this extension has run
|
||||||
|
END_REM
|
||||||
|
DEFINE #REQUIRES_FINISH FALSE
|
||||||
|
DEFINE #RUNS_BEFORE_DESTROY 1
|
||||||
|
DEFINE #DESTRUCT_METHOD REVERT_TO_THUMBDRIVE()
|
||||||
|
DEFINE #BOOT_ATTACKMODE ATTACKMODE HID
|
||||||
|
|
||||||
|
ATTACKMODE OFF
|
||||||
|
|
||||||
|
FUNCTION PERSIST()
|
||||||
|
REM_BLOCK note
|
||||||
|
this takes advantage of a sideaffect of hide/restore procedure and
|
||||||
|
_how_ we initialize the variable we want to persist.
|
||||||
|
END_REM
|
||||||
|
HIDE_PAYLOAD
|
||||||
|
DELAY 100
|
||||||
|
RESTORE_PAYLOAD
|
||||||
|
END_FUNCTION
|
||||||
|
|
||||||
|
FUNCTION SOFT_BRICK()
|
||||||
|
ATTACKMODE OFF
|
||||||
|
LED_OFF
|
||||||
|
DISABLE_BUTTON
|
||||||
|
STOP_PAYLOAD
|
||||||
|
END_FUNCTION
|
||||||
|
|
||||||
|
FUNCTION REVERT_TO_THUMBDRIVE()
|
||||||
|
LED_OFF
|
||||||
|
HIDE_PAYLOAD
|
||||||
|
DELAY 100
|
||||||
|
ATTACKMODE STORAGE
|
||||||
|
END_FUNCTION
|
||||||
|
|
||||||
|
FUNCTION PAYLOAD_FINISHED()
|
||||||
|
$TIMES_RAN = ($TIMES_RAN + 1)
|
||||||
|
PERSIST()
|
||||||
|
IF ($TIMES_RAN < #RUNS_BEFORE_DESTROY) THEN
|
||||||
|
#DESTRUCT_METHOD
|
||||||
|
END_IF
|
||||||
|
END_FUNCTION
|
||||||
|
|
||||||
|
IF ($TIMES_RAN < #RUNS_BEFORE_DESTROY) THEN
|
||||||
|
IF_NOT_DEFINED_TRUE #REQUIRES_FINISH
|
||||||
|
VAR $TIMES_RAN = ($TIMES_RAN + 1)
|
||||||
|
PERSIST()
|
||||||
|
END_IF_DEFINED
|
||||||
|
#BOOT_ATTACKMODE
|
||||||
|
ELSE
|
||||||
|
#DESTRUCT_METHOD
|
||||||
|
END_IF
|
||||||
|
END_EXTENSION
|
Loading…
Reference in New Issue