Category

Malduino Elite – Tout d’abord d’impressions

Un moment de retour, j’ai composé un article sur Malduino, un périphérique Badusb à base d’Arduino. J’ai découvert le travail fascinant, alors je me suis inscrit à une version d’élite, le facteur sympathique le déposa dans ma boîte aux lettres vendredi dernier, ce qui signifie que je dois jouer avec le week-end. Pour ceux qui ont manqué l’article, Malduino est un gadget USB qui est capable d’imiter un clavier ainsi que d’injecter des coups de frappe, entre autres choses. Lorsque dans un boîtier approprié, il ressemblera à un lecteur flash USB. C’est comme ces choses que vous voyez dans les films où un gars se branche dans un gadget ainsi que l’automobile pirate de l’ordinateur. Il est livré en deux versions, Lite ainsi que l’élite, à la fois sur la base de l’ATMEGA32U4.

La version Lite est vraiment petite, outre le connecteur USB, il ne contient qu’un commutateur, ce qui permet à l’individu de choisir entre la course ainsi que le mode de programmation, ainsi qu’une LED, ce qui indique lorsque le script est terminé.

Croquis d’origine Malduino Elite ainsi que le prototype Lite
La version Elite est plus grande, comprend un visiteur de carte micro-SD ainsi que quatre commutateurs DIP, qui permettent à l’individu de sélectionner le script à exécuter à partir de la carte. Il a également la DEL, ce qui indique quand un script est terminé pour fonctionner. Cela permet à l’individu de verser le microprogramme uniquement lorsque vous pouvez également programmer les scripts d’injection de Keystroke conservés dans la carte micro-SD, contrairement à la version Lite qui doit être clignotée à chaque fois qu’un individu souhaite exécuter un script différent.

Ce sont les deux malduinos aussi bien que, puisqu’ils sont programmés directement à partir de l’IDE Arduino, chaque fonction que je viens de mentionner peut être ré-programmée, réutilisée ou déposée tous ensemble. Vous pouvez en acheter un ainsi que simplement choisir de l’utiliser comme une arduino «normale», bien qu’il n’y ait pas beaucoup de broches à jouer. Cette flexibilité était l’une des toutes premières choses que j’aimais à ce sujet et m’a vraiment conduit à participer à la campagne de financement de la foule. vérifié pour la révision complète.

Le matériel

Malduino Elite vs USB Flash lecteur
Donc, la planche d’élite s’est montrée comme une routine aussi bien que je me suis découverte longtemps pour la regarder. En dépit d’être plus long que la version Lite, il est encore assez petit, mesurant environ 4,6 cm x 1,1 cm (environ 1,8 en x 0,43 po), que vous pouvez vous adapter rapidement à un ancien cas USB, bien que vous fassiez couper certains trous pour les commutateurs DIP ainsi que la carte micro-SD. Dans la campagne de financement de la foule, la croquis d’origine était pour une version de commutation de 3 plans, mais l’élite finale en a quatre, que j’ai découverte bien. Je l’ai branché à un ancien ordinateur, après avoir pris une contrepartie sur laquelle le micrologiciel qu’il pourrait être expédié ainsi que ce qu’il pourrait faire à mon ordinateur portable, ainsi que de suffisamment suffisamment une LED rouge apparu. aussi bien que c’était. rien d’autre.

Après avoir joué avec les commutateurs et exercer une certaine région RTFM, j’ai réalisé que le micrologiciel qu’il navère est probablement une sorte de Q.C. Testez pour les trempettes, ce qui rend la sortie de Malduino les nombres 1 à 4 (simulant réellement une touche 1 à 4), en fonction des commutateurs. Jusqu’à présent, ça marche aussi bien que j’ai vu des planches PCB que celui-ci. Le tableau a des trous pour six goupilles, que je n’ai pas tracé au micro-contrôleur ainsi que je ne comprends pas ce qu’ils sont pour.

La mise en place

La configuration des besoins de Malduino que vous avez l’IDE Arduino est installé aussi bien que la date. Vous aurez besoin d’ouvrir le gestionnaire de la Commission et de configurer les conseils SparkFun puisque l’élite est programmé en tant que «SparkFun Pro Micro» en cours d’exécution à 3,3 V et à 8 MHz. Ensuite, vous avez besoin d’aller au site Web du convertisseur de script de Malduino qui dessert plusieurs objectifs:

Il permet de convertir des scripts entre les versions Lite ainsi que les versions d’élite

Il vous permet de sélectionner votre langage de conception du clavier

IT Auto produit le travail d’Arduino pour vous importer dans l’IDE

Pour la version Elite, il suffit de produire un script simple ou même vide pour télécharger le projet, car lorsqu’il est en fonctionnement «normal», vous allez simplement clignoter le Malduino lorsque vous utilisez ensuite la carte micro-SD pour stocker de nouveaux scripts.

Une note sur clignotant, si vous utilisez une distribution basée sur Debian, vous pouvez rencontrer des problèmes tels que je l’ai fait et ne pourrez pas clignoter le périphérique. Comme l’individu sur ce poste le plus utile, mon responsable moderne tentait de parler avec le Malduino après chaque réinitialisation ainsi que la confusion avrude à mort. La solution consiste à ajouter des règles UDEV à “/etc/udi/rules.d/77-mm-usb-device-blacklist-local.rules”, Kudos à [SOCRIM]:

1
2
3
4
5
6
7
8
Action! = & Quot; Ajouter | Modifier et quoto = = & quot; mm_usb_device_blacklist_local_end & quot;
Sous-système! = & Quot; USB & quot ;, goto = & quot; mm_usb_device_blacklist_local_end & quot;
Env {devtype}! = & Quot; usb_device & quot ;, goto = & quot; mm_usb_device_blacklist_local_end & quot;

Attrs {idvendor} == & quot; 1b4f & quot; ATTRAS {idproduct} == & quot; 9204 & quot ;, env {id_mm_device_ignore} = & quot; 1 ”
Attrs {idvendor}==”1b4f” ATTRS{idProduct}==”9203″, ENV{ID_MM_DEVICE_IGNORE}=”1″

LABEL=”mm_usb_device_blacklist_local_end”

Les logiciels

Since I’m running Linux, a quick shortcut to run a command is the ALT-F2 combination. So I script that into a data as well as save it to 1111.txt. The Elite searches the Micro-SD card for a data corresponding to the present dip switch state. lets state the dip switch 2 as well as 4 are ON. In this case, the software application tries to discover the data named 0101.txt as well as parse its contents (as in dip switch order 1,2,3,4 as well as not the binary representation of the number 2 as well as 4) . When it finishes, the red LED starts flashing quickly. My simple script was:

1
2
3
4
5
6
7
8
9
dix
DELAY 2000
ALT F2
DELAY 1000
STRING xterm
DELAY 1000
ENTRER
DELAY 1000
STRING id
DELAY 1000
ENTRER

But it was not working. almost all commands worked however the ALT-F2 combo was not working properly. Close, however no cigar. No ALT-F2, no run command window. I’ve already lazy-browsed the source code a bit since I truly didn’t have a great deal of time on my hands however I needed to figure this out. The offending code was this:

1
2
3
4
5
6
else if(equals(s,e,”F1″,3)) Keyboard.press(KEY_F1);

else if(equals(s,e,”F2″,3)) Keyboard.press(KEY_F2);

else if(equals(s,e,”F10″,3)) Keyboard.press(KEY_F10);
else if(equals(s,e,”F11″,3)) Keyboard.press(KEY_F11);

A custom equals function was getting size 3 for the strings of the function keys, like “F2”. It was okay for “F10”, “F11” as well as “F12”, however failed for the rest of the keys. altering 3 to 2 did the trick, however my Portuguese keyboard design started to interfere with other test scripts. So I altered the code to include PT as well as UK layouts, altering them in a #define at compile time.

It would be awesome if it was possible to gain access to the SD card from the computer as a routine USB volume. I don’t understand precisely exactly how feasible that is, however it does not include the present firmware. I still wished to be able to output the material of an arbitrary data on the SD card to the screen, so I added one more script function called ECHOFILEHEX that outputs the material of a data in the SD card as getaway characters. For example, if the data a.txt contains “AAA”, the script command ECHOFILEHEX a.txt would output “\x41\x41\x41”. This can be useful to echo binary data into printf or echo -e, in Linux holds at least.

Meanwhile, I had some difficulty reading the original code. You know, all of us have different programming styles. Don’t get me wrong, I’ve been understood to compose some messed-up spaghetti code. I sometimes search old jobs looking for some libs or classes I coded as well as question ‘who the heck composed this steaming stack of code?’ Me, it was me. Anyway, I started to modification a bit right here as well as there as well as ended up altering quite much the entire code. That’s the beauty as well as the curse of open-source. If you’re curious you can inspect it out here.

Conclusion

All in all, as well as in spite of some bumps, I’m rather delighted with Malduino. It is what I expected: an open platform for BadUSB attacks that’s in its infancy. It’s incredible that we can all tinker with it, customize it, make it much better or just make it fit our needs. I hope a genuine neighborhood can begin so we can see its full prospective emerge. My short listing includes simulating other USB devices, much better SD card management, as well as broadening the gadget via the unused pins. What would you add?

It’s a long method to go as well as a great deal can go wrong, so great luck with the job [Seytonic]!