Bir süre geri, Malduino, Arduino tabanlı, açık kaynaklı bir Badusb cihazı hakkında bir makale oluşturdum. İşin büyüleyici olduğunu keşfettim, bu yüzden seçkin bir versiyon için imzaladım ve yeterince eminim, güler yüzlü postacı geçen Cuma günü posta kutumda bıraktı, bu da hafta sonu boyunca oynamam gereken anlamına geliyor. Makaleyi kaçıranlar için Malduino, bir klavyeyi taklit edebilecek ve diğer şeylerin yanı sıra tuş vuruşlarını enjekte edebilecek USB gadget’dır. Uygun bir kasada olduğunda, sadece bir USB flash sürücüye benzeyecektir. Bir adamın bir gadget’la takıldığı filmlerde gördüğünüz şeyler gibidir. Her ikisi de ATMEGA32U4’ü temel alan iki versiyonun yanı sıra iki versiyonda, lite.
Lite versiyonu gerçekten küçüktür, USB konektörünün yanı sıra, yalnızca bir anahtar içerir; bu, bireyin çalışma modunun yanı sıra programlama modunun yanı sıra komut dosyasının çalıştırıldığını belirten bir LED’i seçer.
Orijinal Malduino Elite Kroki ve Lite Prototipi
Elite versiyonu daha büyük, bireyin hangi komut dosyasını karttan çalışacağını seçebilmesini sağlayan, bir Micro-SD kart ziyaretçisi ve dört DIP anahtarını içerir. Aynı şekilde, bir komut dosyasının çalıştırılmasını tamamladığını belirten LED’e sahiptir. Bu, bireyin sadece ürün yazılımını yalnızca ne zaman tutmasını sağlar, daha sonra Micro-SD kartta tutulan tuş vuruşu enjeksiyon komut dosyalarını, her bir bireysel bir komut dosyası çalıştırmak istediğiniz her seferinde parlamalı olan Lite sürümünün aksine.
Bunlar, iki Malduino’lardır ve doğrudan Arduino IDE’den programlandıkları için, az önce bahsettiğim her işlev yeniden programlanabiliyor, yeniden kullanabilir veya hepsini birbirine düşürülebilir. Birini satın alabilirsiniz, sadece bir ‘normal’ Arduino gibi kullanmayı seçebilirsiniz. Bu esneklik, bu konuda sevdiğim ilk şeylerin yanı sıra kalabalık finansman kampanyasında yer almamı gerçekten sürdü. tam inceleme için kontrol edildi.
Donanım
Malduino Elite vs USB Flash Sürücü
Böylece elit kurulu rutin olarak gösterildi ve kendimi görünmek için uzun zamandır keşfettim. Lite sürümünden daha uzun olmasına rağmen, yine de oldukça küçük, eski bir USB kasasına hızlı bir şekilde uyarlayabileceğiniz yaklaşık 4,6 cm x 1.1 cm (yaklaşık 1.8, x 0.43 inç) ölçülür, ancak bazılarını kesmek zorunda kalacaksınız. DIP anahtarları ve mikro SD kartın delikleri. Kalabalık finansman kampanyasında, orijinal kroki bir 3 daldırma anahtarı versiyonu içindi, ancak son elitin güzel olduğunu keşfettim. Eski bir bilgisayara taktım, hangi üretici yazılımın yanı sıra dizüstü bilgisayarıma ne yapabileceğinin yanı sıra, yanı sıra bir kırmızı LED’in ortaya çıktığından emin olabilirim. yanı sıra buydu. başka hiçbir şey.
Bazı RTFM’yi kullanmanın yanı sıra anahtarlarla birlikte oynadıktan sonra, üretici yazılımının gönderdiği ürün yazılımının büyük olasılıkla bir tür Q.C. olduğunu fark ettim. Malduino’nun 1 ila 4 numaralarını (aslında bir tuşa 1 ila 4’ü simüle ederek, aslında bir tuşa 1 ila 4’ü simüle etmesini sağlayan) test edin. Şimdiye kadar çok iyi, bundan daha kötü PCB panoları gördüğüm kadar iyi çalışıyor. Kurul, mikro denetleyiciye izlemedim ve ne için olduklarını anlamadığım altı pim için deliklere sahiptir.
Kurulum
Malduino’nun kurulumu, Arduino IDE’nin, tarihin kadar olduğu kadar yüklü olmasını gerektiriyor. Yönetim Kurulu Yöneticisi’ni açmanın yanı sıra, SPARTFUN panolarını ayarlamanın yanı sıra, seçkinler, 8 MHz de 3,3 V ‘da bir’ Sparkfun Pro Mikro ‘olarak programlandı. Ardından, bir dizi amaçla hizmet veren Malduino Script Converter web sitesine gitmeyi gereksiniminiz:
Elite sürümlerinin yanı sıra Lite arasındaki komut dosyalarını dönüştürmeyi sağlar.
Klavye tasarım dilinizi seçmenizi sağlar
Otomatik, IDE’ye içe aktarmanız için Arduino işini üretir.
Elite versiyonu için, projeyi indirmek için basit ve hatta boş bir komut dosyası üretin, çünkü ‘Normal’ operasyonda, sadece Malduino’yu ne zaman yanında yanıp söner, daha sonra yeni komut dosyalarını saklamak için Micro-SD kartını kullanırsınız.
Yanıp sönen bir not, eğer bir debian tabanlı dağıtım kullanıyorsanız, cihazın yanıp sönmesi gibi bazı sorunları da karşılayamazsınız. Bu en faydalı yayındaki birey gibi, Modem-Manager’m, her sıfırlamadan sonra Malduino ile konuşmaya çalışıyordu. Çözüm, UDEV kurallarına “/etc/udev/rules.d/77-m-usb-device-blacklist-local.rules” adresine eklemektir., [Socrim]
1
2
3
4
5
6
7
8
Eylem! = & Quot; Ekle |
Altsistem! = “USB”, GOTO = “MM_USB_DEVICE_BLACKLLL_LOCAL_END & quot;
Env {devtype}! = “Usb_device”, goto = “; mm_usb_device_blacklist_local_end & quot;
Attrs {iDvendor} == “1B4F”; Attrs {idproduct} == “9204”, env {id_mm_device_ignore} = “1”;
Attrs {iDvendor}=="1b4f" ATTRS{idProduct}=="9203", ENV{ID_MM_DEVICE_IGNORE}="1"
LABEL="mm_usb_device_blacklist_local_end"
Yazılım
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
10
DELAY 2000
ALT F2
DELAY 1000
STRING xterm
DELAY 1000
GİRİŞ
DELAY 1000
STRING id
DELAY 1000
GİRİŞ
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);</pre>
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.
Çözüm
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]!