О Флиппере

2022-09-18

Наконец-то я добрался до своего Flipper Zero. Его зовут L4b4tle (Лабатл? Лфобфотл?). Я уже прокачал его до второго лвла.

знакомство

лвл 2

Flipper Zero — это широко известный в узких кругах сверхуспешный кикстартерный долгострой. В далёком 2020 русские ребята открыли кампанию на Kickstarter. Запросили $60k. Получили $4.8M. Решили, что это достаточно много, чтобы сделать всё по-взрослому. Поэтому теперь у Flipper Devices Inc. штаб-квартира в США, а производство налажено в Китае. И поставляют Флипперы по всему миру. Многие нелёгкие детали этого процесса подробно изложены на Хабре.

Flipper Zero — это хакерский мультитул. Как плоскогубцы, пилочки, ножи и кусачки. Только для софтверных хакеров. Перехват, чтение и воспроизведение радиосигналов, карточек и ключей доступа. В одном маленьком карманном устройстве. Про это уже немного написал Вастрик. Я чуток дополню.

мультитул

Я пропустил кампанию на Кикстартере. Не потому, что не заметил. А потому, что не знал, нужен ли мне такой девайс. А потом решил, что таки нужен (зачем, об этом чуть позднее). Но Кикстартер тогда уже закончился. И я оказался в числе тех, кто оформил предзаказ уже на официальном сайте. В августе 2021 заплатил $10 за предзаказ. В декабре 2021 оплатил уже полную стоимость заказа: сам Флиппер со скидкой в $50, чехольчик и доставка. И вот, в августе 2022, мы встретились. Я уже говорил, что это долгострой? :)

В комплект поставки входит сам Flipper Zero, USB type-A – type-C шнурок, и небольшая инструкция. Плюс мой чехольчик (очень полезен, если таскать Флиппер в кармане). Нужно ещё купить правильную SD карту. Флиппер хранит на карте почти всё, что можно хранить на карте. Базы данных, сохранённые сигналы и последовательности, всё. Поэтому SD карта обязательно нужна.

А потом нужно поставить официальное приложение, и обновить прошивку. Приложение очень симпатичное. Под Linux поставляется в виде AppImage, скачал и сразу запускаешь. Кроме обновления прошивки можно делать «скриншоты» (да и вообще полностью управлять Флиппером) и скачивать/заливать файлы во внутреннее хранилище Флиппера и на SD карту. Учтите только, что в качестве кард-ридера Флиппер очень плох, там очень небыстрый доступ к карте.

приложение

Есть и мобильное приложение. Подключается к Флипперу через блутуф. Через него тоже можно обновлять прошивку (начиная с какой-то недавней версии прошивки, то, что идёт с завода, нужно будет в первый раз обновить через USB) и синхронизировать содержимое SD карты. А ещё можно делиться записанными ключами.

мобильное приложение

Так. Что может Флиппер и зачем он мне нужен?

Пройдёмся по главному меню.

главное меню

Sub-GHz — это приложение (каждый пункт меню во Флиппере запускает приложение) для чтения, записи и воспроизведения цифровых радиосигналов на частотах 433 или 868 мегагерц (в Европе и СНГ). На 433 мегагерцах работают автомобильные сигнализации, пульты шлагбаумов, беспроводные звонки. Почти всё бытовое радио, которое не вайфай или блутуф.

Если у вас, допустим, есть пультик открывания шлагбаума, то всё просто. Сначала запускаете на Флиппере Frequency Analyzer. И жмёте кнопочку пультика. Так вы узнаете точную частоту. Потом запускаете чтение сигнала на нужной частоте. Тут вам нужно будет перебрать четыре возможных варианта модуляции сигнала, которые поддерживаются чипом CC1101, что стоит во Флиппере. Если повезёт, Флиппер расшифрует сигнал и вы сможете его сохранить. А потом повторить. Так у вас появится дубликат ключа во Флиппере.

У меня пультика нет. Зато есть шлагбаум, который я очень хочу научиться открывать. Въезд на парковку с задней стороны офиса. Не то, чтобы я собираюсь там парковаться каждый день, но на случай экстренной необходимости очень даже пригодится. Поймать сигнал из окон офиса в 100 метрах от шлагбаума не получается. Нужно организовывать патрулирование ближе :)

Пытался поймать сигнал своей автосигнализации. Безуспешно. Флиппер не обучен его пониманию. Там, похоже, даже частота разных посылов немного разная. Это хорошо. Зато ловил сигналы чьих-то других сигнализаций. Флиппер не даёт их сохранять, потому что там используются rolling code. Рисует замочки и не даёт сохранять. Потому что повторять эти сигналы бессмысленно, не сработают.

Тем не менее зарядные лючки Теслы Флиппер открывать умеет. Для этого нужно скачать уже заранее записанную последовательность и положить её на SD карту. Осталось только найти Теслу :)

125 kHz RFID — это приложение для чтения и эмуляции так называемых низкочастотных (LF) RFID меток. Чаще всего это такие белые карточки-пропуска или кругленькие ключи от домофонов в пластиковом корпусе, которые прикладываются. Таких меток вокруг оказалось очень много. Ключ от офиса, ключи от домофонов, карточка-пропуск в фитнесс. Так что теперь у меня есть бэкапы всех этих карточек. Один раз это даже пригодилось, когда два настоящих ключа от переговорки оказались заперты в самой переговорке. Учтите, что копии ключей от домофона будут просто работать, а вот ключ от фитнесса будет работать только если у владельца ключа есть деньги на счету :) Ещё Флиппер умеет записывать RFID карты, если найдёте «болванку», на которую можно записать.

RFID

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

Infrared — ИК пультик. В современных телефонах ИК порт встречается крайне редко. Вот вам теперь Флиппер, чтобы не забывать, как это удобно, иметь под рукой программируемый ИК передатчик.

В комплекте идёт «универсальный» ИК пульт для телевизоров. Кнопка включения/выключения, кнопка мути, регулировка громкости и переключение каналов. А в файлике на SD карте записаны по 100500 кодов на каждую кнопочку. Их так много, что при передаче их всех отображается индикатор прогресса. И можно остановить передачу, если код уже сработал. Однако, для попавшихся на пути умных телевизоров, срабатывало только включение, и больше ничего. Но это не страшно, можно записать нужные коды и ручками добавить в файлик.

TВ пультик

ИК пультики во Флиппере отображаются «на боку», потому что при их использовании удобнее держать Флиппер вертикально.

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

TB Philips

С кондиционерами (и, вероятно, со всеми другими пультами с дисплеем, например, у меня у робота-пылесоса такой) всё сложнее. Об этом тоже было написано в блоге. Пульт от кондиционера передаёт не код нажатой кнопки. Он передаёт всё состояние пульта: режим работы, температура, влючен ли swing и всё такое. Всё одним большим пакетом при нажатии любой кнопки. Флиппер может лишь записать весь этот пакет целиком. Но это же и хорошо. Наконец-то во Флиппере у меня есть правильная кнопка «Включить охлаждение до 25 градусов с вентилятором на автомате и включенным swing». Одна. Кнопка. Правда, на работе оказалось аж три разновидности несовместимых друг с другом кондиционеров. И, наверное, показания часов на пульте тоже передаются в этом ИК пакете, а значит, включение кондиционера с Флиппера сбрасывает на нём часы. Если это важно.

правильный пульт кондиционера

GPIO — General Purpose Input/Output. Некоторые ножки микроконтроллера Флиппера любезно выведены наружу. К Флипперу можно подключать хардварные модули. Как минимум есть Wi-Fi карточка, официально предназначенная только для удалённого дебага. В меню можно подёргать пины и включить/отключить питание на выводах.

GPIO меню

iButton — это чтение и эмуляция тех самых ключей-таблеток для домофонов. Всё очень подробно, опять-таки, описано в блоге. Некоторые виды ключей можно и писать на болванку (примерно это и делают, когда вы копируете ключ от домофона в мастерской изготовления ключей). Если вы знаете ID мастер-ключа, можно и его сэмулировать, ID можно ввести вручную. У меня во Флиппере теперь хранятся бэкапы всех ключей от домофонов, которые у меня дома завалялись. Некоторые я даже не помню, от какой квартиры :)

Bad USB. Флиппер умеет представляться любым USB устройством. И слать любые USB последовательности. Чтобы сделать что-нибудь плохое. Или хорошее. Вот в этом меню можно выбрать на выполнение какой-нибудь из заранее заготовленных сценариев. В штатной поставке есть два сценария с USB клавиатурой для атаки на MacOS или Windows. Если посмотреть на другие сценарии, то видно, что всё, в основном, сводится к запуску чего-нибудь в терминале. Хотя вот подбор пин-кода на Android выглядит более полезным :) Ну почему бы и нет, если можно подключить USB клавиатуру и есть длинный сценарий, который тупо и механично вводит все доступные четырёхциферные комбинации...

U2F — это Universal 2nd Factor. Вообще не знал про эту штуку, пока не заполучил Флиппер. Это такой стандарт для второго фактора аутентификации, где второй фактор представлен физическим устройством. Это устройство чаще всего называют Security Key (или Token). Это USB брелок с кнопочкой. Он хранит в себе приватный ключ и осуществляет обработку challenge запросов от приложения, которое запрашивает аутентификацию. А кнопочка нужна, чтобы в момент аутентификации убедиться, что тут рядом находится живой человек, вероятно, владелец брелка. Вот Флиппер и работает таким брелком. Пока только через USB, хотя в стандарте предусмотрена работа через Блутуф и NFC, чтобы и в мобильных приложениях тоже можно было бы так авторизоваться. И кнопочку на Флиппере тоже нужно нажимать. Я проверил, в Гугле, на ГитХабе, в Cloudflare и Twitter такой способ двухфакторной аутентификации есть и работает, как минимум в Chrome.

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

Bluetooth Remote. Флиппер работает как блутуф клавиатура или мышь. Да, через блутуф он тоже может представляться разными устройствами. Клавиатура, конечно, условной степени удобности. Но вот её вариант с клавишами управления воспроизведением могут помочь в переключении треков в телефоне. А вариант Keynote может быть полезным для презентаций.

клавиатура для презентаций

блутуф клавиатура

клавиатура для плеера

блутуф мышка

Music Player. Во Флиппере есть пищалка. Довольно приличная пищалка. Она даже может играть монофоническую мелодию. И можно качать рингтоны. Чтобы пищало, как телефоны двадцать лет назад.

плеер

Snake Game. Смотрите, экранчик с янтарной подсветкой, почти как на моём Siemens ME45 2001 года выпуска. Ну ладно, в Сименсе экран был 101x80 пикселей, а во Флиппере — 128x64. Рингтоны есть. Конечно же тут должна быть «Змейка». Чтобы олскулы окончательно свело. И она есть!

Змейка

Итого. У меня во Флиппере забэкаплены все ключи от офисов, от домофонов. Забиты команды включения сразу в правильный режим для всех кондиционеров дома и в офисе. И, на всякий случай, самые важные кнопки пультов телевизора и роботопылесоса. Я использую Флиппер как U2F токен. Всё ещё не теряю надежды поймать сигнал открывания шлагбаума возле офиса. И вообще, есть ещё парочка шлагбаумов, которые меня раздражают.

Под Флиппер можно пописать софт. Флаппи Бёрд и Тетрис уже портировали. А оффлайнового динозавра — пока нет. Надо заняться. Вообще, большой список всяких аддонов — здесь.

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

Кстати, то, что написано на чехольчике, на коробочке, и что иногда выкрикивает сам Флиппер — フリッパー это действительно слово «Флиппер», написанное японской катаканой. Ну и Флиппер — это герой-дельфин из фильмов и сериалов из шестидесятых. Умный дельфин.

フリッパー

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

Обзаведётесь Флиппером, обязательно почитайте начальные разделы документации. Там описаны неочевидные способы навигации. Оказывается, во Флиппере есть встроенный браузер по сохранённым файлам. И ссылки на самые востребованные файлы можно поместить в Favorites меню, доступное сразу по клавише «вниз». Таким образом, «воспроизвести» нужные ключи возможно действительно быстро.

навигация