Last july stood the DefCon18 at Las Vegas and I was lucky enough to be there with three friends of mine. As we registered to this event (140 bucks), we got some stickers and a DefCon18 CD and a nice shiny badge which is in fact a real circuit board with a mini-usb port, some leds and a cool LCD display. I was asking myself if there were a way to hack this little badge in order to make it display everything we want to, but I spent my time reversing the firmware source code to unlock the Ninja Party feature of this badge (I coded a short python keygen by the way). Anyway, I went to the Hardware Hacking Village (HHV) located in the sky boxes (near the Lockpicking Village) and met a lot of hardware hackers trying to hack some robots and other cool stuff. I asked a goon if he had any idea about how to flash the DefCon18 badge but he couldn't help, so I decided to figure it out by myself.
Joe Grand's PDF
I took my DefCon CD and decided to make a deep search in the dedicated DefCon18 badge folder it contains, and found a PDF about DefCon electronic badges designed by Joe Grand. This PDF contains all the necessary stuff to flash the badge, but some tricks were missing. I tried it the way it was explained, but I did not succeed. After many long minutes and a very grateful help from a dude, I eventually found the way to do this.
Before flashing this little toy, let's have a look at it:
Follow the guide
First of all, you need an USB to mini-usb adapter, in order to connect to the badge. You also need the correct drivers and install them on your computer. I found the correct drivers on the Internet but you are lucky, I put the installer right after this post. Oh, and remove the battery from the badge and be careful, many badges were broken at the HHV by some people who did not handle it with enough care.
Before connecting the badge to the USB port, press the two buttons of the badge simultaneously, and hold them while plugging the USB cable into your computer. If you did everything correctly, the badge would look like this:
Run an hyperterminal, and create a new connection on the newly appeared COMXX (the virtual COM port associated with the USB cable connected to the DefCon badge). If no COM port is visible you may have done something wrong. Configure the connection (9600 bps, 8 bits, parity:null, stop bits: 1, stream control: Xon/Xoff) and then click OK. Your connection is configured and now active. And now is the great moment, we are going to send the original firmware into the badge, and reset it. When I first try to send the firmware, I was doing it wrong because I was trying to send the firmware as a binary data, but in fact it is only text (great thanks to the dude who helped me on this), and all you have to do is only click the "Send Text File" submenu in the "Transfer" Menu and then select the firmware according to Joe Grand's PDF and click OK.
BUT (because there's always a but) the first try generally fails and you have to do it again and wait 30~ seconds to see the badge LEDs blinking. Once it's done, the badge would reset itself and launch the new firmware. I found a way to fix this up: if you save your connection and reload it from the hyperterminal, it would be ok the next time (no wait) and it would send it correctly on the first try.
I made a little screen cast as a reminder for many of you bored to read a long paragraph of extremely annoying phrases.
<object id="scPlayer" class="embeddedObject" width="635" height="675" type="application/x-shockwave-flash" data="http://content.screencast.com/users/Virtualabs/folders/Jing/media/08d8df84-57dd-4a8a-88f4-6ec7afc43fa9/jingswfplayer.swf" > <param name="movie" value="http://content.screencast.com/users/Virtualabs/folders/Jing/media/08d8df84-57dd-4a8a-88f4-6ec7afc43fa9/jingswfplayer.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#FFFFFF" /> <param name="flashVars" value="thumb=http://content.screencast.com/users/Virtualabs/folders/Jing/media/08d8df84-57dd-4a8a-88f4-6ec7afc43fa9/FirstFrame.jpg&containerwidth=635&containerheight=675&content=http://content.screencast.com/users/Virtualabs/folders/Jing/media/08d8df84-57dd-4a8a-88f4-6ec7afc43fa9/Flashing_DefCon18_Badge.swf&blurover=false" /> <param name="allowFullScreen" value="true" /> <param name="scale" value="showall" /> <param name="allowScriptAccess" value="always" /> <param name="base" value="http://content.screencast.com/users/Virtualabs/folders/Jing/media/08d8df84-57dd-4a8a-88f4-6ec7afc43fa9/" /> </object>
(And yes it is all in french, but f*ck ya :)
All the necessary materials are provided at the end of this post (badge drivers, my custom firmware and Joe Grand's original firmware).
DefCon18 Ninja Badge
I managed to get one of those marvelous electronic geeky toys from the 650 released at the DefCon (well, I'm not going to give any deeper details about the way I got it, but say I just grabbed some juicy informations from an uncommon person present at this DefCon18 and submitted them to the Wall of Sheep crew ;), and here are some extra pictures of this ninja badge !
When caming back from vegas, I was thinking about how to flash this one, but it is not very easy and there is no goon in France able to explain me how to do this (and maybe I'm not a pure hardware hacker too). Nevermind, I'll try to do it later.
<center><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&hl=fr&feat=flashalbum&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fvirtualabs%2Falbumid%2F5514264346484685761%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCIe9rYG-hs2hXg%26hl%3Dfr" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></center>
Cette année, je suis à la DefCon qui se déroule à Las Vegas au Riviera Casino & Hotel. Et je dois dire que j'étais loin de m'imaginer que ça ressemblait à CA ! Sérieusement, c'est un des meilleurs évènements auquel j'ai pu participer (en tant que visiteur), et c'est tellement grand, énorme, vaste et peuplé (il y a énormément de fiiiiiiilles, de geekettes, et autres femelles en tout genre, c'est dément) que l'on ne peut pas tout voir durant la DefCon.
Inscription et première surprise
Lors de l'inscription (au "Registration Desk"), nous nous sommes vu remettre un CD, ainsi qu'un badge électronique, et tout un ensemble de stickers accompagnés d'un livret avec toutes les confs et leur description. Quand je parle de badge électronique, je parle bien sûr d'un gadget conçu sur mesure pour la defcon, qui affiche sur un petit écran LCD le logo DEFCON, et qui contient en plus un challenge: débloquer la "Ninja Party".
Je me suis donc penché sur ce Challenge dès mon arrivée (après avoir fait un pur beer contest avec trois australiens et d'autres personnes -- dont deux suisses vus à Insomni'hack, et bon, on en a couché certains entre temps), et j'ai pu reverser le code du firmware assez rapidement en début d'après-midi (après avoir dormi), à l'aide du code source fourni sur le CD. Car oui, l'intégralité du badge (code source du firmware, schémas électroniques et de principe) est opensource ! J'ai réussi à créer un petit générateur pour débloquer l'accès à la Ninja Party, mais il s'avèra que c'est beaucoup plus compliqué pour y accéder...
Contests & villages
La DefCon18 abrite tout un ensemble de contests, et pas seulement le CTF: beer contest, badge hacking contest, hacker's jeopardy, et pleins d'autres... C'est tout simplement énorme ! De plus, deux villages sont présents, l'un dédié au hardware hacking, et l'autre au lockpicking. Personnellement, j'ai préféré celui sur le hardware hacking, y ayant passé une matinée complète à tenter de reflasher le badge avec un firmware customisé. Ca a été un peu galère, mais c'est désormais chose faite: j'ai mon badge DefCon18 avec un firmware custom (qui intègre une console de debug USB maison, quelques graphiques personnalisés, et surtout un petit jeu de lumière qui le différencie des autres badges. Un sacré souvenir en somme ! De plus, cela m'a permis de faire la connaissance de hackers spécialisés dans le hardware, et de donner un coup de patte à ceux qui n'arrivaient pas à flasher leur badge (il faut avouer que c'est plutôt hardcore, mais une fois la procédure en main ça se fait tout seul.
CTF & oCTF
Mais le CTF me direz-vous ? Et bien il est toujours en cours. J'ai pu rencontrer l'équipe des routards, arrivée hier sur place, et on a discuter tranquillement. Il s'avère tout de même que le CTF de la DefCon18 subit certains désagréments dus à la logistique (en partie), ce qui a tendance à faire raler les participants. Mais bon, aux dernières nouvelles les routards étaient à mi-chemin, à la 4eme position.
Un OpenCTF est aussi présent, et je pense qu'on va s'y mettre ce soir, avec un bon paquet de bières et un peu de motivation (cela fait 2 jours qu'on est complètement déphasé ...). Je vous ferai un petit compte rendu, certainement.
Conclusion
La DefCon est vraiment une manifestation originale et différente de ce que l'on fait en Europe. Peut-être les hackerspaces se rapprochent le plus de cette vision, mais le hacking est ici un art et un mode de vie. Je ne compte même plus le nombre de cyberpunks que j'ai pu croiser, des personnes à l'allure très anormale mais qui pourtant font des trucs de fou. On est vraiment à la ramasse là dessus, nous, européens. Mais bon, on donne aussi dans le social en discutant avec plein de gens venant d'horizons très divers, et ça n'a pas de prix (pour le reste, vous avez Eurocard/Mastercard, mais on vous ne l'a fait plus je suppose). Vous savez ce qu'il vous reste à faire ....
Ayant reçu le dernier exemplaire du magazine Capital, et ayant trouvé le temps de le lire (ce qui, il faut l'avouer, est relativement exceptionnel), je suis tombé sur un petit article tout meugnon intitulé "Alerte! Ce logiciel iranien pille nos sites internet". Titre alarmiste, qui de fait a attiré mon attention (et je dois avouer que le méchant pirate qui tient le laptop sur la première page fait son effet).
Un étrange screenshot ...
Ce qui a attiré mon attention, c'est l'écran du laptop (qui doit être un insert réalisé grâce à un logiciel de retouche -- BP was there) qui affiche l'interface de ce logiciel-dont-on-ne-connait-pas-le-nom (EDIT: Havij, trouvé grâce à notre ami Google avec une recherche de 3 mots) car Capital ne veut pas le donner: “Désolé pour les pirates en herbe, on ne vous donnera pas le nom de ce logiciel”.
Mais si on regarde attentivement cette interface, on peut y voir une zone réservée aux logs du logiciel. Si l'URL présente dans le champ "target" a bien été modifiée, celle présente dans les logs est quant à elle bien réelle et différente de celle-ci:
Et là, c'est le drame ...
.. et l'URL d'un site vulnérable
L'URL présente dans les logs correspond bien à un site existant, et qui plus est vulnérable !
D'ailleurs, le log donne toutes les informations nécessaires: serveur MySQL version 5.X, injection SQL dans un champ entier, etc ... De même, il fournit aussi la database par défaut ...
Travail mâché, des deux côtés
Autant le début de l'article commence bien, en voulant préserver le nom du logiciel employé, autant la photo affichée donne tous les éléments utiles à des pirates en herbe pour pirater le site de Paris Event Ticket, clefs en main... La faute aux iraniens ?