Aller au contenu

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