
Advertencia: Esta guía es para fines educativos y éticos, como pruebas de seguridad en entornos controlados con permiso explícito. El uso no autorizado de USB Rubber Ducky puede violar leyes locales o políticas de plataformas. Asegúrate de cumplir con todas las regulaciones aplicables.
Ducky Script es el lenguaje de programación del USB Rubber Ducky, una herramienta diseñada para automatizar pulsaciones de teclas y realizar pruebas de seguridad simulando un teclado USB.
Los scripts se pueden escribir en cualquier editor de texto ASCII, como Notepad, Vim, Emacs, Nano, Gedit o TextEdit, y luego compilarse en un archivo ejecutable para el dispositivo.
Sintaxis de Ducky Script
La sintaxis de Ducky Script es sencilla y está diseñada para ser fácil de aprender. Cada comando se escribe en una nueva línea, en MAYÚSCULAS, y puede incluir parámetros opcionales. Los comandos simulan pulsaciones de teclas, combinaciones de teclas, cadenas de texto o introducen retrasos.
A continuación, se detalla una lista de los comandos principales, sus funciones y ejemplos de uso. En las tablas, //n//
representa un número y //Char//
representa caracteres alfanuméricos (A-Z, a-z).
REM
El comando REM
indica un comentario y no se ejecuta. Es útil para documentar scripts.
Comando |
---|
REM |
REM Abre un símbolo del sistema en Windows
GUI r
STRING cmd
ENTER
DEFAULT_DELAY
DEFAULT_DELAY
(o DEFAULTDELAY
) define un retraso en milisegundos entre cada comando subsiguiente. Es opcional y útil para depuración o para garantizar que los comandos se ejecuten correctamente en sistemas más lentos.
Comando | Parámetros |
---|---|
DEFAULT_DELAY | Número (milisegundos) |
DEFAULTDELAY | Número (milisegundos) |
DEFAULT_DELAY 100
REM Retrasa 100 ms entre cada comando subsiguiente
GUI r
STRING cmd
ENTER
DELAY
DELAY
introduce una pausa específica en milisegundos (de 1 a 10,000) entre comandos, útil para esperar a que el sistema procese una acción.
Comando | Parámetros |
---|---|
DELAY | Número (milisegundos) |
DELAY 500
REM Espera 500 ms antes del siguiente comando
GUI r
STRING notepad.exe
ENTER
STRING
STRING
envía una cadena de texto, simulando la escritura de caracteres en un teclado. Admite letras, números y caracteres especiales.
Comando | Parámetros |
---|---|
STRING | a-z, A-Z, 0-9, !@#$%^&*()_+-=[]{}|;:,.<>?/~ |
GUI r
DELAY 500
STRING notepad.exe
ENTER
DELAY 1000
STRING Hello World!
GUI (o WINDOWS)
GUI
(o WINDOWS
) simula la tecla Windows (Superclave), comúnmente usada en combinaciones de teclas.
Comando | Parámetros |
---|---|
GUI | Carácter único (ej., r, d) |
WINDOWS | Carácter único (ej., r, d) |
GUI r
REM Abre el menú Ejecutar en Windows
DELAY 500
STRING cmd
ENTER
MENU (o APP)
MENU
(o APP
) simula la tecla de menú contextual, equivalente a Shift + F10 en Windows, para abrir menús contextuales.
Comando |
---|
MENU |
APP |
GUI d
MENU
STRING v
STRING d
REM Cambia al escritorio, abre el menú contextual y alterna la visualización de iconos
SHIFT
SHIFT
simula la tecla Shift, útil para combinaciones de teclas o selección de texto.
Comando | Parámetros |
---|---|
SHIFT | DELETE, HOME, INSERT, PAGEUP, PAGEDOWN, WINDOWS, GUI, UPARROW, DOWNARROW, LEFTARROW, RIGHTARROW, TAB |
SHIFT INSERT
REM Pega contenido en la mayoría de los sistemas operativos
ALT
ALT
simula la tecla Alt, usada en combinaciones para acceder a menús o funciones específicas.
Comando | Parámetros |
---|---|
ALT | END, ESC, ESCAPE, F1-F12, Carácter único, SPACE, TAB |
GUI r
DELAY 50
STRING notepad.exe
ENTER
DELAY 100
STRING Hello World
ALT f
STRING s
REM Abre el menú Archivo y guarda el documento
CONTROL (o CTRL)
CONTROL
(o CTRL
) simula la tecla Control, ampliamente utilizada en combinaciones de teclas.
Comando | Parámetros |
---|---|
CONTROL | BREAK, PAUSE, F1-F12, ESC, ESCAPE, Carácter único |
CTRL | BREAK, PAUSE, F1-F12, ESC, ESCAPE, Carácter único |
CONTROL ESC
REM Equivalente a la tecla GUI en Windows
Teclas direccionales
Comando |
---|
DOWNARROW |
DOWN |
LEFTARROW |
LEFT |
RIGHTARROW |
RIGHT |
UPARROW |
UP |
Comandos extendidos
Comando | Descripción |
---|---|
BREAK | Usado en combinaciones como CTRL+BREAK |
PAUSE | Similar a BREAK, para pausas |
CAPSLOCK | Alterna el bloqueo de mayúsculas |
DELETE | Elimina caracteres o elementos |
END | Mueve el cursor al final |
ESC | Cierra ventanas o cancela acciones |
ESCAPE | Alias de ESC |
HOME | Mueve el cursor al inicio |
INSERT | Alterna modo de inserción |
NUMLOCK | Alterna el bloqueo numérico |
PAGEUP | Desplaza hacia arriba |
PAGEDOWN | Desplaza hacia abajo |
PRINTSCREEN | Captura la pantalla |
SCROLLLOCK | Alterna el bloqueo de desplazamiento |
SPACE | Inserta un espacio |
TAB | Navega entre campos |
FN | Tecla de función modificadora |
REPEAT
REPEAT
ejecuta el comando anterior un número específico de veces.
Comando | Parámetros |
---|---|
REPEAT | Número de repeticiones |
DOWN
REPEAT 100
REM Ejecuta DOWN 101 veces en total (1 inicial + 100 repeticiones)
Compilación de scripts
Los scripts de Ducky Script se compilan en archivos binarios (inject.bin
) que se almacenan en la raíz de una tarjeta microSD para su ejecución en el USB Rubber Ducky.
La herramienta Duckencoder, un programa Java de línea de comandos multiplataforma, convierte los scripts en formato hexadecimal.
Ejemplo de uso en Linux:
java -jar duckencoder.jar -i exploit.txt -o /media/microsdcard/inject.bin
Uso general de Duckencoder (versión 1.X):
duckencode -i [archivo_entrada] [-o [archivo_salida]]
Recursos adicionales
Instalación de USB Rubber Ducky Android App
«Rucky» Lanzador Rubber Ducky
Compartir: