Le Ducky Script
Qu’est ce que le Ducky script ?
Le ducky script est le nom donné au langage de la firme Hak5 pour leur solution de clé USB type Bad USB comme la Rubber Ducky ou encore la Bash Bunny. Il est en effet plus facile de programmer une attaque HID avec du matériel qui supporte ce langage, il est possible de l’installer sur un Raspberry Pi zéro pour le transformer en Rubber Ducky abordable, bien que moins facilement dissimulable et nécessite un câble USB pour fonctionner.
La syntaxe du Ducky Script
La syntaxe du Ducky Scripts à été étudiée pour être le plus facilement modifiable et avec très peu de connaissances en programmation et en langages divers.
REM
Permet de commenter une ligne de façon à aérer le code et de plus facilement le comprendre après coup, s’il y à besoin de modifier quelque chose
REM The next three lines executes a command prompt in Windows
GUI r
STRING cmd
ENTER
DEFAULT DELAY / DELAY
La commande DEFAULT DELAY sert à définir un délai par défaut entre les actions qui seront effectuées. Il est donnée en millisecondes*10 et est complètement optionnel, je ne conseille pas de le renseigner, il sert en général pour débugger un code en y mettant une valeur élevée
DEFAULT_DELAY 10
REM delays 100 ms between each subsequent command sequence
La commande DELAY quant à elle, sert également à configurer un délai entre deux actions mais se place en début de ligne avant la touche demandée. Si on le place pas de délai avant une commande, elle s’exécute instantanément après la précédente, ce qui peut faire que la machine n’a pas le temps de réagir à temps et fera échouer votre script
DELAY 50
REM Will wait 500ms before continuing to the next command
STRING
String sert à taper une suite de caractères par exemple lorsque que l’on veut taper rapidement une URL ou une suite de mots
GUI r
DELAY 50
STRING notepad.exe
ENTER
DELAY 100
STRING Hello World !
GUI / WINDOWS
Sert à émuler la touche d’OS (Windows / Super / Commande)
GUI r
REM Will hold the Windows-Key and press r, on windows systems resulting in the Run menu.
MENU / APP
Sert à ouvrir le menu contextuel, comme le fait Shift + F10 ou bien un clic droit
GUI d
MENU
STRING v
STRING d
REM Switch to desktop, pull up context menu and choose actions v, then d toggles displaying Windows desktop incons
SHIFT
Shift peut nous servir à faire des raccourcis clavier comme pour sélectionner du texte ou bien changer d’application en cours
SHIFT INSERT
REM This is paste for most operating systems
ALT
Alt nous permet d’avoir accès à de nombreuses autres commandes et raccourcis clavier comme le Alt + F ou bien le Alt + Space
GUI r
DELAY 50
STRING notepad.exe
ENTER
DELAY 100
STRING Hello World
ALT f
STRING s
REM alt-f pulls up the File menu and s saves. This two keystroke combo is why ALT is jealous of CONTROL'S leetness and CTRL+S
CONTROL / CTRL
Contrôle nous sert surtout à faire CONTROL ESCAPE, c’est l’équivalent de la touche Windows
CONTROL ESCAPE
REM this is equivalent to the GUI key in Windows
ARROW
Fonction plutôt explicite, permet d’émuler les touches directionnelles pour se déplacer dans des menus par exemple
DOWNARROW or DOWN | | LEFTARROW or LEFT | | RIGHTARROW or RIGHT | | UPARROW or UP
AUTRES TOUCHES
BREAK or PAUSE
CAPSLOCK
DELETE
END
ESC or ESCAPE
HOME
INSERT
NUMLOCK
PAGEUP
PAGEDOWN
PRINTSCREEN
SCROLLOCK
SPACE
TAB
CACHER SON TERMINAL
Il peut être intéressant de cacher la fenêtre du terminal lors de son exécution :
DELAY 1000
GUI r
DELAY 100
STRING cmd
ENTER
DELAY 500
STRING color FE
ENTER
STRING mode con:cols=18 lines=1
ENTER
OPTIMISATION
On peut optimiser les commandes afin de rendre les modifications du payload plus rapides et plus simples
DELAY 1000
GUI r
DELAY 100
STRING cmd /C color FE&mode con:cols=18 lines=1&tree c:\ /F /A
ENTER
RE-OPTIMISATION
On peut aussi vouloir exécuter son terminal en arrière plan
DELAY 1000
GUI r
DELAY 100
STRING cmd /C "start /MIN cmd /C tree c:\ /F /A"
ENTER