Como crear USB Rubber Ducky 'Casero'

Iniciado por Caparroni, 29 Octubre 2016, 16:57 PM

0 Miembros y 1 Visitante están viendo este tema.

Caparroni

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.


Stux

Buenas Caparroni

He seguido tu tutorial y el original (por eso de detallar algo más). He conseguido después de mucho buscar un Verbatim STORE N GO 32GB USB 3.0 lo he abierto y he comprobado que tiene un Phison PS2251-06 (quizás sea este el problema pero no sé, el 06 en vez del 03).
Hasta el SetBootMode me lo hace todo correcto, hasta enciende el led de continuo sin parpadeos ni nada raro.
A la hora de meter el firm
Citarc:\fw\Psychson-master\tools\DriveCom.exe /drive=G /action=SendExecutable /burner=c:\fw\fw_bn\BN03V104M.BIN
es cuando me tira error FATAL: System.InvalidOperationException: DeviceIoControl failed: 0079 y obviamente no puedo seguir.
Afortunadamente sigue operativo el usb sin embargo ahora en "Flash Drive Information Extractor" me marca esto:

Volume: I:
Controller: Phison PS2306
Possible Memory Chip(s): Not available
Flash ID: 983C98B3 7671
Chip F/W: 01.02.31
Firmware Date: 2017-01-13
ID_BLK Ver.: 1.4.15.0
MP Ver.: MPALL v3.87.0C
VID: 18A5
PID: 0243
Manufacturer: Verbatim
Product: STORE N GO
Query Vendor ID: Verbatim
Query Product ID: STORE N GO      
Query Product Revision: PMAP
Physical Disk Capacity: 30953963520 Bytes
Windows Disk Capacity:  30925668352 Bytes
Internal Tags: 2P2P-SX3J
File System: FAT32
Relative Offset: 4032 KB
USB Version: 3.00 in 2.00 port
Declared Power: 300 mA
ContMeas ID: 96A8-16-00

Es la vers. 06 la que no permite continuar?
Si es así..da igual que pruebe a poner de nuevo  2251-06?

PD: Ya probé tambien a puentear los pines.

Gracias!

RichieTozier21

Con un Arduino Micro (10€) se puede hacer lo mismo que con el Rubber Ducky y te ahorras todo esto (y más dinero).

Stux

Pero en comparación es más 'cantoso' un arduino que un usb normal creo.

log015

he hecho todas las descargar, aun no encuentro una usb con ese driver, pero mi problema es que no encuentro la mencionada carpeta raíz "fw"
Por favor, si alguien me puede ayudar les agradezco
Muy buen tutorial, gracias por la información.

Benjamusica24

#5
Hola,
¿Que pen utilizaste? Y ¿ ha de ser si o si esa version del controlador?
Gracias

Bytome_11

hola buenas, podrias decirme si este podria funcionar??

Gracias
Volume: E:
Controller: Phison 2251-50/30 (2250)
Possible Memory Chip(s): Not available
Flash ID: 98C79432 7655
Chip F/W: 03.05.20
Firmware Date: 2010-12-01
ID_BLK Ver.: 1.1.55.0
MP Ver.: MPALL v3.31.00
VID: 13FE
PID: 3623
Manufacturer:         
Product: USB DISK Pro
Query Vendor ID:         
Query Product ID: USB DISK Pro   
Query Product Revision: PMAP
Physical Disk Capacity: 16009658368 Bytes
Windows Disk Capacity:  5362401280 Bytes
Internal Tags: 2Q2P-SX9L
File System: FAT32
Relative Offset: 1024 KB
USB Version: 2.00
Declared Power: 200 mA
ContMeas ID: 1A43-04-00
Microsoft Windows 10 x64 Build 15063
------------------------------------
http://www.antspec.com/usbflashinfo/
Program Version: 8.9.0.605

zzsar98

Hola que tal amigo, esperaba que pudieras ayudarme con un problema que tengo, lo que pasa es que al ejecutar el archivo build.bat me aparece la carpeta bin pero está vacía, no sé si tu pudieras ayudarme a encontrar la solución ya que he seguido los pasos al pie de la letra.

animanegra

#8
Generé yo un tuto de como hacerlo paso a paso con el programa de arduino completo. Tengo pendiente generar un manual con un integrado que tengo para que metasploit haga solo el rubber ducky en arduino. Tengo el codigo del metasploit pero la idea era hacer tutorial. Lo dejo por aqui por si a alguien le sirve:

https://blog.underc0de.org/bad-usb-con-arduino/

Saludos.

PD: Si os sentis mejor haciendo que ponga una entrada en el foro en lugar de enlazar a underc0de con el mismo contenido me comentáis y lo copypasteo.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

Skali

#9
Yo lo hice con digispark, una placa de hardware libre muy pequeña:



Siguiendo éste tuto:

https://underc0de.org/foro/hacking/(rubber-ducky)-digiducky-desde-0-hasta-la-intrusion/

Saludos!