Технологии
vc.ru

Flipper Zero — это ксерокс радиосигналов или «тамагочи для хакеров». Впечатления от устройства и доступные развлечения

Автор блога о технологиях Василий Зубарев (Вастрик) рассказал о недельном опыте использования.

Пару лет назад на Кикстартере мы всей гульбой вложились во флипперы и с тех пор активно их ждали. И вот, на прошлой неделе мой наконец-то дошел. Его зовут L4pi0b, что рифмуется с «********» (идиот — vc.ru), мне нравится.

В 2020 году, который, кажется, был вечность назад, Павел Жовнер с командой неплохо пошатал интернеты своим проектом Flipper Zero — карманного мультитула для хакеров. Тогда, вместо запрошенных $60 тысяч на разработку ребята собрали почти $5 млн, после чего знатно ******* (удивились — vc.ru) и решили делать всё по-взрослому — с компанией в Делавере и массовым производством в Китае.

Все шаги они весело, подробно и с картинками документировали в своём блоге, как и положено правильному хакерскому проекту.

Вообще, в 2020-м я поддерживал Флиппер на Кикстартере как раз потому что это был редкий по сегодняшним меркам проект выходцев из хакспейса, который дошел до стадии настоящего производства. Мне даже было пофиг получу ли я готовый девайс, я хотел поддержать идею, процесс и вообще дух хакспейсов.

Всегда так делаю и вам рекомендую. Инвестировать в людей с идеями — это добро.

Павел рассказывал, что идея Флиппера родилась когда он игрался с системами контроля доступа — чтением карточек «Тройка», ключей от домофонов, копировании RFID, и прочего. Они у себя в хакспейсе «Нейрон» (ныне закрытом) собрали свою собственную систему, которая пускала людей внутрь хоть по «Тройке» хоть по Apple Pay.

В детстве я и сам увлекался всякими универсальными ключами от домофонов, чтобы проникать на крыши и делать с них фотки, и пытался взломать интернет, насвистывая тональности модема в телефон свистком из чупа-чупса. Сейчас, конечно, бурная молодость прошла, зато я наконец-то и сам могу поддерживать тех, у кого она идёт полным ходом!

Не только же на игры в стиме деньги тратить.

Флиппер снаружи

Анбоксингов флиппера на YouTube уже целая гора, так что просто покажу всё как есть. Я взял белый, мне почему-то в этом цвете он нравился больше.

Кофе и отвертка в комплект не входят. Переходник на USB-C и SD-карта тоже, это я сам уже нашёл

Самое первое впечатление — а эта штука тяжелее, чем кажется. Будучи размером с толстую зажигалку, Флиппер весит больше 100 гр. Об этом Павел тоже уже шутил, что им предлагали сделать углубления под пальцы, чтобы отбиваться как кастетом. Или откидной ножик встроить. Ну, на случай, когда твой хакинг пошел не по плану.

Второе — он на удивление добротно собран для инди-проекта. Не люфтит, не скрипит, кнопки правильно кликают. Я не знаю как команда Флиппера находит себе таких перфекционистов в дизайне хардвара, но у них явно получается.

А уж как круто отрисована стилистика самого дельфина, пиксель-арт и вся история вокруг него — тут я точно хочу знать секрет.

Когда алиэкспресс завалят китайские подделки, уверен, у китайцев даже близко не получится повторить сборку.

В остальном, снаружи ********* (докопаться — прим. vc.ru) не до чего. Пойдем смотреть что внутри.

Флиппер внутри

По фичам отсыпали как и обещали. Ребята публиковали подробнейшие спеки и даже схемы хардвара на протяжении всех двух лет разработки. В комплекте есть:

  • ИК-порт, чтобы выключать телевизоры в Макдональдсе.
  • USB-C для зарядки и обновлений, а так же запуска BadUSB-скриптов.
  • Читалка и писалка ключей от домофонов, довольно прикольно задизайненая.
  • Набор GPIO пинов для программирования и подключения сторонних плат расширения.
  • NFC/RFID, чтобы читать всякие карточки.
  • Радио-антенна, чтобы читать и посылать радиосигналы, например открывать Теслам лючки зарядки (будет ниже).
  • Блютус, но я пока не нашел для чего он мог бы пригодиться.
  • Неочевидные плюшки: спикер-пищалка как на старых нокиях, под который даже можно писать мелодии, и вибромоторчик, применения которому я пока не придумал.
  • Батарейка на 2000 mAh, которая держит неделю.

Ребята прикольно постарались сделать так, чтобы экран Флиппера никогда не выключался (только подсветка) — как у настоящего тамагочи. Он лежит на столе и там постоянно сидит дельфинчик.

Картинка с офсайта flipperzero.one

Управляет всем этим добром маленький STM32-микроконтроллер, под который написана своя операционка. По сути это Arduino, оно даже совместимо с Arduino IDE.

Теперь по больному: у флиппера нет Wi-Fi.

Скорее всего его просто невозможно было хорошо туда засунуть, не убив энергопотребление и не раздув размеры корпуса до неприятных. Вроде как скоро будет Wi-Fi-модуль аддоном, вставляющийся сверху в GPIO-пины, но это, конечно, не то.

Как по мне, будь у Флиппера Wi-Fi, идею с «тамагочи» можно было бы повернуть прям на порядок круче. Например, для Pi Zero есть проект Pwnagotchi (которым явно где-то под капотом вдохновлялись), у которого одна из главных идей геймификации состоит в том, что ты должен «кормить» своего тамагочи новыми WiFi-сетями. Ходишь по городу, собираешь хендшейки, а потом дома он автоматически пытается их для тебя взломать.

Такого тамагочи правда хочется носить с собой по улицам и кормить хендшейками, не только потому что он иначе грустит и жалуется, а еще и потому что бонусом он приносит тебе карту взломанных WiFi сетей с паролями. Кайф же.

Думаю, команде Флиппера (или вам, читающие меня инди-хацкеры) можно подумать об отдельной версии Flipper WiFi, из которой можно спокойно выпилить всё остальное, но усилить геймификацию с «кормёжкой» дельфина.

Сейчас же тамагочи-функции Флиппера весьма скудны и сделаны скорее как дань истории — ведь идея Флиппера началась когда Павел припаял радио-антенну к обычному тамагочи.

Функции, сразу доступные в стоковой прошивке

У дельфина есть имя, настроение и левел, который можно качать якобы используя разные функции Флиппера в бою. Это крутая идея для онбординга и мотивации новичков, но понять как она работает сейчас решительно невозможно.

А вот именно мультитуловые функции Флиппера работают отлично. Только для полноценного хакинга нужно сначала погрузиться в мир алтернативных прошивок.

Главный экран с дельфинчиком и навигация с него

Об альтернативных прошивках, законности и опенсорсе

Когда выпускаешь «хакерский» девайс на массовый рынок, естественно, встаёт вопрос регуляций, сертификации и законности использования частот в разных странах.

Как можно догадаться, это полнейший цирк и зоопарк. Не знаю каким чудом ребятам удалось разобраться во всех необходимых сертификациях и получить комплаенс для импорта почти во все страны мира.

Без потерь не обошлось. В разных странах Флипперу пришлось программно зарезать некоторые частоты — в США запрещены одни, в ЕС другие, в России третьи. Это ******** (плохо — vc.ru), зато флипперы тогда можно продавать легально.

Хорошая же новость в том, что на гитхабе лежит целый набор «альтернативных» прошивок, где все эти ограничения удобно нахрен выпилены. Самая популярная — от RogueMaster (вот список остальных).

Приложенька для обновления Флиппера (в том числе и на сторонние прошивки) весьма простая и позволяет делать всё за пару кликов, а не как обычно с sudo dd if=... of=...

По сути это форк официальной прошивки с дополнительными приложениями типа баркод генератора, играми типа танчиков и 2048, ну и возможностью, скажем так, гибко настроить региональные ограничения частот.

Слава опенсорсу. Теперь нас всех точно найдут и посадят.

Флиппер явно будет делать большую ставку именно на софт и плагины от коммьюнити в будущем. Стоковая же прошивка будет чистой для регуляторов, чтобы те не придирались к самим разработчикам.

К сожалению, документация пока крайне скудна, некоторые разделы недописаны, а доков по операционной системе Флиппера (а она там совсем своя кастомная) мне найти не удалось. Так что есть теория, что доступный на данный момент софт пишут в основном «свои».

Писать всё надо на чистом С, так что без хороших примеров и документации заонбордить новичков будет тяжело.

Хотя у меня уже появилась пара идей для приложений — генератор TOTP паролей с автоматический вставкой их через BadUSB (aka Yubikey) и хранилище ключей от крипты (aka Ledger). Но чую я пока не найду в себе силы разбираться с местным С. Вот бы подкатить туда транспайлер питончика :3

Веселимся

Хватит теории про спеки и прошивки, давайте тестировать в деле.

Флипперное веселье только начинается, ведь пока даже не все получили свои гаджеты, ютюберы заняты в основном анбоксингами, а значит полезных приложений в экосистему пока не написали.

У меня самого флиппер всего неделю, я сам еще нуб, потому за полноценный обзор этот пост я бы не считал. Я начал свою неделю с того, что пошел смотреть что делают другие на официальном сабреддите r/flipperzero и качать плагинчики по ссылкам из Awesome Flipper.

Первая веселуха для новичков — Тесла Хак. На всех моделях Теслы используется специальный нешифрованный сигнал для открытия лючка зарядки. Чтобы когда подносишь «пистолет» зарядки к тесле — он автоматически открывается и добавляет больше поводов для ******** (хвастовства — vc.ru) в жизнь тесловода.

Дампы этого сигнала можно скачать прям с гитхаба и просто положить на SD карту самого флиппера. Я проверил, 100% встреченных тесел открывается, все три модели. Работает даже на стоковой прошивке, нужно только скачать правильную частоту для вашего региона — теслы из EU используют отличные от тесел из US частоты.

В Берлине все Теслы официальные EU, так что проблем не было, но если в вашей стране нет официальных продаж, а Теслы наимпортировали отовсюду — скорее всего придется перебирать несколько сигналов.

Второе веселье — выключать телевизоры в макдональдсах.

Примерно как в старые добрые времена мы игрались с универсальными пультами от ТВ на КПК в 2008-м. У меня даже на МАЕМО было такое приложение и ИК-порт :)

Если вставить во Флиппер SD карту и синхронизировать «базы» в их родном приложении, то в приложеньке TV Remote появится воистину универсальный пульт, который перебирает дамп из сотен моделей ТВ подряд по какой-нибудь не сработает. Для макдональдсов идеально.

Своё видео не снимал, вот вам тиктоки из интернета.

Третья топ-веселуха на старте — это эмулировать фигурки Amiibo для консолей Nintendo Switch или DS. Amiibo — это такой аналог платных DLC-персонажей в мире нинтендо. Вы можете купить в магазине фигурку нового персонажа (прям физическую), а потом приложить её к своей консоли и персонаж появится у вас в игре.

Всё это работает по обычному NFC, конечно же, никак не защищенному от копирования. С флиппером вы можете просто скачать себе дампы таких фигурок и воспроизвести их рядом с консолью. Теперь вы пират, поздравляю.

Кстати, просто прийти в магазин и насканировать себе Amiibo с полок не получится, Nintendo специально проклеивает коробки фольгой от таких хитрецов. Проверено!

Дальше уже приходится выдумывать себе веселье самому. Я живу в техно-пессимистичной стране, так что у меня в доме не так много девайсов, которыми можно управлять дистанционно. Кондея нет, вместо ключей от домофона просто кнопки с фамилиями, а шлагбаумы немцы обычно закрывают на простой советский навесной замок :)

Никакого веселья в этой Германии! Но если у вас что-то такое есть — идите пробовать и расскажите в комментах, если получится.

Бегаю за псом, пытаюсь найти и прочитать его чип. К сожалению, в этой версии прошивки, Флиппер не умеет читать чипы животных. Говорят, добавят в следующей

На реддите ребята развлекаются клонируя себе карточки от отелей и сигналы открытия гаража в домах у друзей и родителей (но у нас нет дома).

Лет 10 бы назад я бы записал на него весь набор универсальных домофоновых ключей от Новосибирска и ********* (украденные — vc.ru) карточки сотрудников офисов IT-компаний, чтобы ходить к ним на крышу без палева. Но сейчас мы слишком стары для этой ******* (ерунды — vc.ru).

Потому я в основном продолжаю мониторить гитхаб и реддит на предмет всяких веселых приложений от коммьюнити.

upd: Павел прислал пруф, что возможность читать животных будет прям вот уже

Главный враг Флиппера: Rolling Codes

Главная сила Флиппера — он может ловить и воспроизводить сигналы. Флиппер — это ксерокс для радиосигналов. Но как можно догадаться, у злоумышленников такие же «ксероксы» были уже много десятилетий. И производители тех же автомобилей или гаражей давно придумали как от защищаться от такого прямого копирования и воспроизведения сигнала открытия.

Решением стали Скользящие Коды (я не нашел православно-верного перевода термина Rolling Code, так что пусть будут cкользящие) — это очень похоже на двухфакторную аутентификацию, которую вы, я надеюсь, используете на всех сайтах. Это когда вас просят кроме пароля еще и набрать некий код, который меняется каждые 30 секунд по неизвестному алгоритму (правда TOTP в вебе чуть сложнее, ибо требует синхронизации часов на сервере и клиенте, а в пультах точных часов обычно нет, потому там используются более простые алгоритмы, но кому эти гиковские подробности интересны вообще).

Абсолютно все автомобили примерно с 2002 года выпуска открываются и закрываются только с помощью rolling-кодов. На каждый клик брелок генерирует новый код, так что перехватить однажды использованный сигнал и втупую его воспроизвести Флиппером у вас не получится. Нужно именно знать алгоритм (точнее seed) по которому генерируются следующие коды.

Именно поэтому вам всегда нужно «прописывать» новые ключи в «память» автомобиля и обычно там есть ограничение по количеству, типа три максимум. «Прописывание» ключа синхронизует тот самый seed с компьютером авто и отныне брелок знает по какому правилу генерировать новые коды. Потому он и открывает только ваше авто, а другие не открывает.

Теперь мы стали немножечко умнее!

Тот же самый метод используют и любые другие девайсы, в которых важна безопасность. Например, гаражные двери или даже некоторые радио-пульты от домашних девайсов.

Ключ от буси определяется сканером, но любая попытка записать и воспроизвести (даже на анлоченой прошивке), очевидно, проваливаются. Автомобили довольно хорошо защищены от таких вот глупых атак. А еще я сломал этот ключ пока игрался, придётся ехать перепривязывать его заново, кек

Флиппер из коробки не умеет и никогда не будет даже пытаться встраивать какой-либо софт для хакинга rolling-кодов. Такой софт в теории есть, но это слишком палевно. Разрабов моментально возьмут за жопы, а Флипперы и так весьма тяжело хотели пускать в некоторые страны. Так что ждите в альтернативных прошивках.

Так что когда Флиппер видит rolling-код, он просто не даст сохранить такой сигнал и покажет иконку-замочек. А такую иконку вы будете видеть часто :)

Существует множество способов «взломать» зашиту через rolling code. Самый популярный и прикольный из них — это Jamming, то есть подавление сигнала и воспроизведение его с опозданием. То есть злоумышленник ставит «глушилку», хозяин подходит к машине, жмёт на кнопку брелка, а машина его не слышит, ведь глулишка засрала все частоты своим шумом.

В это же время сканер может сохранить и записать код, посланный брелком, но не услышанный машиной.

Хозяин думает, что он просто не так нажал и что он делает на автомате? Конечто же, жмёт на брелок еще раз. В этот момент злоумышленник получает второй валидный rolling-код, но использует первый, чтобы открыть машину.

Теперь у нас есть целый ОДИН валидный неиспользованный код, который мы можем просто придержать у себя и подождать пока хозяин доедет до дома, чтобы открыть им машину.

Но всё это требует дополнительного оборудования, так что конечно же, есть и другие способы угадывания сида по набору rolling-кодов, которые вам удалось собрать. Софтина Kaiju как раз самая популярная для этого, так что мне кажется стоит только подождать пока кто-то напишет мануал как читать ей дампы с флиппера.

Но на данный момент ничего такого даже близко нет и готовьтесь сосать писос в любой ситуации, отличной от выключения ТВ в Макдаке и открытии бензобаков у Тесел.

Дарю бесплатный способ сделать так, чтобы ваши друзья вас возненавидели. Обычно брелок и машина синхронизируют между собой список из примерно 255 следующих rolling-кодов. Это буфер на случай, если вы вдруг нажмёте на брелок у себя дома и как бы «используете» один из кодов, а машина об этом не будет знать, то вы сможете открыть её следующим кодом, а не проходить через нудный процесс синхронизации заново. Так вот если втихоря нажать на кнопку брелка примерно 255 раз, пока машина вне зоны доступа, то в теории вы можете исчерпать буфер и данный ключ перестанет открывать машину вообще. Не благодарите. Не пробуйте.

Надо ли оно вам?

FOMO уже заразил всех и в твиттере меня много просили рассказать стоит ли бежать покупать себе Флиппер или нет.

Лично для меня ответ всегда был прост: если не знаешь зачем тебе что-то нужно — не бери.

Но наше FOMO такой ответ не устраивает. Так что разберём поподробнее.

Флиппер — новый и весьма нишевый девайс для весьма узкой аудитории. Лишь единицы каких-нибудь сесурити-пен-тестеров будут его реально использовать для дела. Если вы входите в эти единицы — скорее всего вы уже купили его и положили рядом со своими HackRF, Proxmark и прочей коллекцией Pi Zero.

Даже я сам сейчас скорее вхожу в те 90%, для которых Флиппер будет очередной игрушкой в тумбочке. Но как и говорил выше — моя цель была поддержать ребят и движуху, а получить Флиппер для меня стало скорее бонусом.

Кому точно стоит брать флиппер:

  • Гикам, любящим странные гаджеты.
  • Тем, кто хочет поддерживать независимые проекты и хакерскую тусовку.
  • Людям, у кого действительно проблема с пультами и хочется хранить их все в одном месте. На реддите таких оказалось весьма много, но в основном, конечно, американцы со своими кондеями, поливайками газонов и гаражами.

Хотя условному москвичу, который хочет киберпанково из кустов охотиться на шлагбаумы во дворе как в Watch Dogs, может быть и весело.

Кому не стоит брать флиппер:

  • Всем остальным. Если у вас заранее нет идей зачем вам такая штука, после покупки они магическим образом не появятся :)

Ну а успокоить себя всегда можно тем, что после Flipper Zero, ребята уже запланировали делать Flipper One, который станет Raspberry Pi чуть ли не полноценным кумпуктером на линуксе с WiFi, HDMI и 512 Mb RAM.

Давайте теперь ждать его!

Telegram-канал Вастрика.