Der flyingDuckuino

Ein ferngesteuerter USB Rubber Ducky für 5-10€

Einfach aber Mächtig!

Was, wenn du einen USB Rubber Ducky benutzen möchtest, aber der Computer, den du „anreifen“ möchtest permanent „bewacht“ und bei Verlassen stets gesperrt wird? Mit dem FlyingDuckuino kannst du eine Reihe von USB -HID -Attacken ausführen, ferngesteuert, wann du willst und ggf. auch so oft du willst, obendrein das auch aus (mehr oder weniger) sicherer Entfernung vom PC.

 

Benötigte Materialien

  • 1x Arduino micro *
  • 1x 433 mhz Empfänger
  • etwas Draht oder Kabel
  • etwas antistatischen Schaum
  • Eine „Verpackung“ [optional]
  • ein Löt-Set
  • 1x 433 mhz Funkfernbedienung

* Selbstverständlich kannst du, so wie ich in diesem Projekt auch, einen Arduino-Klon bzw. einen Klon des Pro Micro von Sparkfun benutzen. Dieser ist kleiner und wesentlich günstiger (ab 2€)  zu bekommen. Allerdings solltest du, so wie ich auch, dennoch mindestens einen Original-Arduino kaufen, damit du das Arduino Team für weitere großartige Open-Source Projekte unterstützt.

Die Elektronik verbinden

Wie auf der Abbildung zu sehen ist, müssen lediglich je drei Pins miteinander verbunden werden. VCC und GND sind auf beiden Teilen beschriftet und müssen einfach mit dem des jeweils anderen zusammen gelötet oder sonst wie verbunden werden. Zusätzlich muss einer der beiden Data-Pins des Empfänger Moduls mit einem beliebigen IO-Pin des Arduino verbunden werden.

Für mein flyingDucky habe ich ein Stück antistatischen Schaum zwischen beide Teile gelegt und diese Rücken an Rücken zunächst mit einem Gummiband fixiert um die Kabel zu befestigen. Diese wiederum habe ich, wie auf den Abbildungen zu erkennen, am Empfängermodul fest verlötet und an den Arduino einfach gebunden.

— das war’s —

 

Gehäuse – Dekoration [optional]

Dieser Part ist natürlich vollkommen von deinem Gusto, deinen Bedürfnissen oder Fähigkeiten abhängig.

Ich habe mich dafür entschieden, als Hommage an den USB Rubber Ducky von Hak5*, eine Gummiente zu enthaupten und den Kopf mit etwas Isolierband als „Gehäuse“ zu verwenden. Schöner Nebeneffekt ist, dass der Entenkopf wunderbar rot leuchtet, wenn der flyingDuckuino über USB verbunden ist.

* ich bin ebenfalls stolzer Besitzer dieses Prachtstücks…

 

Das Arduino Programm

Finde den Code deiner Funkverbedienung heraus

Das ist schnell gemacht! Einfach die Bibliothek „RCSwitch“ von sui77* (Danke dafür an dieser Stelle) herunterladen und in den Ordner …/Arduino/libraries/ verschieben und in der Arduino IDE das ReceiveDemo_Simple Beispiel über Datei -> Besipiel -> rc-switch -> ReceiveDemo_Simple öffnen. Anschließend kannst du damit den übermittelten Wert deiner Funkfernbedienung auslesen.

einfach downloaden von github

Der Arduino code

#include "Keyboard.h"
#include <RCSwitch.h>

long codeA1 = 263505; 
long codeA2 = 263508; 
long codeB1 = 266577; 
long codeB2 = 266580; 
long codeC1 = 267345; 
long codeC2 = 267348; 
long codeD1 = 267537; 
long codeD2 = 267540; 



void attackA1(){ 
 Keyboard.print("Attack A1 launched.");
 delay(500); 
}
void attackA2(){ 
 Keyboard.print("Attack A2 launched.");
 delay(500); 
}
void attackB1(){ 
 Keyboard.print("Attack B1 launched.");
 delay(500); 
}
void attackB2(){ 
 Keyboard.print("Attack B2 launched.");
 delay(500); 
}
void attackC1(){ 
 Keyboard.print("Attack C1 launched.");
 delay(500); 
}
void attackC2(){ 
 Keyboard.print("Attack C2 launched.");
 delay(500); 
}
void attackD1(){ 
 Keyboard.print("Attack D1 launched.");
 delay(500); 
}
void attackD2(){ 
 Keyboard.print("Attack D2 launched.");
}

RCSwitch mySwitch = RCSwitch();


void setup() {
 Keyboard.begin();
 digitalPinToInterrupt(3);
 mySwitch.enableReceive(0); 
 Serial.begin(9600); //just in case of reconfiguring the arduino
}

void loop() {
 

 if (mySwitch.available()) {
 
 long value = mySwitch.getReceivedValue();
 Serial.println(value); //check your remotes value to change the code-variables
 
 if (value == codeA1) { 
 attackA1();
 }
 if (value == codeA2) { 
 attackA2();
 }
 if (value == codeB1) { 
 attackB1();
 }
 if (value == codeB2) { 
 attackB2();
 }
 if (value == codeC1) { 
 attackC1();
 }
 if (value == codeC2) { 
 attackC2();
 }
 if (value == codeD1) { 
 attackD1();
 }
 if (value == codeD2) { 
 attackD2();
 }
 }
 
 mySwitch.resetAvailable();
 
}

…oder einfach downloaden von github…

Mach es „quack like a duck“

Sicherlich willst du auch Ducky Script verwenden, um deine Attacken zu scripten. Gerne kannst du dafür meinen ducky2arduino* Konvertierer verwenden. Nenne dazu einfach deine DuckyScript-Datei „input.txt“ und führe das Script aus.  Aus der neu erstellten Datei „input.ino“ kannst du anschließend den Code als Attacken-Methode in deine flyingDucky.ino – Datei kopieren.

Wenn ich mal Zeit habe werde ich ein entsprechendes Script schreiben, dass direkt ein fertiges Sketch aus mehreren Eingabe-Scripts erstellt und das deutsche Tastatur-Layout unterstützt. Der Arduino ist nämlich ausschließlich auf das US-Layout programmiert. Es gibt einige Lösungen für dieses Problem. Eine davon habe ich hier verlinkt.

 

 

Achtung:

Bleibe im gesetzlichen Rahmen, mit dem was du damit tust!

433 mhz Funk-Module sind super günstig, aber daher auch unzuverlässig und sie haben eine lausige Reichweite! Dazu kommt, dass diese noch lausiger wird, wenn diese wie bei mir im „Gehäuse“ verbaut, mit isoliert wurde. Die Reichweite beschränkt sich dann auf wenige Meter. Es empfiehlt sich also eventuell einen FlyingDuckuino auf Bluetooth-Technologie zu stützen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.