Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Rubber Ducky pendrive USB maligno roba datos


Rubber Ducky es un dispositivo físico, un pendrive con ciertas peculiaridades y que puede ser un problema para nuestra seguridad. USB Rubber Ducky (o USB Patito de Goma), es un hardware creado por Hak5, el cual, simula ser un pendrive normal, pero en realidad es una herramienta que inyecta pulsaciones de teclas (es un teclado camuflado).




Rubber Ducky

USB Rubber Ducky es un dispositivo HID (Human Interface Device) o dispositivo de interfaz humana, es decir dispositivos de entrada y salida que permite la interacción con un ordenador, y en concreto, USB Rubber Ducky es detectado como un teclado en cualquier sistema operativo donde lo conectemos (Windows, Linux, OSX y Android).

Un Rubber Ducky podemos decir que es un pendrive modificado. Cuando ponemos una memoria USB en el ordenador, podemos copiar y pegar archivos fácilmente. Actúa como una memoria donde podemos alojar fotos, documentos o cualquier carpeta siempre que no supere el espacio de almacenamiento disponible.

En un pendrive incluso podemos programar scripts para que copie archivos desde un ordenador, o viceversa. Sin embargo para que ese script se ejecute vamos a tener que abrir la memoria USB y hacer doble clic encima del archivo correspondiente. No es algo que se realice de forma automática, sin interacción.

Sin embargo un Rubber Ducky sí va a poder ejecutar esos scripts de forma automática. Simplemente va a necesitar que le llegue corriente al estar conectado al ordenador. Automáticamente va a comenzar a copiar archivos o llevar a cabo alguna acción preestablecida.

Es precisamente esto último que mencionamos lo que hace que sea un peligro para la seguridad. Puede ser utilizado para el robo de datos o infectar nuestro equipo. Para ello bastaría con que lo conectemos al ordenador y reciba corriente.


Las especificaciones técnicas del Rubber Ducky son:

  • Ranura para micro SD
  • Botón que permite re-ejecutar el código
  • LED que indica el estado del dispositivo
  • Conector USB tipo A
  • Procesador de 60 MHz de 32 bits

Además, incorpora lo siguiente:

  • Lector USB de memorias micro SD
  • Case USB
  • Adaptador a micro USB

Imagen que muestra las especificaciones del hardware:


Al momento de conectar este USB, es reconocido con un driver Atmel, haciéndose pasar por un teclado normal (para no levantar sospechas y evitar que sea bloqueado por antivirus o firewall) y ejecuta las teclas indicadas en su código.

Imagen que muestra los componentes que vienen con el Rubber:




Ahora que sabemos qué tipo de hardware posee y los componentes que incorpora el Rubber Ducky cuando lo compramos, es necesario saber cómo funciona.


USB Rubber Ducky utiliza un código de programación sencillo y mediante un editor de texto se pueden crear los payloads. A modo de ejemplo, tenemos las siguientes instrucciones:

  • WINDOWS r: Abrir la ventana de Ejecutar de Windows
  • STRING cadena de texto: mediante la instrucción STRING se da la orden de lo que se quiere escribir, en este caso escribiría “cadena de texto” (sin comillas).
  • ENTER: emula la tecla Intro.

El Rubber Ducky trabaja con un lenguaje de programación llamado Ducky Script, en el cual, cada comando es una instrucción de teclas a presionar.

La sintaxis de este lenguaje es el siguiente:

Sintaxis Descripción
REM Comentarios, código que no será procesado
DEFAULT_DELAY / DEFAULTDELAY Se debe definir un valor entre 0 y 10000 (milisegundos), el cual establecerá un delay a todas las secuencias de comandos
DELAY Define un valor entre 0 y 10000 (milisegundos), el cual establecerá un delay entre secuencias de comandos
STRING Permite inyectar cadenas de caracteres: a-z A-Z 0-9 !-) `~+=_-"';:<,>.?[{]}/|!@#$%^&*()
WINDOWS / GUI Equivale a la tecla windows o la tecla cmd en macos
APP / MENU Equivale a la combinación de teclas SHIFT F10 de windows (clic derecho)
SHIFT Simula la tecla SHIFT, y esta se puede combinar con: DELETE, HOME, INSERT, PAGEUP, PAGEDOWN, WINDOWS, GUI, UPARROW, DOWNARROW, LEFTARROW, RIGHTARROW, TAB
ALT Simula la tecla ALT, y esta se puede combinar con: END, ESC, ESCAPE, F1-F12, caracteres simples (ejemplo: f, s), SPACE, TAB
CONTROL / CTRL Simula la tecla CTRL, y esta se puede combinar con: BREAK, PAUSE, F1-F12, ESCAPE, ESC, caracteres simples
DOWNARROW / DOWN Simulan las teclas de dirección
LEFTARROW / LEFT Simulan las teclas de dirección
RIGHTARROW / RIGHT Simulan las teclas de dirección
UPARROW / UP Simulan las teclas de dirección
BREAK / PAUSE Equivale a la combinación CTRL BREAK
CAPSLOCK Es la tecla que permite escribir en mayúsculas o minúsculas
DELETE Simula la tecla suprimir
END Tecla que permite ir al final de algo (página web, documento, etc.)
ESC / ESCAPE Tecla de escape
HOME En español equivale a la tecla inicio
INSERT Simula la tecla insertar
NUMLOCK Tecla para bloquear o desbloquear los numerales en los teclados
PAGEUP Simula la tecla Page Up
PAGEDOWN Simula la tecla Page Down
PRINTSCREEN Tecla para tomar screenshots
SCROLLLOCK Simula la tecla Scroll Lock
SPACE Tecla espacio
TAB Tecla de tabulación
REPEAT Repite la cantidad de veces que le indiquemos lo ya ejecutado


 Como Rubber Ducky es un teclado, es necesario saber el sistema operativo de la víctima, lenguaje configurado en el teclado de dicho PC/Móvil, y las teclas que posee, porque puede que tengamos problemas si lo queremos conectar en un PC con un teclado que no posea una las teclas que queremos usar, o si queremos buscar algo haciendo una combinación de teclas y luego usar un string, y lo buscamos en inglés, pero el sistema operativo esta en español, por lo tanto, es necesario saber esos detalles si queremos jugar con el Ducky en alguna computadora.

Sabiendo como es el lenguaje, y lo que necesitamos tener en cuenta al momento de crear un script (payload), es necesario saber cómo complicar el código, para que se pueda ejecutar.

Para compilar el código, existe un encoder llamado Duckencoder, al momento de compilar, se debe especificar el nombre del archivo como inject.bin.

Para usar el compilador, se usa el siguiente comando:

java -jar duckencoder.jar -i <archivo_origen> -o /<ruta>/inject.bin

Resultado:

W0lf-F4ng:Rubber Ducky W0lf_F4ng$ java -jar duckencoder.jar -i payload.txt -o /Volumes/WF-RBDUCKY/inject.bin

Hak5 Duck Encoder 2.6.3

Loading File ..... [ OK ]

Loading Keyboard File ..... [ OK ]

Loading Language File ..... [ OK ]

Loading DuckyScript ..... [ OK ]

DuckyScript Complete..... [ OK ]


W0lf-F4ng:Rubber Ducky W0lf_F4ng$ ls /Volumes/WF-RBDUCKY/

System Volume Information inject.bin 

A continuación, un ejemplo de un payload, el cual abrirá un editor de texto, y escribirá hola mundo:


REM en este payload se abrira sublime y se escribirá Hola Mundo!!!

DELAY 1000

GUI SPACE

DELAY 50

STRING sublime

ENTER

DELAY 300

STRING Hola Mundo!!!


Por lo tanto, podemos decir que USB Rubber Ducky es una herramienta muy útil para jugar y hacer maldades, no es complicado de hacer un payload, debido que el lenguaje de programación es muy sencillo.




Para finalizar, les dejo el flujo a seguir al momento de querer utilizar el Rubber:

  1. Escribir el payload
  2. Compilar el payload en la memoria micro SD
  3. Conectar la micro SD en el USB Rubber Ducky
  4. Conectar el Ducky en la máquina objetivo

Contenido Relacionado (vídeo, otras opciones con Arduino)

Fuentes:
https://www.redeszone.net/tutoriales/seguridad/rubber-ducky-ataque-dispositivo/

https://www.w0lff4ng.org/usb-rubber-ducky-101/

https://www.securityartwork.es/2015/12/23/me-parecio-ver-un-lindo-patito-usb-rubber-ducky/


2 comentarios :

Anónimo dijo...

Saludos, sabes ¿dónde puedo conseguir una Rubber ducky?

Anónimo dijo...

En la página oficial de HAK5

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.