— to projekt kieszonkowego multitoola opartego na Raspberry Pi Zero do testowania bezpieczeństwa IoT i bezprzewodowych systemów kontroli dostępu. A także tamagotchi, w którym mieszka cyber-delfin. Będzie potrafił:
- Działać w zakresie 433 MHz — do badania pilotów radiowych, czujników, zamków elektronicznych i przekaźników.
- NFC — odczytywać/zapisywać i emulować karty ISO-14443.
- 125 kHz RFID — odczytywać/zapisywać i emulować karty niskoczęstotliwościowe.
- Klucze iButton — odczytywać/zapisywać i emulować klucze kontaktowe działające w protokole 1-Wire.
- Wi-Fi — do testowania bezpieczeństwa sieci bezprzewodowych. Adapter obsługuje wstrzykiwanie pakietów i tryb monitorowania.
- Bluetooth — wspierany przez pakiet bluez dla Linuxa
- Tryb Bad USB — może łączyć się jako USB-slave i emulować klawiaturę, adapter ethernetowy i inne urządzenia, do wstrzykiwania kodu lub testowania bezpieczeństwa w sieci.
- Tamagotchi! — mikrokontroler o niskim zużyciu energii działa, gdy główny system jest wyłączony.
Z niecierpliwością przedstawiam mój najbardziej ambitny projekt, pomysł, który nosiłem w sobie przez wiele lat. To próba połączenia wszystkich często potrzebnych narzędzi do testowania bezpieczeństwa w jedno urządzenie, dodając mu jednocześnie osobowość, by było urocze. Projekt jest obecnie na etapie R&D i zatwierdzania funkcji, a ja zapraszam wszystkich do udziału w dyskusji na temat funkcji lub nawet do włączenia się w rozwój. Pod tym wpisem szczegółowy opis projektu.
Po co to potrzebne?
Uwielbiam badać wszystko wokół i nieustannie noszę ze sobą różne narzędzia do tego. W moim plecaku znajdują się: adapter WiFi, czytnik NFC, SDR, Proxmark3, HydraNFC, Raspberry Pi Zero (przez co czasem są problemy na lotnisku). Korzystanie ze wszystkich tych urządzeń w biegu nie jest łatwe, gdy w jednej ręce masz kubek z kawą lub jedziesz na rowerze. Trzeba usiąść, rozłożyć się, wyciągnąć komputer — to nie zawsze jest wygodne. Marzyłem o urządzeniu, które realizowałoby typowe scenariusze ataków, byłoby zawsze w gotowości bojowej i nie wyglądałoby jak paczka rozwalających się płytek, sklejonych taśmą.
Raspberry Pi Zero W z baterią UPS-Lite v1.0 jako autonomiczny flooder do wysyłania zdjęć na urządzenia Apple przez AirDrop. Niedawno, po opublikowaniu otwartej implementacji protokołu AirDrop i badania od chłopaków z HexWay nad lukami w iOS , zacząłem bawić się nowym dla mnie sposobem: poznawanie ludzi w metrze, wysyłając im obrazki przez AirDrop i zbierając ich numery telefonów. Potem chciałem zautomatyzować ten proces i stworzyłem autonomiczną maszynę do wysyłania zdjęć z Raspberry Pi Zero W i baterią. Temat ten zasługuje na osobny artykuł, którego wciąż nie mogę dokończyć. Wszystko byłoby w porządku, ale to urządzenie było niezwykle niewygodne do noszenia, nie dało się go schować do kieszeni, ponieważ ostre krople cyny raniły materiał spodni. Próbowałem wydrukować obudowę na drukarce 3D, ale efekt mnie nie satysfakcjonował.
Osobne podziękowania dla Ani Proswetowej, prowadzącej kanał Telegram która na moją prośbę napisała bota Telegram , który generuje obrazki z tekstem, nickiem w telegramie i odpowiednim proporcjom, tak że są w pełni wyświetlane na podglądzie podczas wysyłania przez Airdrop. Można szybko wygenerować obrazek pasujący do danej sytuacji, wygląda to .
Pwnagotchi w komplecie z ekranem e-ink i osłoną na baterię. Potem zobaczyłem niesamowity projekt . To jak tamagotchi, tylko jako pokarm je WPA handshake i PMKID z sieci Wi-Fi, które można później łamać na farmach GPU. Tak bardzo spodobał mi się ten projekt, że przez kilka dni chodziłem z moim pwnagotchi po ulicach i obserwowałem, jak cieszy się z nowej zdobyczy. Ale miał te same problemy: nie można go normalnie schować do kieszeni, brak organów sterujących, dlatego wszelka interakcja użytkownika jest możliwa tylko za pomocą telefonu lub komputera. I wtedy w końcu zrozumiałem, jak wyobrażam sobie idealne narzędzie wielofunkcyjne, którego mi brakowało. Napisałem o tym i pomysł spodobał się moim przyjaciołom, projektantom przemysłowym, którzy tworzą poważne elektroniczne urządzenia. Zaproponowali, aby stworzyć pełnoprawne urządzenie, a nie domową robotę na kolanie. Z prawdziwą fabryczną produkcją i dobrze dopasowanymi elementami. Zaczęliśmy szukać koncepcji designu. Klikalne. Pierwsze szkice projektu Flipper Zero. Dużo czasu poświęcono obudowie i projektowi, ponieważ miałem dość tego, że wszystkie urządzenia hakerskie wyglądają jak zbiór PCB, sklejonych taśmą, i nie da się z nich wygodnie korzystać. Celem było wymyślenie jak najbardziej wygodnej i zwartej obudowy oraz urządzenia, którym można łatwo operować w trybie autonomicznym, bez potrzeby korzystania z komputera lub telefonu, i oto, co z tego wyszło. Poniżej opisano aktualny nie ostateczny koncept urządzenia.
Czym jest Flipper Zero?
W istocie Flipper Zero to kilka modułów i bateria wokół Raspberry Pi Zero, zapakowane w obudowę z ekranem i przyciskami. Jako system operacyjny wykorzystuje Kali Linux, ponieważ już zawiera wszystkie niezbędne poprawki i z założenia wspiera rpi0. Przyjrzałem się wielu różnym komputerom jednopłytkowym: NanoPi Duo2, Banana Pi M2 Zero, Orange Pi Zero, Omega2, ale wszystkie one przegrywają z rpi0 i oto dlaczego:
- Wbudowany adapter Wi-Fi, wspierający tryb monitorowania i wstrzykiwanie pakietów ( poprawki)
- Wbudowany Bluetooth 4.0
- Wystarczająco dobra
- Oficjalnie wspiera Kali Linux i ma wiele gotowych kompilacji, jak
- Łatwy dostęp do karty SD, można szybko przesłać duże ilości danych.
Z pewnością wielu powie, że Raspberry Pi to nie najlepszy wybór dla takiego urządzenia i znajdzie wiele argumentów, takich jak wysokie zużycie energii, brak trybu uśpienia, zamknięte oprogramowanie itp. Jednak porównując wszystkie minusy i plusy, nic lepszego od rpi0 nie znalazłem. Jeśli masz coś do powiedzenia w tej kwestii, zapraszam na forum deweloperów .
Flipper Zero jest całkowicie autonomiczny i może być obsługiwany za pomocą pięcio-pozycyjnego joysticka bez dodatkowych urządzeń, takich jak komputer czy telefon. Z menu można wywołać standardowe scenariusze ataków. Oczywiście nie wszystko można zrobić za pomocą joysticka, dlatego dla lepszej kontroli można połączyć się przez SSH przez USB lub przez Wi-Fi/Bluetooth. Postanowiłem użyć staromodnego monochromatycznego wyświetlacza LCD o rozdzielczości 126x64px, jak w starych telefonach Siemens. Po pierwsze, to po prostu fajne, monochromatyczny ekran z pomarańczowym podświetleniem budzi we mnie niewypowiedzianą radość, taki retro-militarno-kindle-punk. Dobrze widoczny w jasnym słońcu i ma bardzo niski pobór energii, około 400uA przy wyłączonym podświetleniu. Dlatego można go trzymać w trybie Always-On i zawsze wyświetlać obraz. Podświetlenie będzie włączane tylko podczas naciskania przycisków.
Przykłady ekranów w telefonach Siemens. Takie ekrany są nadal produkowane dla różnych urządzeń przemysłowych i kasowych. Na ten moment wybraliśmy .
Porty Flipper Zero. Na bokach Flipper Zero znajdują się standardowe porty Raspberry Pi, przycisk zasilania/podświetlenia, otwór na pasek oraz dodatkowy port serwisowy, przez który można uzyskać dostęp do konsoli UART, naładować baterię oraz wgrać nowy firmware.
transmiter 433 MHz

Flipper ma wbudowaną antenę na 433 MHz oraz chip , do pracy w zakresie <1GHz, taki sam jak w popularnym urządzeniu . Może przechwytywać i analizować sygnały z pilotów, breloków, różnych inteligentnych gniazdek i zamków. Obsługuje pracę z biblioteką i potrafi dekodować, przechowywać i odtwarzać popularne kody pilotów, podobnie jak . W przypadkach, gdy Raspberry Pi nie zdąży przetworzyć sygnału, pracę CC1111 może kontrolować wbudowany mikrokontroler. W trybie tamagotchi Flipper może komunikować się z podobnymi urządzeniami i wyświetlać ich nazwy, tak jak robi to pwnagotchi.
Bad USB
Flipper może emulować urządzenia USB-slave i udawać klawiaturę do wgrywania payloadów, podobnie jak . Może również emulować adapter ethernetowy do podmiany DNS, port szeregowy itd. Dla Raspberry Pi dostępny jest gotowy framework implementujący różne rodzaje takich ataków Wybrany scenariusz ataku można wybrać z menu za pomocą joysticka. Na ekranie mogą być wyświetlane informacje debugowania dotyczące stanu ataku lub coś niegroźnego w celu zamaskowania.
WiFi
Wbudowany w Raspberry Pi adapter Wi-Fi początkowo nie obsługuje trybu monitorowania wstrzykiwania pakietów, ale są , które dodają tę funkcję. W przypadku niektórych rodzajów ataków potrzebne są dwa niezależne adaptery Wi-Fi. Problem polega na tym, że prawie wszystkie chipy Wi-Fi są podłączane przez USB, a my nie możemy zająć jedynego USB na rpi0, ponieważ w przeciwnym razie usługa USB Slave przestanie działać. Dlatego konieczne jest użycie interfejsu SPI lub SDIO do podłączenia adaptera Wi-Fi. Nie znam żadnego chipu, który wspierałby tryb monitorowania i wstrzykiwanie pakietów od razu, a jednocześnie nie byłby podłączony przez USB. Jeśli znasz taki chip, daj znać, proszę, na forum w wątku
NFC
Moduł NFC potrafi czytać/zapisywać wszystkie karty ISO-14443, w tym Mifare, bezstykowe karty bankowe PayPass/PayWave, ApplePay/GooglePay i inne. Obsługiwane przez bibliotekę LibNFC. W dolnej części Flippera znajduje się antena na 13,56 MHz, a do pracy z kartą wystarczy położyć ją na górze. Na chwilę obecną pozostaje otwarta kwestia emulacji kart. Chciałbym mieć pełnoprawny emulator, taki jak , ale chciałbym również mieć możliwość pracy z LibNFC. Nie znam lepszego chipu niż NXP PN532, ale on nie może w pełni emulować kart. Jeśli znasz lepszą opcję, napisz o tym w wątku
125kHz RFID
Stare niskoczęstotliwościowe karty 125 kHz są nadal szeroko stosowane w systemach domofonowych, przepustkach do biur itp. Z boku Flippera umieszczona jest antena 125 kHz, która może czytać karty EM-4100 i HID Prox, przechowywać je w pamięci i emulować wcześniej zapisane karty. Można również przesłać ID karty do emulacji przez internet lub wpisać je ręcznie. Dzięki temu właściciele Flippera mogą zdalnie wymieniać się odczytanymi kartami. Fajnie.
iButton
iButton to stary typ kluczy kontaktowych, które wciąż są popularne w krajach WNP. Działają w oparciu o protokół 1-Wire i nie mają żadnych środków uwierzytelniania, dlatego mogą być łatwo odczytywane. Flipper potrafi odczytywać te klucze, przechowywać ID w pamięci, zapisywać ID na blankietach i emulować klucz samodzielnie, tak że można go przykładać do czytnika jak klucz. Tryb odczytu (master 1-wire)
W tym trybie urządzenie działa jako odczytnik drzwi. Przykładając klucz do styków, Flipper odczytuje jego ID i zapisuje w pamięci. W tym samym trybie można również nagrać zapisane ID na nośnik.Tryb emulacji klucza (slave 1-wire)
Zapisane klucze można emulować w trybie 1-wire slave. Flipper działa jak klucz, który można przyłożyć do odczytnika. Główna trudność polegała na wymyśleniu konstrukcji styków, która mogłaby jednocześnie działać jako odczytnik i klucz. Znaleźliśmy taką formę, ale jestem pewien, że można to zrobić jeszcze lepiej. Jeśli masz pomysł, podziel się nim na forum w temacie.
Bluetooth
Wbudowany w Raspberry Pi adapter Bluetooth. Oczywiście nie może on zastąpić urządzeń takich jak , ale całkowicie wspiera bibliotekę bluez, może być używany do zarządzania Flipperem ze smartfona lub do różnych ataków na Bluetooth, takich jak , umożliwiająca zbieranie sha256 z numerów telefonów komórkowych związanych z Apple ID, a także zarządzanie różnymi urządzeniami IoT.
Mikrokontroler o niskim zużyciu energii
Ponieważ Flipper jest zbyt fajny, by go wyłączać, postanowiliśmy włożyć do niego osobny mikrokontroler o niskim zużyciu energii, który będzie działał, gdy Raspberry Pi jest wyłączone. Będzie zarządzał tamagoczi, kontrolował proces bootowania Raspberry Pi do momentu, gdy będzie gotowy do obsługi ekranu oraz zarządzał zasilaniem. Będzie także obsługiwał chip CC1111 do komunikacji z innymi Flipperami.
Tryb tamagoczi
Flipper to cyber-delfin haker, który panuje nad wszystkimi cyfrowymi żywiołami. Gdy Raspberry Pi jest wyłączone, wchodzi w tryb tamagoczi, w którym można grać i znajdować przyjaciół na częstotliwości 433 MHz. W tym trybie prawdopodobnie częściowo będą dostępne funkcje NFC.
Prototyp postaci był inspirowany delfinem z filmu który pomógł wsadzić do głowy Keanu Reevesa i swoim polem rozbił złych facetów. Delfiny mają wbudowany generator częstotliwości, który bada wszystko wokół, a także wrodzoną potrzebę zabawy i naturalną ciekawość. Potrzebujemy osoby, która będzie w stanie wymyślić osobowość Flippera, cały projekt gry, od emocji po mini-gry. Wszelkie przemyślenia na ten temat można kierować do odpowiedniej sekcji.
O mnie
Nazywam się Pawel Żovner, mieszkam w Moskwie. Aktualnie kieruję moskiewskim . Od najmłodszych lat uwielbiam zgłębiać wszystko wokół: naturę, technologie, ludzi. Moja główna specjalizacja to sieci, sprzęt i bezpieczeństwo. Staram się unikać słowa „hacker”, ponieważ dzięki mediom i prasie straciło ono całkowicie na wartości. Lubię nazywać siebie „geekiem”, ponieważ to uczciwsze i mniej patetyczne oddaje sens. W życiu cenię zapalonych ludzi, którzy emocjonalnie angażują się w to, co ich interesuje, których również można by śmiało nazwać geekami. Flipper Zero to moja próba stworzenia czegoś naprawdę fajnego, rozległego i jednocześnie ładnego. Wierzę w open source, dlatego projekt będzie całkowicie otwarty. Obecnie mam mały zespół, ale brakuje nam kompetentnych osób w wąskich dziedzinach, zwłaszcza w radiu. Dzięki temu postowi mam nadzieję znaleźć ludzi, którzy chcieliby dołączyć do projektu.
Dołącz do projektu
Zapraszam wszystkich, którzy lubią ten projekt, do wzięcia udziału w rozwijaniu go na wszelkie możliwe sposoby. Na tym etapie musimy zatwierdzić ostateczną listę funkcji, aby rozpocząć realizację pierwszej wersji urządzenia. Jest wiele technicznych kwestii, które obecnie nie zostały rozwiązane.
Dla deweloperów
Wszystkie nasze aktualne zadania R&D będziemy omawiać na forum . Jeśli jesteś programistą sprzętu lub oprogramowania, lub masz jakiekolwiek pytania, porady, propozycje, krytykę — nie wahaj się ich umieszczać na forum. To główne miejsce, gdzie będą odbywać się dyskusje na każdym etapie rozwoju, crowdfunding, produkcji. Komunikacja na forum odbywa się tylko po angielsku, nie krępuj się pisać niezgrabnie, ważne, żeby sens był zrozumiały.
Zagłosować na funkcje
Bardzo ważne jest dla nas, aby wiedzieć, jakie funkcje powinny być w flipie. To wpłynie na priorytety w rozwoju. Może mylę się, sądząc, że niektóre funkcje są ważne, lub odwrotnie, pomijam coś. Na przykład mam wątpliwości co do iButton, bo to przestarzała technologia. Dlatego proszę, wypełnij krótki ankietę:
Prześlij pieniądze
Gdy prototyp będzie ukończony, a projekt gotowy do wejścia na platformy crowdfundingowe jak KickStarter, będzie można zapłacić za przedsprzedaż. W tej chwili możesz mnie osobiście wesprzeć małymi darowiznami na jedzenie przez . Regularne darowizny w wysokości 1$ są znacznie lepsze niż duża kwota na raz, ponieważ pozwalają przewidywać przyszłość. Link do darowizn:
Zrzeczenie się odpowiedzialności
Projekt jest na bardzo wczesnym etapie, na stronie mogą występować błędy, krzywe układy i inne problemy, dlatego nie krytykujcie zbyt surowo. O wszystkich znalezionych błędach i nieścisłościach proszę informujcie mnie. To pierwsze publiczne wspomnienie o projekcie, i mam nadzieję, że z waszą pomocą usunę wszystkie niedociągnięcia przed publikacją w dużych anglojęzycznych sieciach internetowych.
Wszystkie notatki dotyczące projektu publikuję na swoim kanale Telegram .
Źródło: habr.com
