Od czasu do tyłu, skomponowałem artykuł o Malduino, ARDUINO, open-source Source Badusb urządzenia. Odkryłem pracę fascynującą, więc zapisałem się do wersji elitarnej, a także na tyle, przyjazny listonosz spadł go w moim skrzynce pocztowej w ostatni piątek, co oznacza, że muszę grać z nim w weekend. Dla tych, którzy przegapili artykuł, Malduino jest gadżetem USB, który jest w stanie naśladować klawisze, a także naciśnięcia naciśnięć naciśnięć między innymi. Kiedy w odpowiedniej obudowie wygląda tylko jak dysk flash USB. To jak te rzeczy, które widzisz w filmach, w których facet podłącza się w gadżet, a także automatyczne hacki komputera. Statki w dwóch wersjach, lite, a także elitarne, zarówno na podstawie Atmega32U4.
Wersja Lite jest naprawdę niewielka, oprócz złącza USB zawiera tylko przełącznik, który umożliwia jednostce wybieranie między uruchomieniem, a także trybem programowania, a także diodą LED, która wskazuje, gdy skrypt został zakończony uruchomiony.
Oryginalny szkic elity Malduino, a także Lite Prototype
Wersja Elite jest większa, zawiera odwiedzający kartę Micro-SD, a także cztery przełączniki DIP, które umożliwiają jednostce wybrać skrypt z karty. Podobnie ma dioda LED, która wskazuje, kiedy skrypt został zakończony. Umożliwia to indywidualne rzucenie oprogramowania układowego tylko wtedy, gdy a następnie zaprogramuj skrypty wtrysku klawiszy, które przechowywane na karcie Micro-SD w przeciwieństwie do wersji Lite, która musi być migana za każdym razem, gdy indywidualne pragnie uruchomić inny skrypt.
Są to dwa malduinos, a także od tego, że są one zaprogramowane bezpośrednio z Arduino IDE, każda funkcja, o której właśnie wspomniałem, można ponownie zaprogramować, ponownie wycofał lub upuścić razem. Możesz kupić jeden, a także wybierz, aby wykorzystać go jak “normalny” Arduino, chociaż nie ma wiele pinów do gry. Ta elastyczność była jedną pierwszą rzeczą, którą podobało mi się na tym, a także naprawdę doprowadził mnie do wzięcia udziału w kampanii finansowania tłumu. Sprawdzono na pełnej recenzji.
Sprzęt.
Malduino Elite VS USB Flash Drive
Więc elitarna tablica pokazała się jako rutynowa, a także odkryłem się długo, by wyglądać na to. Pomimo bycia dłuższym niż wersja Lite, jest nadal raczej mała, mierząca około 4,6 cm x 1,1 cm (około 1,8 w x 0,43 cala, którą można szybko dostosować się do starego przypadku USB, chociaż będziesz musiał wyciąć niektóre Otwory do przełączników DIP, a także kartę Micro-SD. W kampanii finansowania tłumu oryginalny szkic był dla wersji 3 przełącznika DIP, jednak ostatnia elita ma cztery, które odkryłem miło. Podłączyłem go do starego komputera, po pewnym rozważeniu, które oprogramowanie sprzętowe może wyśledzić, a także to, co może zrobić z moim laptopem, a także pewność, że pojawił się czerwona dioda LED. jak również to było. nic więcej.
Po bawieniu się z przełącznikami, a także ćwicząc niektóre RTFM, zdałem sobie sprawę, że statki oprogramowania układowego jest najprawdopodobniej jakiś rodzaj Q.C. Test Dipów, co sprawia, że Malduino Wyjście liczby od 1 do 4 (faktycznie symulujące brelok 1 do 4), w zależności od tego, włączone przełączniki. Do tej pory tak dobrze działa, a także widziałem gorsze płytki PCB niż ten. Zarząd ma otwory dla sześciu kołków, których nie śledziłem do mikro-kontrolera, a także nie rozumiem, do czego są.
Ustawić
Konfigurowanie potrzeb Malduino, które masz zainstalowany ARDUINO IDE, a także tak bardzo. Wymaganie otwierania menedżera płytki, a także skonfigurować deski sparkfun, ponieważ elita jest zaprogramowana jako “Sparkfun Pro Micro” działa przy 3,3 V, a także 8 MHz. Następnie wymaga wyszukiwania witryny konwertera skryptów Malduino, która serwuje szereg celów:
Umożliwia konwersję skryptów między lite, a także elitarnymi wersjami
Umożliwia wybranie języka projektowania klawiatury
Auto Auto produkuje zadanie Arduino do zaimportowania do IDE
W wersji Elite, wystarczy produkować prosty lub nawet pusty skrypt, aby pobrać projekt, ponieważ w “normalnej” pracy po prostu flashuje Malduino, gdy tak dobrze wykorzystasz kartę Micro-SD do przechowywania nowych skryptów.
Uwaga na temat migania, jeśli korzystasz z dystrybucji opartej na Debianie, możesz natknąć się na niektóre problemy, jak ja, a także nie móc flashować urządzenia. Podobnie jak osoba na tej najbardziej przydatnej postie, mój modem-Menedżer próbował porozmawiać z Malduino po każdym zresetowaniu, a także zdezorientowanych avrdude na śmierć. Rozwiązaniem jest dodanie reguł UDEV do “/etc/udev/rules.d/77-mm-usb-device-blacklist-local.rules”, Kudos do [Socrim]:
1.
2.
3.
4.
5.
6.
7.
8.
Działanie! = “Dodaj | Zmiana” ,, goto = “mm_usb_device_blacklist_local_end”
Podsystem! = “USB”, goto = “mm_usb_device_blacklist_local_end”
Env {devtype}! = “Usb_device”, goto = “mm_usb_device_blacklist_local_end”
Attrs {idvendor} == “1B4F” Attrs {idproduct} == “9204” ,, Ev {id_mm_device_ignore} = “1”
Attrs {idvend.or}==”1b4f” ATTRS{idProduct}==”9203″, ENV{ID_MM_DEVICE_IGNORE}=”1″
LABEL=”mm_usb_device_blacklist_local_end”
Oprogramowanie
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
WCHODZIĆ
DELAY 1000
STRING id
DELAY 1000
WCHODZIĆ
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.
Wniosek
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]!