
Ducky Script es el lenguaje del USB Rubber Ducky.
La escritura de scripts se puede realizar desde cualquier editor de texto ascii común, como Notepad, vi, emacs, nano, gedit, kedit, TextEdit, etc.
Sintaxis de Script para Ducky
La sintaxis de Ducky Script es simple.
Cada comando reside en una nueva línea y puede tener opciones a continuación.
Los comandos están escritos TODO EN MAYÚSCULAS, porque los patos son ruidosos y les gusta graznar con orgullo.
La mayoría de los comandos invocan pulsaciones de teclas, combinaciones de teclas o cadenas de texto, mientras que algunos ofrecen retrasos o pausas.
A continuación se muestra una lista de comandos y su función, seguida de algunos ejemplos de uso.
Nota: En las siguientes tablas, //n// representa un número y //Char// representa los caracteres AZ, az.
REM
Al igual que el comando REM en Basic y otros lenguajes, las líneas que comienzan con REM no se procesarán. REM es un comentario.
Comando |
---|
REM |
REM Las siguientes tres líneas ejecutan un símbolo del sistema en Windows
GUI r
STRING cmd
ENTER
DEFAULT_DELAY o DEFAULTDELAY
DEFAULT_DELAY o DEFAULTDELAY se utiliza para definir cuánto tiempo (milisegundos) esperar entre cada comando subsiguiente. DEFAULT_DELAY debe emitirse al comienzo del script de Ducky y es opcional. No especificar DEFAULT_DELAY dará como resultado una ejecución más rápida de los scripts de Ducky. Este comando es sobre todo útil durante la depuración.
Comando | Parámetros |
---|---|
DEFAULT_DELAY | 0..-> |
DELAY POR DEFECTO | 0..-> |
DEFAULT_DELAY 100
REM retrasa 100 ms entre cada secuencia de comando subsiguiente
DELAY
DELAY crea una pausa momentánea en el guión de Ducky. Es muy útil para crear un momento de pausa entre los comandos secuenciales que pueden tardar en procesarse en la computadora de destino. El tiempo DELAY se especifica en milisegundos de 1 a 10000. Se pueden usar varios comandos DELAY para crear retrasos más largos.
Comando | Parámetros |
---|---|
DELAY | 0..-> |
DELAY 500
REM esperará 500 ms antes de continuar con el siguiente comando.
STRING
STRING procesa el siguiente texto prestando especial atención al desplazamiento automático. STRING puede aceptar uno o varios caracteres.
Comando | Parámetros |
---|---|
STRING | a…z A…Z 0..9 !…) `~ += _- «‘ :; <, >. ?/ \ y pipe |
GUI r
DELAY 500
STRING notepad.exe
ENTER
DELAY 1000
STRING Hello World!
WINDOWS or GUI
Emula la clave de Windows, a veces denominada Superclave.
Comando | Parámetros |
---|---|
GUI | Caracter único |
WINDOWS | Caracter único |
GUI r
REM mantendrá presionada la tecla de Windows y presionará r, en los sistemas de Windows, lo que dará como resultado el menú Ejecutar.
MENU or APP
Emula la tecla de la aplicación, a veces denominada tecla de menú o tecla de menú contextual.
En los sistemas Windows, esto es similar a la combinación de teclas SHIFT F10, produciendo un menú similar a un clic derecho.
Comando |
---|
APP |
MENU |
GUI d
MENU
STRING v
STRING d
//Cambiar al escritorio, abrir el menú contextual y elegir las acciones v, luego d alterna la visualización de los iconos del escritorio de Windows//
SHIFT
A diferencia de BLOQ MAYÚS, control de crucero para enfriar, el comando MAYÚS se puede usar al navegar por los campos para seleccionar texto, entre otras funciones.
Comando | Parámetros |
---|---|
SHIFT | DELETE, HOME, INSERT, PAGEUP, PAGEDOWN, WINDOWS, GUI, UPARROW, DOWNARROW, LEFTARROW, RIGHTARROW, TAB |
SHIFT INSERT
REM esto es pasta para la mayoría de los sistemas operativos
ALT
La tecla ALT, que se encuentra a la izquierda de la tecla de espacio en la mayoría de los teclados, es fundamental en muchas operaciones de automatización. ALT tiene envidia de CONTROL
Comando | Parámetros |
---|---|
ALT | END, ESC, ESCAPE, F1…F12, Caracter único, SPACE, TAB |
GUI r
DELAY 50
STRING notepad.exe
ENTER
DELAY 100
STRING Hello World
ALT f
STRING s
REM alt-f abre el menú Archivo y s guarda. Esta combinación de dos pulsaciones de teclas es la razón por la que ALT está celoso de la flojedad de CONTROL y CTRL+S
CONTROL or CTRL
El rey de las combinaciones de teclas, CONTROL es todopoderoso.
Comando | Parámetros |
---|---|
CONTROL | BREAK, PAUSE, F1…F12, ESCAPE, ESC, Caracter único |
CTRL | BREAK, PAUSE, F1…F12, ESCAPE, ESC, Caracter único |
CONTROL ESCAPE
REM this is equivalent to the GUI key in Windows
Teclas clave
Comando |
---|
DOWNARROW or DOWN |
LEFTARROW or LEFT |
RIGHTARROW or RIGHT |
UPARROW or UP |
Comandos Extendidos
Comando | Notas |
---|---|
BREAK or PAUSE | Para el combo infame CTRL BREAK |
CAPSLOCK | Control crucero para enfriar. Alterno |
DELETE | |
END | Algún día en el |
ESC or ESCAPE | Si nunca puedes salir |
HOME | No hay lugar como el |
INSERT | |
NUMLOCK | Alterna el bloqueo de números |
PAGEUP | |
PAGEDOWN | |
PRINTSCREEN | Normalmente toma capturas de pantalla |
SCROLLLOCK | No ha sido tan útil desde que se inventó la GUI |
SPACE | la frontera final |
TAB | no solo una cola |
FN | tecla modificación |
REPEAT
Repite el último comando N veces
Comando | n |
---|---|
REPEAT | número de veces para repetir |
DOWN
REPEAT 100
REM El comando anterior se repite 100 veces (por lo tanto, se realiza 101 veces en total)
Compilación
Los scripts de Ducky se compilan en archivos hexadecimales listos para llamarse inject.bin y se mueven a la raíz de una tarjeta microSD para que el USB Rubber Ducky los ejecute.
Esto se hace con la herramienta duckencoder
Duckencoder es un programa Java de línea de comandos multiplataforma que convierte la sintaxis de Ducky Script en archivos hexadecimales.
El uso es:
A partir de duckencoder 1.X, el uso es:
usage: duckencode -i [file ..] encode specified file
or: duckencode -i [file ..] -o [file ..] encode to specified file
Por ejemplo en un sistema Linux:
java -jar duckencoder.jar -i exploit.txt -o /media/microsdcard/inject.bin