Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Data publikacji: 03-03-2023 | Autor: | Adam Kamiński |
Nigdy nie było lepszego momentu na bycie sprzętowym hakerem – narzędzia są tanie, dostęp do informacji powszechny i darmowy, a możliwości niemal nieograniczone. Sprawę ułatwiają również takie urządzenia jak Flipper Zero.
Flipper Zero to wielofunkcyjne, przenośne narzędzie cyberbezpieczeństwa dla pentesterów, geeków, etycznych hakerów i hobbystów sprzętu, zaprojektowane do interakcji z różnego rodzaju systemami kontroli dostępu, protokołami radiowymi, RFID, komunikacją bliskiego pola (NFC) i sygnałami podczerwieni zamknięte w obudowie przypominającej Tamagotchi. Skojarzenia z tą elektroniczną zabawką są nieuniknione, bo tak jak w przypadku tamtych cyfrowych zwierzaków, tak i to urządzenie ma w swoim sercu urocze stworzenie. Jest nim cybernetyczny delfin przypominający Jonesa z filmu „Johnny Mnemonic”, z którym wchodzimy w interakcje za pośrednictwem interfejsu graficznego i rozwijamy, krakując wszelkiej maści hardware. Na tym jednak podobieństwa się kończą, gdyż pod zabawnym wyglądem kryje się prawdziwy szwajcarski scyzoryk pentesterskich narzędzi, wśród których znajdziemy RFID, RF, podczerwień, emulację HID, GPIO, debugowanie sprzętu, 1-Wire, Bluetooth, Wi-Fi i inne.
Potrzeba matką wynalazków
Ideą stojącą za stworzeniem Flippera Zero była potrzeba połączenia wszystkich narzędzi sprzętowych niezbędnych do interakcji z systemami kontroli dostępu i działania w terenie. Przedsięwzięcie zostało zainspirowane świetnymi projektami opensource’owymi jak Proxmark, HydraNFC, Rubber Ducky czy pwnagotchi i pozostaje wierne swoim otwartoźródłowym korzeniom, ale w przeciwieństwie do innych płytek DIY Flippera zaprojektowano z myślą o wygodzie codziennego użytkowania – ma solidną obudowę, poręczne przyciski i kształt, dzięki czemu nie trzeba się zmagać z brudnymi płytkami drukowanymi ani porysowanymi pinami. Pomysł na powstanie produktu wziął się z zapotrzebowania na trwałe narzędzie do testów penetracyjnych podczas prac nad sieciami 4G w odległych miejscach. Projekt po raz pierwszy został ogłoszony w sierpniu 2020 r., a żeby sfinansować jego realizację, Alexander Kulagin, jeden ze współtwórców Flippera, założył crowdfundingową zbiórkę. Początkowo cel ustalony na Kickstarterze wynosił 60 tys. dol., jednak przedsięwzięcie w krótkim czasie zgromadziło zawrotną sumę 4,8 mln dol. dzięki 40 tys. wspierających.
W skrócie
Flipper Zero jest całkowicie autonomicznym urządzeniem i ma wbudowane piny zasilania 5 V i 3,3 V. Zamiast ekranu TFT/IPS/OLED twórcy postawili na oldschoolowy, monochromatyczny, podświetlany na pomarańczowo ekran LCD o rozdzielczości 128 × 64 px, który jest doskonale widoczny w świetle słonecznym, a przy wyłączonym podświetleniu ma ultraniski pobór prądu wynoszący 400 nA. Do obsługi urządzenia nie jest wymagane posiadanie komputera ani smartfona i można nim sterować za pomocą 5-pozycyjnego D-pada i osobnego przycisku wstecz – wspólne skrypty i funkcje są dostępne z menu. Jednak aby uzyskać większą kontrolę, można podłączyć się do Flippera przez USB. Dzięki temu Flipper może również emulować urządzenia HID (ang. human input device) jak klawiatura, Ethernet itp., co pozwala na wykonywanie ataków typu BadUSB czy Rubber Ducky. Użytkownicy mogą łatwo przesyłać i wdrażać skrypty bezpośrednio z urządzenia w celu automatyzacji zadań, testów penetracyjnych i nie tylko. Niektóre czynności, takie jak aktualizacja firmware'u lub danych użytkownika, wymagają połączenia z komputerem lub smartfonem z zainstalowanym oprogramowaniem deweloperskim.
Na górze urządzenia znajdują się otwory na wejścia/wyjścia ogólnego przeznaczenia (piny GPIO Pinouts & Breakout), które służą do podłączenia zewnętrznych modułów i umożliwiają kontrolę podpiętego sprzętu bezpośrednio przez Flippera. Narzędzie może być również używane jako mostek USB do UART/SPI/I2C/etc. do debugowania, flashowania i fuzzingu.
Wnętrze delfina
Flipper Zero napędzany jest dwurdzeniowym mikrokontrolerem STM32WB55 w architekturze ARM z 256 kB pamięci RAM i 1 MB pamięci Flash. Pierwszy rdzeń – 64 MHz Cortex-M4 – uruchamia główny firmware. Drugi rdzeń to 32 MHz Cortex-M0, na którym działa firmware firmy STMicroelectronics implementujący protokół Bluetooth Low Energy. Do nadawania i odbioru radiowego w zakresie częstotliwości 300-900 MHz wykorzystano układ scalony Texas Instruments CC1101, który obsługuje modulacje ASK (ang. amplitude-shift keying) i FSK (ang. frequency-shift keying). Chip CC1101 umożliwia nagrywanie, analizowanie i odtwarzanie sygnałów RF od 300 do 928 MHz, co pozwala na natychmiastowe przejęcie systemów zdalnego sterowania, które nie używają kodu zmiennego (ang. rolling code) do uwierzytelniania. Może również odczytywać i emulować wiele różnych kart RFID, nagrywać i przesyłać sygnały IR, emulować urządzenie USB HID, uruchamiać programowalne ładunki oraz działać jako adapter USB do UART/SPI/I2C. W przeciwieństwie do radia definiowanego programowo układ CC1101 nie może przechwytywać surowych sygnałów radiowych. Ograniczenie to wymaga od użytkownika wstępnego skonfigurowania parametrów
modulacji przed odebraniem sygnału radiowego, w przeciwnym razie sygnał zostanie odebrany nieprawidłowo.
Oprogramowanie sprzętowe
Firmware Flippera Zero oparty jest na systemie operacyjnym FreeRTOS, z własną abstrakcją programową nad warstwą sprzętową. Napisany jest w większości w języku C, z okazjonalnym wykorzystaniem C++. System wykorzystuje wielozadaniowość w połączeniu z architekturą sterowaną zdarzeniami do organizacji interakcji aplikacji i usług wykonywanych w jednej przestrzeni adresowej oraz komunikujących się poprzez system kolejek i zdarzeń. System może być wykonywany zarówno z pamięci o dostępie swobodnym (RAM), jak i z pamięci tylko do odczytu (ROM). Wykonywanie z pamięci RAM jest wykorzystywane do dostarczania aktualizacji oprogramowania sprzętowego w trybie OTA (over-the-air). Dane użytkownika oraz aktualizacje firmware’u są przechowywane na karcie microSD. Oprogramowanie sprzętowe składa się z następujących komponentów:
System budowania oparty jest na narzędziu SCons z dodatkowym oprzyrządowaniem napisanym w Pythonie. Do kompilacji system wykorzystuje własny otwarty toolchain oparty na GNU Compiler Collection.
[...]
Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.
Transmisje online zapewnia: StreamOnline