Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kolejny sposób ataku przez USB z wykorzystaniem niewielkiego modułu

ghost666 13 Paź 2016 20:26 12927 29
  • Kolejny sposób ataku przez USB z wykorzystaniem niewielkiego modułu
    Niedawno opisywałem dostępny w handlu USB killer, który po podłączeniu do portu USB generuje wysokie napięcie, mające uszkodzić komputer. Jednakże port USB może być wektorem o wiele bardziej wyrafinowanych ataków. Przykładem, także dostępnego komercyjnie, systemu, który dedykowany jest m.in. do tego rodzaju ataków jest Rubber Ducky Deluxe (ang. Gumowa Kaczka Deluxe).

    USB Rubber Ducky Deluxe z zewnątrz wygląda jak zwykły pendrive, jednakże w rzeczywistości jest o wiele bardziej skomplikowanym urządzeniem. Moduł ten został opracowany w 2010 roku i od tego czasu jest ulubieńcem hakerów, testerów zabezpieczeń jak i innych pracowników sektora informatycznego. System ten początkowo miałby być prostym narzędziem umożliwiającym automatyzację różnych czynności na komputerze, ale okazał się bardzo użytecznym wektorem ataków na komputer z wykorzystaniem portu USB. Początkowe wersje układu wcale nie przypominały pamięci USB, bo skonstruowane były w oparciu o płytkę uruchomieniową mikrokontrolera, jednakże całe środowisko - użyteczny sprzęt, dedykowany i prosty język skryptowy oraz niepozorny wygląd - sprawiły, że szybko znalazł sobie grono użytkowników, wykorzystujących to urządzenie w różnych celach.

    Kwacze jak klawiatura

    Niemalże każdy komputer na świecie - desktop, laptop, table ale też np. smartfony - wyposażone są w klawiatury, które służą człowiekowi do wprowadzania informacji do komputera. Dla tego rodzaju urządzeń stworzony nawet specjalny standard interfejsu USB, nazywany HID - Human Interface Device (Urządzenie Interfejsu dla Ludzi). Wyobraźmy sobie teraz, że dysponujemy urządzeniem, które podłączymy do portu USB i które zidentyfikuje się jako klawiatura HID. Automatycznie zostanie ono wykryte i zaakceptowane przez system operacyjny.

    Dzięki wykorzystaniu standardu HID klawiatury współpracują z komputerami bez żadnych problemów i potrzeby instalowania sterowników. Jednakże, ma to też negatywną stronę - możliwe jest nadużycie tego zaufania. Wystarczy do portu USB podłączyć urządzenie, które udawać będzie szybkie pisanie na klawiaturze, co pozwoli nam zrobić z komputerem bardzo wiele. Takim właśnie urządzeniem jest USB Rubber Ducky. Dzięki pisaniu z prędkością ponad 1000 znaków na minutę jest ono w stanie obejść większość zabezpieczeń, które mogłyby wykryć nieuprawnione działanie.



    Ducky Script

    Język skryptowy opisywanej 'Gumowej Kaczki' nastawiony jest na łatwość wykorzystania i programowania tego systemu. Skrypty opisujące scenariusz ataku i kolejność oraz sposób wprowadzania poszczególnych komend, opisać można z wykorzystaniem zwykłego notatnika, vi czy emacsa. Następnie prosto załadować można je do urządzenia i jest ono już gotowe do działania.

    Kolejny sposób ataku przez USB z wykorzystaniem niewielkiego modułu


    * Aby po prostu napisać "Hello World" wpisz STRING Hello World
    * Dodawaj pauzy pomiędzy komendami z wykorzystaniem komendy DELAY. Wpisz DELAY 100 aby uzyskać krótką pauzę - 100 ms, lub DELAY 1000 aby system odczekał pełną sekundę.
    * Wykorzystuj specjalne kombinacje klawiszy. Komendy ALT F4, CONTROL ESCAPE, WINDOWS R, SHIFT TAB robią dokładnie to, czego można się po nich spodziewać.
    * Wykorzystuj REM, aby zakomentować poszczególne linie.

    I tyle - tylko tyle wystarczy wiedzieć, aby znać Ducky Script i móc programować opisywane urządzenie

    Wydajność, prostota i wartość

    Producenci układu piszą: "Z doświadczeń setek hakerów na całym świecie, którzy wykorzystywali oryginalną konstrukcję naszego urządzenia opartą o płytkę ewaluacyjną wiele się nauczyliśmy. Na podstawie tej wiedzy skonstruowaliśmy od podstaw zupełnie nowy układ, który zapewnia wysoką wydajność w bardzo prostej formie i przystępnej cenie"

    Kolejny sposób ataku przez USB z wykorzystaniem niewielkiego modułu


    Podstawowe parametry urządzenia:

    * Szybki 32 bitowy procesor na pokładzie, taktowany zegarem 60 MHz.
    * Wygodny konektor USB typu A.
    * Rozszerzalna pamięć układu poprzez kartę microSD.
    * Układ ukryty w niepozornie wyglądającej obudowie.
    * Przycisk pozwalający na ponowienie czynności opisanych w skrypcie.

    Wieloplatformowość

    Windows, Mac, Linux, Android - wszystkie te systemy są z klawiaturami za pan brat. Wygoda jest kluczem dla tych systemów, więc po podłączeniu do nich urządzenia wejściowego, które identyfikuje się jako klawiatura, system nie ma żadnych oporów, aby wykonywać jej polecenia. Wszak klawiatura to człowiek, a człowieka komputer musi się słuchać.

    Jeszcze nie tak dawno temu klawiatury wyposażone były w różne złącza: DIN, PS/2, Apple Desktop Bus itp. Teraz wszystkie klawiatury podłączane są poprzez USB i wykorzystują uniwersalny interfejs HID. W pełni plug&play czy w tym przypadku plug&hack.

    Szeroka gama oprogramowania, firmware, generatorów skryptów i toolkitów

    Projekt USB Rubber Ducky zgromadził wokół siebie niemałą społeczność. W związku z tym powstało także wiele narzędzi i zasobów, dostępnych w sieci, które pozwalają na ułatwienie korzystania z układu, niektóre z nich są na prawdę wartościowe:

    * Przygotowane repozytorium gotowych skrypotów - Payload Wiki: Link.
    * Duck Toolkit do generowania skryptów o różnym przeznaczeniu: rekonesans, expliyu, generacja raportów czy wykorzystanie zasobów o-line i wstrzykiwanie kodu: Link.
    * Prosty generator skryptów dla Linuxa wraz z wbudowanym łamaczem haseł i zintegrowanym Netcatem i Meterpreterem: Link.
    * Oprogramowanie do podmieniania VID i PID urządzeń USB, aby nasza 'Kaczuszka" wydawała się jeszcze bardziej bezbronna: Link.
    * Zasoby firmware pozwalające rozszerzyć możliwości urządzenia o kodowanie, integrację różnych skryptów i wiele innych funkcji, np. wykrywanie języka systemu i dobieranie w odpowiedni sposób skryptu: Link.

    Oprócz powyższych dostępne jest także Forum projektu, gdzie wymieniać można się skryptami, zadawać pytania i podawać sugestie co do zmian w sprzęcie i oprogramowaniu: Link.

    Układ dostępny jest w sklepie internetowym HakShop w cenie niecałych 45 dolarów plus przesyłka.

    Źródło: http://hakshop.myshopify.com/products/usb-rubber-ducky-deluxe

    Fajne! Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9413 postów o ocenie 7062, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • PCBway
  • #2
    2323wojtek
    Poziom 18  
    Dla mnie ten post zasługuje na dużo więcej niż klikniecie "Pomocny post" **
  • #3
    piotrva
    Moderator na urlopie...
    Dobrze, że cena odstraszy gimbazę.
    Wartością urządzenia nie jest elektronika ale dostarczony soft.
    W sumie szkoda, ze nie zrobili tego OSHW ;)
    Choć z drugiej strony dla ogarniętej osoby zrobienie czegoś takiego, może bez otoczki programu, to kilkadziesiąt minut.
    Szczerze jednak, hmm, jakbym zobaczył, ze coś takiego się dzieje z kompem to osobiście bym wyjął ostatnio podłączone urządzenie, no chyba, że to działa z opóźnionym zapłonem ;)
  • PCBway
  • #4
    krzychoo_soft
    Poziom 17  
    Komercyjna odsłona starej zabawki. Alternatywa to jakaś mini płytka kompatybilna z arduino, do tego biblioteka keyboard (https://www.arduino.cc/en/Reference/KeyboardWrite) i jedziemy z koksem. Ogólnie, wektor ataku moim zdaniem genialny w swojej prostocie. Bardzo łatwy też do wychwycenia i zablokowania (softwareowo) ... ale w zdecydowanej większości przypadków atak się uda.
  • #5
    oshii
    Poziom 19  
    krzychoo_soft napisał:
    Bardzo łatwy też do wychwycenia i zablokowania (softwareowo) ...

    Czy aby na pewno taki łatwy do zablokowania? Sterownik klawiatury i myszki jest jednym z nielicznych którym system zawsze ufa, nawet, gdy instalacja sterowników dla danego użytkownika jest zablokowana.
  • #6
    vayo
    Poziom 14  
    Taką zabawkę zrobiłem sobie parę lat temu. Firmware pisałem jeszcze w Bascomie. Później wykorzystałem ją przy nagrywaniu filmiku z emulatora małego Atari


    Link


    wpisywało mi to widoczny tam tekst. W moim zastosowaniu brakuje losowych opóźnień między wciskaniami klawiszy i dla tego wygląda to trochę sztucznie.
    Testując szybkość wpisywania tekstu zrobiło to na mnie duże wrażenie. U mnie sekwencja wciskanych klawiszy poza wypisywaniem tekstu uruchamiała i kończyła nagrywanie -pełna automatyzacja
  • #8
    oshii
    Poziom 19  
    W momencie, gdy urządzenie tego typu dostaje dostęp do systemu musiałbyś załatać każdy potencjalny sposób dostania się do terminala lub innych pośrednich dróg wykonania kodu. Nie wiem czy starczy ci wyobraźni.
  • #10
    vayo
    Poziom 14  
    Wszyscy wiemy kto i po co kupuje takie urządzenia, ale można też je wykorzystać np. do zabawy.
    Przypomniało mi się właśnie, że kiedyś jeszcze wcześniej zrobiłem dla klienta kilka urządzeń na PS2, które miały po kilka przycisków i wciskając je wysyłało jakiś konkretny znak -taka mini klawiatura. Jako "info" dodałem do tego animację, którą można było odtworzyć w notatniku. Działało to na zasadzie rysowania znakami ASCII, zmazywania fragmentów i zastępowania ich innymi. Jako, że to było na PS2, to szybkość tego nie powalała, ale i tak robiło wrażenie.

    Tak sobie pomyślałem, że takie urządzenie można by było wykorzystać też do ataku brute force na konsolę, do której mamy fizyczny dostęp, a nie znamy hasła...
  • #11
    koczis_ws
    Poziom 26  
    Jedyna nadzieja w tym, że to badziewie trzeba włożyć do portu USB, Trzeba mieć świadomość co się wkłada i prać po łapach obcych :)
  • #12
    oshii
    Poziom 19  
    _jta_ napisał:
    Może dla każdej klawiatury osobny login?

    PID i VID możesz udawać.
    Możesz co prawda zablokować dla klawiatury wszystkie porty za wyjątkiem jednego, ale nadal nie eliminuje to zagrożenia w całości, bo możesz wpiąć się zamiast rzeczywistej klawiatury (lub pomiędzy usb a klawiatuę ofiary). Będzie to wymagało większego zaangażowania socjotechniki ale nadal jest wykonalne.
  • #13
    _jta_
    Specjalista elektronik
    Komputer jeszcze dostaje numer portu, Windows jest na to dość wrażliwy - podłączyłem do komputera kamerkę, zainstalowałem sterowniki, potem ją podłączyłem pod inny port USB... i okazało się, że trzeba powtórnie zainstalować sterowniki, bo w konfiguracji poprzednich jest numer portu. Ale i z Linux-a program może odczytać, na którym porcie jest urządzenie. A jak nawet odłączysz i podłączysz do tego samego, to sprzęt dostaje od systemu nowy identyfikator i programy mogą to odróżnić.

    Czyli powinno być tak, że jak użytkownik odłączy klawiaturę i znowu ją podłączy - nawet do tego samego portu - to komputer pokazuje mu informację o sesji i wymaga Alt-Ctrl-Del i powtórnego zalogowania, żeby się do niej dostać. Jak podłącza drugą klawiaturę i coś na niej wciśnie - alarm, i trzeba się logować z tej drugiej klawiatury, zaczynając od Alt-Ctrl-Del, żeby komputer uznał ją za uprawnioną.
  • #14
    oshii
    Poziom 19  
    I to uważasz za łatwe i powszechne rozwiązanie? :) Pomijam już fakt, że socjotechniką nadal da się to obejść, a jak ktoś ci wepnie taką klawiaturę w postaci przejściówki w momencie, gdy komputer jest wyłączony to w żaden sposób się nie skapniesz.
  • #15
    elektryku5
    Poziom 38  
    Fajny wynalazek, pod warunkiem że atakujący zna hasło roota.
  • #16
    _jta_
    Specjalista elektronik
    (1) Czekamy, aż użytkownik wpisze "root" i wciśnie Enter; (2) zapamiętujemy znaki do następnego Enter. Ale można się nabrać: użytkownik wywołał program "root" (jest taki). ;)

    Poza tym, w nowszych Linux-ach nie używa się loginu "root", tylko pisze się "sudo polecenie-do-wykonania" - więc to urządzenie musiałoby śledzić i takie sekwencje klawiszy.
  • #17
    elektryku5
    Poziom 38  
    Wtedy urządzenie musiałoby mieć jeszcze funkcjonalność keyloggera i dość zaawansowany program przewidujący wiele możliwych scenariuszy.
  • #19
    vayo
    Poziom 14  
    I niby jak by to miało odbierać wysyłane znaki przez inną klawiaturę? Z tego co się orientuję, to klawiatury HID dostają tylko informację z komputera, że np. włączono "caps lock", "num lock" itp. a nie dostają informacji jaki klawisz został wciśnięty na innej klawiaturze. Tak więc jako key logger to się raczej nie nadaje.
  • #20
    _jta_
    Specjalista elektronik
    A to dla układu, w którym do komputera podłączasz dwie klawiatury, w połączenie jednej z nich ktoś ci wpiął key logger, a ty podejrzewasz to i część hasła piszesz na jednej, część na drugiej. ;)

    Key logger może być skuteczny, jeśli do komputera podłączasz tylko jedną klawiaturę - powiedzmy, przez HUB-a USB, do którego jakiś hacker zapakował key loggera. Czyli: uwaga na HUB-y!
  • #21
    Strumien swiadomosci swia
    Poziom 43  
    Są dostępne keylogery sprzętowe jako przelotka usb. Moim zdaniem fajna zabawka, ktoś wepnie w usb za miesiąc wyciągnie i voila.
  • #22
    krzychoo_soft
    Poziom 17  
    oshii napisał:
    krzychoo_soft napisał:
    Bardzo łatwy też do wychwycenia i zablokowania (softwareowo) ...

    Czy aby na pewno taki łatwy do zablokowania? Sterownik klawiatury i myszki jest jednym z nielicznych którym system zawsze ufa, nawet, gdy instalacja sterowników dla danego użytkownika jest zablokowana.

    Dla systemów windows, bardzo łatwe do zablokowania. Łapiemy przerwanie portu USB i na tym etapie możemy wyłapać nieprawidłowości - tzn. bez problemu identyfikujemy czy dane urządzenie przedstawia się jako HID czy jako coś innego (dysk przenośny, cokolwiek). Albo z automatu dopuszczamy tylko te urządzenie które są na "white list" albo łapiemy wszystko jak leci i zezwalamy dopiero po jakiejś autoryzacji hasłem... pomysłów może być masa. Robiłem tego typu soft dla firmy która blokowała pracownikom podpinanie "obcych" usb - i działa to u nich chyba nieprzerwanie do dziś. Z poziomu gołego systemu operacyjnego chyba nie jest to do zrobienia. Zasady grupy chyba też tego nie przewidują. Linuxów poza bash-em nie programuje więc tam nie wiem jak sytuacja wygląda.
  • #23
    _jta_
    Specjalista elektronik
    Jak ktoś wepnie, między klawiaturę, a komputer, przelotkę, która nie zmienia identyfikacji urządzenia, to taki soft tego nie rozpozna...

    Linux ma skrypty w /etc/udev/, które definiują akcje wykonywane przy podłączeniu urządzenia przez USB - można zdefiniować akcje.
  • #24
    krzychoo_soft
    Poziom 17  
    Nie znam takiej "przelotki", w związku z tym nie widzę opcji żeby oszukać tego typu soft. Zaciemniając jakąkolwiek "przelotką" identyfikatory urządzenia, tym samym uniemożliwiamy systemowi operacyjnemu rozpoznanie klawiatury czy też urządzenia udającego klawiaturę - innymi słowy, atak nie przejdzie.
  • #25
    piotrva
    Moderator na urlopie...
    krzychoo_soft napisał:
    Nie znam takiej "przelotki"

    Co nie znaczy, że nie można takiej zrobić. Wystarczy, żeby procek po podpięciu do przelotki klawiatury odczytywał jej VID+PID i taki sam wystawiał po drugiej stronie. Znakomita większość klawiatur wykorzystuje interfejs HID więc transmisja danych będzie taka sama. Dodatkowo przelotka po odpięciu klawiatury też może po stronie PC udać odpięcie urządzenia. Więc jak ktoś ma przedłużacz to leży, bo nawet odpinając nie wykryje problemu.
    Dalej - kto sprawdza codziennie czy jego klawiatura jest wpięta bezpośrednio do kompa?
  • #26
    elektryku5
    Poziom 38  
    piotrva napisał:
    Dalej - kto sprawdza codziennie czy jego klawiatura jest wpięta bezpośrednio do kompa?


    W domu mało prawdopodobne, ale w pracy już można się czegoś takiego spodziewać.
  • #27
    Strumien swiadomosci swia
    Poziom 43  
    I co atakujący za jakiś czas wyjmie i zczyta czy też przelotka uruchomi klawiszami skrótu outloka i wyśle wiadomość ze swoją zawartością?
  • #28
    oshii
    Poziom 19  
    @krzychoo_soft, zacznijmy od tego, że w 99% firm (i 99,99% osób prywatnych) nikt się nie będzie bawił w ustawianie ograniczeń na klawiatury a systemy operacyjne nigdy nie będą domyślnie takich urządzeń blokować.
    Tam, gdzie kontrola jest podwyższona (i uzasadniona), zastosowanie mają jak mniemam klawiatury szyfrujące ruch do komputera, i w takim przypadku faktycznie nic się nie wskóra wpinając się pomiędzy klawiaturę a port USB. Ale w teoretycznym przypadku, że w swoim prywatnym komputerze blokujesz software'owo zwykłą klawiaturę, nie widzę żadnej przeszkody żeby możliwy był do wykoniania atak MDIM poprzez spoof'owanie HID i PID w mikrokontrolerze wpiętym między USB a klawiaturę.
    Btw - zablokowałeś już w systemie wszystkie klawiatury poza tą używaną? :>
  • #29
    piotrva
    Moderator na urlopie...
    Strumien swiadomosci swia napisał:

    I co atakujący za jakiś czas wyjmie i zczyta czy też przelotka uruchomi klawiszami skrótu outloka i wyśle wiadomość ze swoją zawartością?

    Można zrobić to na milion sposobów, odpalić przeglądarkę, dane zapisywać i czekać na sposobność wypięcia. Można też przesyłać je bezprzewodowo do urządzenia, które będziemy mieć w plecaku - wystarczy przejść dostatecznie blisko i viola (po USB mamy nawet 500mA, więc można nie tak słaby nadajnik dodać). To nie jest pomysł wyssany z palca.
  • #30
    krzychoo_soft
    Poziom 17  
    oshii napisał:
    @krzychoo_soft, zacznijmy od tego, że w 99% firm (i 99,99% osób prywatnych) nikt się nie będzie bawił w ustawianie ograniczeń na klawiatury a systemy operacyjne nigdy nie będą domyślnie takich urządzeń blokować.
    Tam, gdzie kontrola jest podwyższona (i uzasadniona), zastosowanie mają jak mniemam klawiatury szyfrujące ruch do komputera, i w takim przypadku faktycznie nic się nie wskóra wpinając się pomiędzy klawiaturę a port USB. Ale w teoretycznym przypadku, że w swoim prywatnym komputerze blokujesz software'owo zwykłą klawiaturę, nie widzę żadnej przeszkody żeby możliwy był do wykoniania atak MDIM poprzez spoof'owanie HID i PID w mikrokontrolerze wpiętym między USB a klawiaturę.
    Btw - zablokowałeś już w systemie wszystkie klawiatury poza tą używaną? :>


    Oczywiście da się "coś" zrobić. Zależnie od sytuacji, wektor ataku może wyglądać różnie. Ale zawsze da się coś zrobić. W mojej ocenie - takie gotowe moduły jak omawiane w tym wątku, są dla amatorów czy tam - modna nazwa, tzw. "script kiddies". Zawsze jak mamy do czynienia z gotowcem - jeszcze dostępnym komercyjnie, to bez problemu można wdrożyć rozwiązanie które skutecznie blokuje takie zagrożenie. Problemy pojawiają się wtedy, gdy mamy do czynienia z kimś, kto wie jak przeprowadzić atak - a nie czym. Spersonalizowane, indywidualne podejście do łamania konkretnych zabezpieczeń są najtrudniejsze do złamania. I tu już wchodzimy na temat omawiania procedur bezpieczeństwa itd. Oczywiście, scenariusze jakie sobie tutaj opisujemy mają mniejsze lub większe szanse powodzenia. Obojętnie czy jest to "czarne pudełko" wpięte pomiędzy komputerem a interfejsem wejściowym... obojętnie czy jest to urządzenie bezpośrednio wpięte w port USB... W większości przypadków czynnik ludzki ma tu kluczowe znaczenie. Ja używam laptopa, nie zostawiam go "zalogowanego" bez nadzoru... niezależnie od tego czy używam jakichś softwareowych narzędzi czy nie, zdecydowaną większość ataków "emulatorem klawiatury" nie da się przeprowadzić bo na zablokowanym systemie to nie zadziała. Mimo że system rozpozna sprzęt i zainstaluje sterownik. Jakbym miał do czynienia ze smutnymi "facetami w czerni", to nic nie stoi na przeszkodzie by podmienili mi fizycznie zainstalowaną w kadłubie laptopa klawiaturę ;) Nic nie stoi na przeszkodzie by zrobić bardziej zaawansowane zabiegi... pytanie, czy da się to zrobić niezauważenie ;) Jako ciekawostkę na przykład dodam, że jest opracowana metoda ataku która opiera się na firmwarze dysku twardego. Infekuje się delikwenta szkodliwym oprogramowaniem które jest w stanie przetrwać format dysku. Są wektory ataku oparte na szkodliwym kodzie w firmwarze kart sieciowych... ;)