Este tutorial es una traducción y resumen de:
https://www.pentestingshop.com/pentesting/make-your-own-usb-rubber-ducky-using-a-normal-usb-stick/
Casi todos hemos oído hablar de los USB Rubber Ducky y con ello su precio, la verdad es que a día de hoy son bastante asequibles, pero no para todo el mundo por problemas legales (en Argentina he oído que tienen problemas para conseguirlo) o económicos, de modo que hoy les traigo un tutorial sobre cómo hacerlo ‘casero’.
En primer lugar me gustaría aclarar que no se puede realizar con todos los USB, requiere que tengan el chipset / controlador Phison 2251-03, aquí les dejo una lista con los dispositivos compatibles conocidos
https://github.com/brandonlw/Psychson/wiki/Known-Supported-Devices
Algunos de estos modelos están empezando a ser retirados del mercado por estos mismos motivos, y peor aún es que aunque tuvieseis el mismo modelo de USB nada os garantiza que utilice Phison 2251-03, por ello se recomienda usar este software:
http://antspec.com/usbflashinfo/index.php
El cual extrae información sobre el dispositivo en cuestión, incluido que controlador utiliza, recomiendo comprobar los USB que ya tenéis, yo me he llevado una sorpresa al ver que uno de mis dispositivos utiliza dicho controlador pero no es ninguno de los indicados en la lista, tambien podeis comprar dispositivos compatibles en el tutorial original.
Tener en cuenta que en el tutorial se utiliza unos directorios específicos principalmente una carpeta en raíz de C:\ llamada fw, para evitar problemas en los comandos te recomiendo imitarlo.
Primero necesitamos descargar los siguientes archivos:
Archivo 1: Psychson-Master https://github.com/adamcaudill/Psychson
Archivo 2: Microsoft Visual Studio 2012 Express: http://www.microsoft.com/en-us/download/details.aspx?id=34673
Archivo 3: sdcc-3.4.0 pequeño compilador en C: http://sourceforge.net/projects/sdcc/files/sdcc-win64/3.4.0/
Archivo 4: Java Runtime Environment : http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
Archivo 5: duckencoder.jar: https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Downloads
Archico 6: Firmware: http://www.usbdev.ru/?wpfb_dl=777
Instalaciones:
- Visual Studio (al confirmar el correo electrónico tras registrarnos, nos dan el serial)
- SDCC en C:\Program Files\SDCC (importante no poner otro directorio)
- Java Runtime Environment.
Una vez terminadas las instalaciones procedemos a extraer los archivos de Psychson-master.zip en el directorio antes mencionado ( C:\fw ).En este mismo directorio creamos otras dos carpetas llamadas fw_bn y ducky.
Extraemos el firmware_ps2251-03.rar en C:\fw\fw_bn, entramos en la carpeta extraída C:\fw\fw_bn\Firmware PS2251-03 y copiamos los archivos BN03V104M.BIN y FW03FF01V10753M_20130621.BIN en C:\fw\fw_bn, y por ultimo movemos el archivo duckencoder.jar a la carpeta restante C:\fw\ducky
En resumen:
duckencoder.jar-----------------------C:\fw\ducky
(carpeta) Firmware PS2251-03--------------------------C:\fw\fw_bn
BN03V104M.BIN y FW03FF01V10753M_20130621.BIN--------------C:\fw\fw_bn
(carpeta) Psychson-master-------------------C:\fw
De modo que el siguiente paso es compilar, para ello nos dirigimos a C:\fw\Psychson-master\DriveCom y abrimos DriveCom.sln con Visual Studio 2012 Express, nos abrirá una ventana emergente de Visual Studio, en la que hacemos click en Start/Iniciar, esto nos abrirá una consola con el mensaje ‘No action specified, entering console.’, cerramos la consola y Visual Studio. Nos dirigimos a C:\fw\Psychson-master\Injector y realizamos el mismo proceso con el archivo Injector.sln con la diferencia de que no nos abrirá una terminal, cerramos de nuevo Visual Studio y nos dirigimos a C:\fw\Psychson-master\EmbedPayload y repetimos el proceso con el archivo EmbedPayload.sln.
Ahora que ya tenemos todo compilado, necesitamos una secuencia de comandos para nuestro USB rubber ducky, para ello tenemos amplia variedad de Payload en:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads
Este tutorial al igual que el original vamos a usar el Payload – Hello World.
Copiamos el código y nos dirigimos a C:\fw\ducky, creamos un nuevo documento de texto con el nombre HelloWorld.txt sobre el cual pegamos el código.
Abrimos una cmd como administrador e introducimos el siguiente comando:
java -jar c:\fw\ducky\duckencode.jar -i c:\fw\ducky\HelloWorld.txt -o c:\fw\ducky\inject.bin
A continuación nos dirigimos a C:\fw\Psychson-master\firmware y ejecutamos build.bat lo que nos generara una carpeta llamada bin en el directorio actual.
Volvemos a la cmd y ejecutamos el 2º comando (evidentemente como administrador):
c:\fw\Psychson-master\tools\EmbedPayload.exe c:\fw\ducky\inject.bin c:\fw\Psychson-master\firmware\bin\fw.bin
Conectamos el dispositivo USB al equipo y prestamos especial atención a la letra que se le ha asignado, volvemos a la cmd y escribimos los siguientes comandos cambiando drive=/G por la letra asignada a nuestro dispositivo:
c:\fw\Psychson-master\tools\DriveCom.exe /drive=G /action=SetBootMode
c:\fw\Psychson-master\tools\DriveCom.exe /drive=G /action=SendExecutable /burner=c:\fw\fw_bn\BN03V104M.BIN
c:\fw\Psychson-master\tools\DriveCom.exe /drive=G /action=DumpFirmware /firmware=c:\fw\currentfw.bin
c:\fw\Psychson-master\tools\DriveCom.exe /drive=G /action=SendFirmware /burner=c:\fw\fw_bn\BN03V104M.BIN /firmware=c:\fw\Psychson-master\firmware\bin\fw.bin
Si todo fue correctamente tu USB ya debería ser un USB Rubber Ducky, en caso de haber tenido cualquier problema en el proceso recomiendo visitar el Tutorial original https://www.pentestingshop.com/pentesting/make-your-own-usb-rubber-ducky-using-a-normal-usb-stick/
esta explicado todo paso a paso con detalles, fotos y comentarios sobre problemas y soluciones.