Necesitamos:
- Usar Windows
- Una unidad flash USB 3.0 con Phison 2303 (2251-03) de micro controlador.
Voy a utilizar la “Toshiba TransMemory-MX USB 3.0 8GB” en este tutorial.
- Poder abrir la caja de su dispositivo USB sin dañarlo.
*Notas:
Podemos encontrar una lista de dispositivos compatibles conocidos en GitHub.
https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices
A veces, tener un dispositivo confirmado, no significa que se está utilizando el PS2251-03, ya que los fabricantes pueden utilizar diferentes controladores, incluso en los mismos modelos de dispositivos.
-Por Favor, continúe bajo su propio riesgo, no hay garantía de que el dispositivo seguirá funcionando.
¡A pesar de que no debería aparecer ningún problema!
Determinar el Micro controlador de nuestro USB
Antes de empezar queremos asegurarnos de que nuestro USB utiliza el controlador compatible. Podemos usar un programa llamado “Flash Drive Information Extractor” para recopilar la información necesaria de nuestro USB:
http://www.antspec.com/files/usbflashinfo.zip
No requiere instalación, se puede usar directamente desde el archivo ZIP. Sólo tiene que abrir la herramienta y pulsa el botón “Obtener Información USB Flash Drive”, mientras que tienemos el USB insertado en el PC. Si la unidad utiliza el Controlador Phison 2303 (2251-03) el resultado debe ser parecido a esto:
Sin embargo, si el dispositivo USB tiene un micro controlador diferente, lo más probable es que no se puede reprogramar para hacer un dispositivo HID con este exploit. Recomiendo comprobar los dispositivos compatibles conocidos en github y pedir uno de esos, en Ebay.es tienes gran cantidad y directamente te llega a tu puerta.
Configurar el entorno de trabajo
El desarrollador del exploit recomienda usar cualquier versión de “Microsoft Visual Studio 2012” o superior para compilar las herramientas:https://www.visualstudio.comy “SDCC” para crear el firmware personalizado:http://sdcc.sourceforge.net/Visual Studio suele tomar varias horas para descargar y no puede ser detenido, así que asegúrate de que tiene suficiente tiempo disponible. También ocupa bastantes gigabytes en su disco principal, alrededor de 10 GB en mi SSD, lo cual es molesto si solo lo vamos a usar una par de veces.
Descarga y compilación del código fuente
Para poder modificar el código antes debemos descargarlo, el código fuente se publico en github por adamcaudill:
https://github.com/adamcaudill/Psychson
En realidad Visual Studio viene con una característica interesante, vamos a clonar todo el repositorio. Incluso podemos interactuar con Visual Studio(VS) desde el sitio github:
Después de la clonación y la apertura del repositorio. Lo más probable es ver tres soluciones.
Podemos encontrar una lista de dispositivos compatibles conocidos en GitHub.
https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices
A veces, tener un dispositivo confirmado, no significa que se está utilizando el PS2251-03, ya que los fabricantes pueden utilizar diferentes controladores, incluso en los mismos modelos de dispositivos.
-Por Favor, continúe bajo su propio riesgo, no hay garantía de que el dispositivo seguirá funcionando.
¡A pesar de que no debería aparecer ningún problema!
Determinar el Micro controlador de nuestro USB
Antes de empezar queremos asegurarnos de que nuestro USB utiliza el controlador compatible. Podemos usar un programa llamado “Flash Drive Information Extractor” para recopilar la información necesaria de nuestro USB:
http://www.antspec.com/files/usbflashinfo.zip
No requiere instalación, se puede usar directamente desde el archivo ZIP. Sólo tiene que abrir la herramienta y pulsa el botón “Obtener Información USB Flash Drive”, mientras que tienemos el USB insertado en el PC. Si la unidad utiliza el Controlador Phison 2303 (2251-03) el resultado debe ser parecido a esto:
Sin embargo, si el dispositivo USB tiene un micro controlador diferente, lo más probable es que no se puede reprogramar para hacer un dispositivo HID con este exploit. Recomiendo comprobar los dispositivos compatibles conocidos en github y pedir uno de esos, en Ebay.es tienes gran cantidad y directamente te llega a tu puerta.
Configurar el entorno de trabajo
El desarrollador del exploit recomienda usar cualquier versión de “Microsoft Visual Studio 2012” o superior para compilar las herramientas:https://www.visualstudio.comy “SDCC” para crear el firmware personalizado:http://sdcc.sourceforge.net/Visual Studio suele tomar varias horas para descargar y no puede ser detenido, así que asegúrate de que tiene suficiente tiempo disponible. También ocupa bastantes gigabytes en su disco principal, alrededor de 10 GB en mi SSD, lo cual es molesto si solo lo vamos a usar una par de veces.
Descarga y compilación del código fuente
Para poder modificar el código antes debemos descargarlo, el código fuente se publico en github por adamcaudill:
https://github.com/adamcaudill/Psychson
En realidad Visual Studio viene con una característica interesante, vamos a clonar todo el repositorio. Incluso podemos interactuar con Visual Studio(VS) desde el sitio github:
Después de la clonación y la apertura del repositorio. Lo más probable es ver tres soluciones.
- DriveCom
- EmbedPayload
- Injector
Vamos a necesitar “DRIVECOM” y “EmbedPayload” solamente, si se abre se puede compilar conCtrl + Shift + B
o
Menu bar – Build – Build SolutionSi no se puede clonar el repositorio a través de Visual Studio, descargue el archivo .zip desde github y abrir los archivos .sln en cada carpeta de las soluciones.DRIVECOM y EmbedPayload debería estar ya en el directorio … Psychson toolsE: Documents Bad_USB Psychson tools
Obtener una “Burner Image”
Una “Burner Image” es necesaria para hacer dumping y flashear el firmware del usb. Estos se denominan normalmente utilizando la convención “BNxxVyyyz.BIN”.Las “Burner Images”para controladores Phison se pueden encontrar aquí:http://www.usbdev.ru/files/phison/El sitio sólo está disponible en ruso, podemos encuentrar el enlace de descarga si escaneamos el sitio buscadno “BN03” (BN implica “Burner Images” y 03 corresponde a PS2251-03)Extraigan los archivos:E: Documents BadUSB Burner_Image
Todas las “Burner Image” debe hacer el trabajo bien, pero se puede usar la versión más reciente que se indica por la parte “VYYY” del nombre.
Descargar Duck Encoder
El “Duck Encoder” es una herramienta multiplataforma basada en Java que convierte las secuencias de comandos en las cargas útiles de HID. Se basa en el exploit que nombrabamos antes: “BadUSD” también llamado “Rubber Ducky” creado por Hak5:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Downloads
No se olvide de instalar Java:
https://www.java.com
Lo guardé en
E: Documents Bad_USB DuckEncoder
Crear un Firmware personalizado
En este punto todos los preparativos ya están echos y pueden seguir utilizando las herramientas previamente descargadas. En este paso simplemente tenemos que ir a nuestro directorio … Psychson firmware y ejecutar build.bat. Si todo va bien, verá una nueva carpeta con muchos archivos diferentes en el interior.
fw.bin es el archivo que usaremos a continuación.
Escribiendo un Script
Te puedes preguntar en qué lenguaje vamos a escribir nuestro script. Como el DuckEncoder se basa en el “Rubber Ducky” vamos a utilizar “Duckyscript” como idioma. La sintaxis es bastante fácil. se Pueden encontrar aquí instrucciones más detalladas:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript
Vamos a seguir y crearemos un archivo .txt en nuestro directorio preferido.
E: Documents Bad_USB DuckEncoder script.txt
Pensé en mostrarles algo más interesante que un script “Hello World” así que hice éste:
Como usted puede suponer, el BAD USB “pulsa” la tecla Windows + R y apagar de inmediato el ordenador. Además se puede ver claramente que escribí “/” en lugar de “-“. Eso es porque nuestro “Teclado” (BAD USB) tiene un diseño de Estados Unidos y las ventanas se establece en Déu en mi país. Tenga en cuenta que tenemos que cambiar el diseño de las ventanas de los Estados Unidos y escribir el guión de la manera que haríamos normalmente, o la forma en su PC víctimas sería escribirlo. No sea confuso de la entrada.
Usted puede incluso utilizar scripts personalizados y hacer algo de ingeniería inversa:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads]https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads
Convirtiéndolo en un HID Payload
Es el momento de empezar a utilizar la terminal de windows – cmd.
java -jar “PATH to duckencode.jar” -i “PATH to script.txt”-o “payload.bin Path”
Ejemplo:
java -jar E:DocumentsBadUSBDuckEncoderduckencode.jar -i E:DocumentsBad_USBDuckEncoderscript.txt -o E:DocumentsBad_USBDuckEncoderinject.binNo vamos a conseguir ninguna salida, pero inject.bin se debe crear en “E: Documents Bad_USB DuckEncoder ” en mi caso
Insertar el Payload el firmware
Ahora tenemos que utilizar las herramientas que construimos con Visual Studio. Obviamente EmbedPayload es para Payload. Simplemente tenemos que ejecutarlo en cmd:“Path to EmbedPayload.exe” “PATH to payload” “PATH to the firmware we built”para mi es:
E:DocumentsBadUSBPsychsontoolsEmbedPayload.exe E:DocumentsBad_USBDuckEncoderinject.bin E:DocumentsBad_USBPsychsonfirmwarebinfw.binNota: ese fw.bin incluye el payload ahora. Tu puedes sobreescribir el payload ejecutando build.bat otra vez.
Volcado del firmware actual de la unidad flash USB
Yo les aconsejo hacer una copia del firmware actual en su unidad flash USB por si desea restaurar. Para cualquier acción que queremos tener en nuestro USB tenemos que usar DRIVECOM que está en nuestra carpeta “herramientas”.“PATH to DriveCom.exe” /drive=”Drive Letter of our USB” /action=DumpFirmware /burner=”PATH to our burner image” /firmware=”PATH of the output.bin”En mi caso:E:DocumentsBad_USBPsychson-mastertoolsDriveCom.exe /drive=F /action=DumpFirmware /burner=E:DocumentsBad_USBFirmwareBN03V117M.BIN /firmware=E:DocumentsBad_USBoriginalfw.bin
Flashear el Firmware
Finalmente podemos entregar el muy maliciosa apagar payload integrado en el firmware a nuestra unidad flash USB:“PATH to DriveCom.exe” /drive=”Drive Letter” /action=SendFirmware /burner=”PATH to our burner image” /firmware=”PATH to the firmware”En mi caso:E:DocumentsBadUSBPsychsontoolsDriveCom.exe /drive=F /action=SendFirmware /burner=E:DocumentsBad_USBFirmwareBN03V117M.BIN /firmware=E:DocumentsBad_USBPsychsonfirmwarebinfw.binUna salida exitosa debe tener este aspecto:
Observe que DRIVECOM está cambiando el modo de nuestra USB a modo de arranque de forma automática al flashear el firmware. Ahora que nuestra unidad flash USB se ha convertido en un teclado que no podemos cambiar los modos más con nuestras herramientas, ni el acceso a la memoria, pero eso es un problema menor. En la siguiente sección me centraré cómo resolver este problema.
Ajuste de nuestro dispositivo en “modo de arranque” Manualmente
o
Menu bar – Build – Build SolutionSi no se puede clonar el repositorio a través de Visual Studio, descargue el archivo .zip desde github y abrir los archivos .sln en cada carpeta de las soluciones.DRIVECOM y EmbedPayload debería estar ya en el directorio … Psychson toolsE: Documents Bad_USB Psychson tools
Obtener una “Burner Image”
Una “Burner Image” es necesaria para hacer dumping y flashear el firmware del usb. Estos se denominan normalmente utilizando la convención “BNxxVyyyz.BIN”.Las “Burner Images”para controladores Phison se pueden encontrar aquí:http://www.usbdev.ru/files/phison/El sitio sólo está disponible en ruso, podemos encuentrar el enlace de descarga si escaneamos el sitio buscadno “BN03” (BN implica “Burner Images” y 03 corresponde a PS2251-03)Extraigan los archivos:E: Documents BadUSB Burner_Image
Todas las “Burner Image” debe hacer el trabajo bien, pero se puede usar la versión más reciente que se indica por la parte “VYYY” del nombre.
Descargar Duck Encoder
El “Duck Encoder” es una herramienta multiplataforma basada en Java que convierte las secuencias de comandos en las cargas útiles de HID. Se basa en el exploit que nombrabamos antes: “BadUSD” también llamado “Rubber Ducky” creado por Hak5:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Downloads
No se olvide de instalar Java:
https://www.java.com
Lo guardé en
E: Documents Bad_USB DuckEncoder
Crear un Firmware personalizado
En este punto todos los preparativos ya están echos y pueden seguir utilizando las herramientas previamente descargadas. En este paso simplemente tenemos que ir a nuestro directorio … Psychson firmware y ejecutar build.bat. Si todo va bien, verá una nueva carpeta con muchos archivos diferentes en el interior.
fw.bin es el archivo que usaremos a continuación.
Escribiendo un Script
Te puedes preguntar en qué lenguaje vamos a escribir nuestro script. Como el DuckEncoder se basa en el “Rubber Ducky” vamos a utilizar “Duckyscript” como idioma. La sintaxis es bastante fácil. se Pueden encontrar aquí instrucciones más detalladas:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript
Vamos a seguir y crearemos un archivo .txt en nuestro directorio preferido.
E: Documents Bad_USB DuckEncoder script.txt
Pensé en mostrarles algo más interesante que un script “Hello World” así que hice éste:
Como usted puede suponer, el BAD USB “pulsa” la tecla Windows + R y apagar de inmediato el ordenador. Además se puede ver claramente que escribí “/” en lugar de “-“. Eso es porque nuestro “Teclado” (BAD USB) tiene un diseño de Estados Unidos y las ventanas se establece en Déu en mi país. Tenga en cuenta que tenemos que cambiar el diseño de las ventanas de los Estados Unidos y escribir el guión de la manera que haríamos normalmente, o la forma en su PC víctimas sería escribirlo. No sea confuso de la entrada.
Usted puede incluso utilizar scripts personalizados y hacer algo de ingeniería inversa:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads]https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads
Convirtiéndolo en un HID Payload
Es el momento de empezar a utilizar la terminal de windows – cmd.
java -jar “PATH to duckencode.jar” -i “PATH to script.txt”-o “payload.bin Path”
Ejemplo:
java -jar E:DocumentsBadUSBDuckEncoderduckencode.jar -i E:DocumentsBad_USBDuckEncoderscript.txt -o E:DocumentsBad_USBDuckEncoderinject.binNo vamos a conseguir ninguna salida, pero inject.bin se debe crear en “E: Documents Bad_USB DuckEncoder ” en mi caso
Insertar el Payload el firmware
Ahora tenemos que utilizar las herramientas que construimos con Visual Studio. Obviamente EmbedPayload es para Payload. Simplemente tenemos que ejecutarlo en cmd:“Path to EmbedPayload.exe” “PATH to payload” “PATH to the firmware we built”para mi es:
E:DocumentsBadUSBPsychsontoolsEmbedPayload.exe E:DocumentsBad_USBDuckEncoderinject.bin E:DocumentsBad_USBPsychsonfirmwarebinfw.binNota: ese fw.bin incluye el payload ahora. Tu puedes sobreescribir el payload ejecutando build.bat otra vez.
Volcado del firmware actual de la unidad flash USB
Yo les aconsejo hacer una copia del firmware actual en su unidad flash USB por si desea restaurar. Para cualquier acción que queremos tener en nuestro USB tenemos que usar DRIVECOM que está en nuestra carpeta “herramientas”.“PATH to DriveCom.exe” /drive=”Drive Letter of our USB” /action=DumpFirmware /burner=”PATH to our burner image” /firmware=”PATH of the output.bin”En mi caso:E:DocumentsBad_USBPsychson-mastertoolsDriveCom.exe /drive=F /action=DumpFirmware /burner=E:DocumentsBad_USBFirmwareBN03V117M.BIN /firmware=E:DocumentsBad_USBoriginalfw.bin
Flashear el Firmware
Finalmente podemos entregar el muy maliciosa apagar payload integrado en el firmware a nuestra unidad flash USB:“PATH to DriveCom.exe” /drive=”Drive Letter” /action=SendFirmware /burner=”PATH to our burner image” /firmware=”PATH to the firmware”En mi caso:E:DocumentsBadUSBPsychsontoolsDriveCom.exe /drive=F /action=SendFirmware /burner=E:DocumentsBad_USBFirmwareBN03V117M.BIN /firmware=E:DocumentsBad_USBPsychsonfirmwarebinfw.binUna salida exitosa debe tener este aspecto:
Observe que DRIVECOM está cambiando el modo de nuestra USB a modo de arranque de forma automática al flashear el firmware. Ahora que nuestra unidad flash USB se ha convertido en un teclado que no podemos cambiar los modos más con nuestras herramientas, ni el acceso a la memoria, pero eso es un problema menor. En la siguiente sección me centraré cómo resolver este problema.
Ajuste de nuestro dispositivo en “modo de arranque” Manualmente
Citar
@linuxFR Take a look at this picture:https://cloud.githubusercontent.com/assets/9080593/4591190/2a5e93da-5069-11e4-9daa-9e22539ec801.JPGYou can boot manually, if you unplug the device, put a needle (or some other very small/fine metalthing) between pin 2 and 3 at the side above the TOSHIBA label. According to the picture it would be left side of the chip and the second and third pin counting upside down. With the needle at the pins you have to replug the device and wait for ~1 second, remove the needle and the stick is in boot mode (lamp keeps glowing). Now you can flash, but to me it only worked for custom firmware and I couldn’t get back to original firmware.Hope I could help.
Si usted quiere tomar medidas adicionales para su BAD USB te darás cuenta de que ni DRIVECOM ni en Windows ni ningún otro sistema operativo pueden acceder a ella, ya que es un teclado después de todo. Tenemos que abrir la tapa de nuestra unidad USB y conectar dos pines del microcontrolador mientras enchufa la unidad en nuestro PC.Desde el círculo está en la esquina superior izquierda de mi controlador – desde esta perspectiva – Tengo que conectar los dos pasadores de la parte inferior izquierda:(Puede que tenga que abrir la imagen en una nueva pestaña y hacer zoom )
Yo suelo usar el borde de un conector USB para conectar estos dos pines. Además de un cable de extensión USB puede ser muy útil en este escenario. Parece que es difícil, pero usted se acostumbrará a esto. Utilice lo que usted se sienta más cómodo, sin dañar su unidad flash USB. Si lo haces correctamente la unidad se mostrará en windows de nuevo:
Y podemos modificar nuestra unidad o el firmware original de nuevo.
Si no, su PC se apagará, esfuércese más la próxima vez.Notas:
- El BAD USB puede no funcionar en todos los PC con Windows, incluyendo la mía, ya que puede no tener los drivers necesarios
- Tenga en cuenta que usted no será capaz de acceder a la memoria, mientras que su unidad USB está fingiendo ser un dispositivo HID
Reflexiones finales
El Bad USB es una herramienta muy poderosa si usted tiene acceso a el ordenador de la víctima, incluso pensaron que windows podria protegerle, les deja la carga automática de los controladores USB. Además se evita la detección AntiVirus ya que es un teclado en lugar de un virus.Si usted está pensando en hacer de un simple pretexto para insertar nuestra usb en una PC de la empresa de su elección, por favor, tenga en cuenta que tener una unidad flash usb real para el caso lo más probable es que va a ser atrapado, por lo que puede escapar fácilmente .Además me gustaría mencionar que realmente aprecio retroalimentación constructiva de ustedes. Así que no dude en contactar si encuentra algún error o quieres que mejorar algo!
Fuente: luisiblogdeinformatica.com
El Bad USB es una herramienta muy poderosa si usted tiene acceso a el ordenador de la víctima, incluso pensaron que windows podria protegerle, les deja la carga automática de los controladores USB. Además se evita la detección AntiVirus ya que es un teclado en lugar de un virus.Si usted está pensando en hacer de un simple pretexto para insertar nuestra usb en una PC de la empresa de su elección, por favor, tenga en cuenta que tener una unidad flash usb real para el caso lo más probable es que va a ser atrapado, por lo que puede escapar fácilmente .Además me gustaría mencionar que realmente aprecio retroalimentación constructiva de ustedes. Así que no dude en contactar si encuentra algún error o quieres que mejorar algo!
Fuente: luisiblogdeinformatica.com
No hay comentarios:
Publicar un comentario