From cda3c00fb43539e670a1de5c50e032bb36840a9f Mon Sep 17 00:00:00 2001 From: Adil Sadqi <42699429+AdilSadqi@users.noreply.github.com> Date: Sun, 23 Apr 2023 00:22:36 +0000 Subject: [PATCH] Add files via upload --- ...vert DuckyScript to Digispark Scripts.html | 44 +++++++ .../677843.png | Bin 0 -> 10195 bytes .../digiQuack.js.download | 120 ++++++++++++++++++ .../style.css | 61 +++++++++ 4 files changed, 225 insertions(+) create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts.html create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/677843.png create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/digiQuack.js.download create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css diff --git a/digiQuack_ Convert DuckyScript to Digispark Scripts.html b/digiQuack_ Convert DuckyScript to Digispark Scripts.html new file mode 100644 index 0000000..6ead33a --- /dev/null +++ b/digiQuack_ Convert DuckyScript to Digispark Scripts.html @@ -0,0 +1,44 @@ + + +
+ +Convert DuckyScript scripts (of the hak5 USB Rubber Ducky) to Digispark scripts that you can use with the 1$ bad USB.
+ +Why DuckyScript and why Digispark? It's easy! DuckyScript is simple and easy to learn and has become a standard in the BadUSB and pentesting community. + Digispark is one of the cheapest and most easily accessible bad USBs available. Combine the two using digiQuack and you have a vast arsenal of ready to run + scripts on a cheap and fun to use bad USB!
+ +Want to convert Duckyscript to Python programs? Check out ducky2python!
+&BMET!4R; z-n5#VIRE?_akHla<}BtTyyrbizNxuwqK%2Kb}s(ftMj$KKQ5<78A~SnpC0pHPIu zk^f8_^y>+fCtFkvKg(3-6EN==rcWZ*mhle|B5FRA<-?Pb!Cy}seTiKU7b_!(peD@C zrj6Ki?=mAT{N9bTUPCh-7ni7B!aH*e*ZtF%wr<%*OzAlDO0ZXBxmL)p^HRA+Nhb#i zQz#|d*4B_rf0agY9-T7x4?hmOWB-B?q?}+eEVl~{(Y=L>tfE97B01-G&BV5)%v14S zdyvy*_-XuljgcZsAVj9`LOV5t6NDvkBLBgIFF-z`vMlGSVU_iKXBiN_93nRl700Rc z>bF(&t0QxVOWO<+2yf$yZSEYyFpJ43 zx(x%y6jUVK?Wamhr7hnY?JtD!V(b&jlxU=^K_GO34P(wn9%n=L9(V2ayY!)!wO(%n zL)p?XniaZp+#g)}%eQ&!hDl$VQ%3xRHh#bIfHC>qAFr=h+Q$0_VZGPVKpvwNzr>%5b-;x&pF_{(B2ulJ^rj&`=k8LuwsvCi_p z9BxHiS8xI+_V917SJAqS9|+y8!? e(W}>)Bkuk?Px{WIr%^;*92KU#dh4% z@cmdKx9~UC3|=#wrNmubg;^;P CdCd6EfzIbYA#Rml+DXEK5@X?fLT1 z3!Zwd`eCV>hvmNOkp+@Ja+_2w6h=^Yf r zowx~~=naFFEdOQ$?&Lsz{>ZY8D!OniC{imt1RBf!DnOw|3D9_TSXMu@@Iga27Pu zsS#C#ohfaw$9W~)u|;W{RgH %dAGF+hrr8>7!f!;=JUO+!wNziEhGAZib zX%am`2j@7qk^PGKDme;Uegn?WX>f =N)t2twB}DOHnLDT7ym^DXfa6p z)4?g1#56P=esl!boZJ{k5esHqu}rREbTQtb?da;_QiVV)bY6u7fy=p7Q`_OAfphuN zXXxOPIubw^$o*)Pg$hvEdoCS(GXGlYvR_Y4(OjNiIyMZ@6sv3{f*h;Vw4zoHnq8i> z=ht=hP k<9g z7o_VP0#}r|Z)_x1wpmdUS%34qpzr3@_c95n>v{5_DZ-(B`^pb@L0C~f$}z=-X
(qBKp{BTc1TBZM-7)F?D=WJ7sLaY;b zM!T%qRNGv9s5POUU d>hn@Qi2BDIoj%B#KUt#&J+Upxs-3msILr|1D#9pQHo zbSdco)sNc*leiP|Jo__SgXV|syQRHiU&Jl!*vdz>%oD LN zGevc1d+|CXX@b~0-DE*$Ddy3re5CarJ1g0_tNmVeA-QvM3f{&ABh-&jRj^Z=;q7`k zk+CZ}+?iLWEMg-8-;J~CDR_RLsgopjyX$kv>I!^Z(sx_9{Kcxy+@)vl1wVaC{s4Go zwE3#5P27iZ4Cyj9oj9*dsRjGs_QCsb*`JB9Q@g+xJvW`mPqgJm-CE$JgyfKvYhXI| zGJ#ZG-?J}dRE-z;N@vhPHLTFp>rP!PXa8MVUD4^~6P7&>A=}`vdX-J(S}wd3b@_w= zsne~*3imrrPyr~`Q#l`FFWTKVPPueYbz2MEL|n+ZXebB~w>=44>7Y9r-$loKDNUPe z7>gEAPi?tWj^1B<{Kp$((E0LKIl2d!yEu9nzx MMLayucX(we0kr}NW4_qeYh|iNq;pDUOuX5?D?w|ml zmj?rAM^q=7Z6ixh;ZlkbEdQR%j aZ1D3(7?lFF;-F^|p#uhm_UpzEb2 zVkT;N%8~S2M|9q6ux$rN`<~#r%ZjSfB{Os|QZ}RE!eWq$QYiOkJ%fk;oGRb#W1J;Z zg{C826W*#Ga;K^Ytt6oeQ$NDad!D+N%nJR**E>YQuL+}9o0>=j0R~WFXEt)!PP%48 zlu_`(mT;T^m^N*SIRmB9lOb|KIDK{ W3+V2;Kg@jl64+115yFOcgIoxNL ztc4wJG8{~q0Mdw_qUv4DA~s>H0mk_6zU1mq!n>EPXFfj)!|f02>9*VeG@lLQcdP8R z3gATJdqm`gb!Ao-bia|^U-q{JS>*S**b6I*?4YSfE{5Y>Hw2{Rf#svQ7EDwgts9ss zB^t`lFXe%*aq7$8>e7&92etaF8E5bMN=!yI^<#Z;S z)*V!Vg7ygEU}i&9(9dw#!3R~`97v+`dGe!-kd;zd>XGgHlcQP`q 1T+$<_{Jpip}v}KoGb6;wLUDkC=6y& zy761q@!G|L7?826qkEtV@BUXf-Ft(V=gP+Hnou^De83KumjEt(J=pvZE(gH?B_Gky zIr`bg^SeLM19WG0G#xx%g58~ud0Ct6w8ACsQ*qMxQh|RBsKS5lq$^aJON(dyl#S?h zt6ZdZ$YA`P#+$b{{3iTZItq;7_xp7MhKHQyiigRhV;!AHCroP_{Tc1|f!~Q5Wzjy- zcjVTIrZKiyp`R++`;lt$O+~#3J(bQQLqID=&lv6fa48gQcWDzu83r76P}DVV00Z@D zO^>dm0u||?`(;C)Ev%@Uqjl%*EG{1t?3HO>{S@rX=2Sc&?D7|C~Y5cs&v=< zWcSN$Dup49uL#>@j)_`0@Mkz$&(5^%BUWxr1IP{tWeboOo&dsM-DhuJJYeDjRK+M? z0a4@!uT3f`uhD!?z!~-c9r7HzH7u6FfKecWx1VQ4fREXe9aU9Ol45K%=GU!Zwl?2B z&KD2lnB*EritbKg*5&Z#MIlYI*3QGb+bxcGHSP%rb&`zZ<|yCi_G;jIq30Kcw8oBn z4DJbIiXl%qmuuybh1co&Ghz4uLwkxVJayck__yG!x{-wzjVX}_LS&iC4ViaC>NQ(F ziHIFKx*+}ru8Fw&=SakUVAN%yC(4=)+w?yLv;|a6T;E;FR7}KGlAKjE qtN~5lV zcO6OGq4rAi%5neg3=S&-Ni?P?eT8qk^P~KONaoB-6*{oJ|1QP^Gw32&Yt5NBa`-!l z#debEtVX}=hC}G}r?3Oz62+VR ":"55", "?":"56", "@":"31", "[":"47", "]":"48", "^":"35", + "_":"45", "`":"53", "{":"47", "|":"49", "}":"48", "~":"53"}; + + // Process each line from the ducky script: + for (line = 0; line < duckyScript.length; line++){ + + // Check if the statement is a comment, delay, string, repeat or key combination + if(duckyScript[line].slice(0,3) == "REM"){ + previousStatement = duckyScript[line].replace("REM","\t//"); + }else if (duckyScript[line].slice(0,5) == "DELAY"){ + previousStatement = "\tDigiKeyboard.delay(" + parseInt(duckyScript[line].slice(6)) + ");"; + }else if (duckyScript[line].slice(0,6) == "STRING") { + previousStatement = "\tDigiKeyboard.print(\"" + duckyScript[line].slice(7).replaceAll("\\", "\\\\").replaceAll("\"", "\\\"") + "\");"; + }else if (duckyScript[line].slice(0,6) == "REPEAT"){ + var repetitions = parseInt(duckyScript[line].slice(7)) - 1; + for (i = 0; i < repetitions; i++){ + digisparkScript += previousStatement; + digisparkScript += "\n"; + + // Write Default Delay between the commands if it exists: + if (defaultDelay != 0){ + digisparkScript += "\tDigiKeyboard.delay(" + defaultDelay + ");\n"; + } + } + }else{ + // Write beginning of command: + previousStatement = "\tDigiKeyboard.sendKeyStroke("; + // Split statement into keys + keys = duckyScript[line].split(" "); + // Go through the keys matching them through the dictionary to Digispark keys + for (j = 0; j < keys.length; j++){ + if (keys[j] in ducky2digi){ + previousStatement += ducky2digi[keys[j]] + ","; + }else{ + // If it is not in the dictionary + previousStatement += "UNDEFINED_KEY" + ","; + } + } + // Remove last comma and add a parenthesis + previousStatement = previousStatement.slice(0, previousStatement.length - 1) + ");"; + } + + // Write command to output file and add a new line \n : + digisparkScript += previousStatement; + digisparkScript += "\n"; + + // Write Default Delay if it exists: + if (defaultDelay != 0){ + digisparkScript += "\tDigiKeyboard.delay(" + defaultDelay + ");\n"; + } + } + digisparkScript += "}"; + // Write Output + document.getElementById('outputBox').value = digisparkScript; +} \ No newline at end of file diff --git a/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css b/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css new file mode 100644 index 0000000..ee44487 --- /dev/null +++ b/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css @@ -0,0 +1,61 @@ +body{ + font-family: Arial, Helvetica, sans-serif; + background-color: #f4f4f4; + color: #555; + font-size: 16px; + margin: 0; + line-height: 1.6em; + text-align: center; +} + +a{ + text-decoration: none; + color:inherit; +} + +.navbar{ + background-color: black; + margin: none; + padding: 10px; + width: 100%; + height: auto; + line-height: 0.5em; + font-size: 18px; +} + +.navbar h1{ + color: white; + font-family: Arial, Helvetica, sans-serif; +} +.about{ + text-align: center; +} + +.container{ + width: 75%; + margin: auto; + overflow: hidden; +} + +textarea{ + width: 100%; + font-size: 14px; + height: auto; +} + +button{ + font-size: 18px; + padding: 5px; + border-radius: 5px; + margin: 10px; + border-width: 0px; + background-color: #c9ccd1; +} + +img{ + height:auto; + width: auto; + max-width: 80px; + max-height: 80px; + margin: 10px; +} \ No newline at end of file