Od momentu pojawienia się w 2010 USB Rubber Ducky, na rynku pojawiło się sporo zamienników o bardzo różnej jakości wykonania, jak i różnych podejściach do samej konstrukcji elektroniki – np. aby wykorzystać różne tanie płytki z przypadkowymi mikrokontrolerami, będące akurat w jakiejś promocji.
Oryginalne USB Rubber Ducky ma 5 zasadniczych przewag nad wspomnianymi zamiennikami:
- posiada obudowę przypominającą zwykłego pen drive’a – to istotne, ponieważ wielu laikom na widok gołej płytki drukowanej podłączanej do komputera (np. takiej jak na powyższym zdjęciu, przedstawiającym Pro Micro Beetle), zapala się w głowie czerwona lampka, że to może być coś podejrzanego – a jednocześnie skoro coś wygląda jak pen drive, to pewnie jest bezpieczne
- Ducky Script jest dużo łatwiejszy do przyswojenia dla osoby nie będącej programistą, niż programowanie w C++, oraz kompilacja programów dla różnych dziwnych platform klasy embedded
- gotowy skrypt po skompilowaniu jest wgrywany na wymienną kartę MicroSD – dzięki temu można mieć przy sobie wiele wymiennych skryptów na wiele różnych okoliczności – oczywiście równie dobrze można kupić wiele tańszych zamienników (również modeli wyposażonych w kość pamięci flash), ale karty można przechowywać znacznie dyskretniej, a zarazem bezpieczniej i wygodniej
- podmienione identyfikatory VID i PID również są wgrywane na wymienną kartę MicroSD, a więc różne karty pozwalają na udawanie klawiatur różnych producentów – jest to przydatne w korporacjach stosujących zaawansowane zabezpieczenia komputerów, blokujące porty USB i dopuszczające tylko wybrane typy urządzeń
- oryginał nadal można samodzielnie programować w C++, jeszcze bardziej customizując jego działanie – co więcej, dostępny jest gotowy kod firmware Twin Duck, udający 2 różne urządzenia: klawiaturę i USB storage, a więc pen drive, na który można wgrywać pliki wykradzione z komputera
Z drugiej strony:
- wiele zamienników jest zauważalnie mniejszych od oryginalnego USB Rubber Ducky – przy czym głównie te, które nie mają ani dodatkowej pamięci flash, ani slotu na kartę MicroSD (a więc można je wykorzystać tylko jako klawiaturę, bez możliwości zapisywania plików)
- dużo niższa cena – co ma znaczenie szczególnie w przypadku młodych osób i zastosowań amatorskich
- jeśli ktoś potrafi już biegle programować w C/C++ urządzenia klasy embedded, wówczas języki te dają nieporównywalnie większe możliwości od Ducky Scriptu, a istnieją też platformy łatwiejsze w obsłudze od AVR32
Aktualizacja 2021
Dla osób sceptycznych wobec tanich zamienników, Kuba Mrugalski przygotował ten oto kilkuminutowy (i po polsku) film, jak prosto zacząć zabawę z takim urządzeniem:
Pamiętaj też, aby poszukać na Githubie, czy do Twojego modelu nie ma gotowych przykładów payloadów i innych przydatnych narzędzi np. na Githubie:
- https://github.com/CedArctic/DigiSpark-Scripts
- https://github.com/MTK911/Attiny85
- https://github.com/Screetsec/Pateensy
- https://github.com/mharjac/bad_ducky
- https://github.com/basic4/USB-Rubber-Ducky-Clone-using-Arduino-Leonardo-Beetle
- https://github.com/Seytonic/Duckduino-microSD
- https://malduino.com/
- https://github.com/dbisu/pico-ducky
- https://github.com/androidmalware/android_hid
- https://github.com/spacehuhn/wifi_ducky
Niezależnie od tego, czy wybierzemy oryginalne USB Rubber Ducky, czy tańszy zamiennik, w obu przypadkach możemy go połączyć z drugim, osobno podłączanym do komputera urządzeniem USB – np. dyskiem zewnęrznym SSD.
W ten właśnie sposób działa np. nasza platforma Sherlock, która może korzystać z tego typu urządzeń do dalszego przyspieszenia ataku.