Хабрахабр

Flipper Zero — пацанский мультитул-тамагочи для пентестера

Flipper Zero — Multi-tool Device for Hackers

А еще это тамагочи, в котором живет кибер-дельфин. Flipper Zero — проект карманного мультитула на основе Raspberry Pi Zero для пентеста IoT и беспроводных систем контроля доступа.

Он будет уметь:

  • Работать в диапазоне 433 MHz — для исследования радиопультов, датчиков, электронных замков и реле.
  • NFC — читать/записывать и эмулировать карты ISO-14443.
  • 125 kHz RFID — читать/записывать и эмулировать низкочастотные карты.
  • iButton ключи — читать/записывать и эмулировать контактные ключи, работающие по протоколу 1-Wire.
  • Wi-Fi — для проверки защищенности беспроводных сетей. Адаптер поддерживает инъекции пакетов и мониторный режим.
  • Bluetooth — поддерживается пакет bluez для Linux
  • Режим Bad USB — может подключаться как USB-slave и эмулировать клавиатуру, ethernet-адаптер и другие устройства, для инъекции кода или сетевого пентеста.
  • Тамагочи! — микроконтроллер с низким энергопотреблением работает, когда основная система выключена.

Это попытка объединить все часто необходимые инструменты для физического пентеста в одно устройство, при этом добавив ему личность, чтобы он был милым до усрачки.
В данный момент проект находится на стадии R&D и утверждения функционала, и я приглашаю всех поучаствовать в обсуждении функций или даже принять участие в разработке. Я с волнением представляю свой самый амбициозный проект, идею которого я вынашивал много лет. Под катом подробное описание проекта.

Зачем это нужно?

Я люблю исследовать все вокруг и постоянно таскаю с собой разные инструменты для этого. У меня в рюкзаке: WiFi-адаптер, NFC-ридер, SDR, Proxmark3, HydraNFC, Raspberry Pi Zero (из-за этого бывают проблемы в аэропорту). Всеми этими приборами не так просто воспользоваться на бегу, когда у тебя в одной руке чашка с кофе или ты едешь на велосипеде. Нужно сесть, разложиться, достать компуктер — это не всегда удобно. Я мечтал об устройстве, которое бы реализовывало типичные сценарии атак, было всегда в боевой готовности и при этом не представляло из себя пачку разваливающихся плат, смотанных изолентой.

Raspberry Pi Zero W с батарейным шилдом UPS-Lite v1.0 в качестве автономного флудера для рассылки картинок на устройства Apple по AirDrop

Потом я захотел автоматизировать этот процесс и сделал автономную дик-пик машину из Raspberry Pi Zero W и батарейки. Недавно, после того как была опубликована открытая реализация протокола AirDrop owlink.org и исследование от ребят из HexWay об уязвимостях iOS Apple-Bleee, я стал развлекаться новым для себя способом: знакомиться с людьми в метро, рассылая им картинки через AirDrop и собирая их номера телефонов. Все бы хорошо, но этот девайс было крайне неудобно носить с собой, его нельзя было положить в карман, потому что острые капли припоя рвали ткань штанов. Эта тема заслуживает отдельной статьи, которую я никак не могу дописать. Я попробовал напечатать корпус на 3d-принтере, но результат мне не понравился.

Можно быстро сгенерировать картинку, подходящую по ситуации, выглядит это примерно так.
Отдельное спасибо Ане koteeq Просветовой, которая по моей просьбе написала Telegram-бота @AirTrollBot, который генерирует картинки с текстом, телеграм-ником и правильным соотношением сторон так, что они полностью отображаются на превью при посылке через Airdrop.

Pwnagotchi в сборе с e-ink экраном и батарейным шилдом
Потом я увидел потрясающий проект pwnagotchi. Это как тамагочи, только в качестве еды он ест WPA-хендшейки и PMKID от Wi-Fi сетей, которые потом можно брутить на GPU-фермах. Мне так понравился этот проект, что я несколько дней ходил со своим pwnagotchi по улицам и смотрел как он радуется новой добыче. Но у него были все те же проблемы: нельзя нормально положить в карман, нет органов управления, поэтому любой пользовательский ввод возможен только с телефона или компьютера.
И тогда я наконец понял, каким вижу идеальный мультитул, которого мне не хватало. Я написал об этом в твиттер и идея понравилась моим друзьям промдизайнерам, которые делают серьезные электронные штуки. Они предложили сделать полноценный девайс, вместо наколенной DIY-поделки. С настоящим фабричным производством и качественно подогнанными деталями. Мы приступили к поиску концепции дизайна.

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

Что такое Flipper Zero


По сути Flipper Zero это несколько шилдов и батарейка вокруг Raspberry Pi Zero, упакованные в корпус с экранчиком и кнопками. В качестве ОС используется Kali Linux, так как он уже содержит все необходимые патчи и из коробки поддерживает rpi0. Я смотрел на много разных одноплатных компьютеров: NanoPi Duo2, Banana Pi M2 Zero, Orange Pi Zero, Omega2, но все они проигрывают rpi0 и вот почему:

  • Встроенный Wi-Fi адаптер, поддерживающий мониторный режим и инъекции пакетов (nexmon патчи)
  • Встроенный Bluetooth 4.0
  • Достаточно хорошая 2.4 Ghz антенна
  • Официально поддерживается Kali Linux и имеет множество готовых сборок вроде P4wnP1 A.L.O.A.
  • Легкий доступ к SD-карте, можно быстро передать большой объем данных

Наверняка многие скажут, что Raspberry Pi не лучший выбор для такого устройства и найдут множество аргументов, например высокое энергопотребление, отсутствие спящего режима, не открытые железо и т.д. Но если сравнивать все минусы и плюсы, ничего лучше rpi0 я не нашел. Если у вас есть что сказать по этому поводу, добро пожаловать на форум разработчиков forum.flipperzero.one.

Из меню можно вызвать типовые сценарии атак. Flipper Zero полностью автономный и может управляться с помощью 5-и позиционного джойстика без дополнительных устройств, таких как компьютер или телефон. Разумеется не все можно сделать с помощью джойстика, поэтому для большего контроля можно подключиться по SSH через USB или по Wi-Fi/Bluetooth.

Во первых это просто круто, монохромный экранчик с оранжевой подсветкой вызывает у меня неописуемый восторг, эдакий ретро-милитари-киберпанк. Я решил использовал олдскульный монохромный LCD-дисплей с разрешением 126х64px как на старых телефонах Siemens. Поэтому его можно держать в Always-On режиме и всегда выводить изображение. Его прекрасно видно на ярком солнце и у него очень низкое энергопотребление, около 400uA с выключенной подсветкой. Подсветка будет включаться только при нажатии на клавиши.

Примеры экранчиков на телефонах Siemens

На текущий момент мы выбрали этот экран. Такие экраны до сих пор выпускают для всяких промышленных устройств и кассовых аппаратов.


Порты Flipper Zero
На торцах Flipper Zero имеет стандартные порты Raspberry Pi, кнопку включения/подсветки, отверстие для ремешка и дополнительный сервисный порт, через который можно получить доступ к UART-консоли, зарядить батарею, залить новую прошивку.

433 MHz трансмиттер

Он может перехватывать и анализировать сигналы радиопультов, брелков, всяких умных розеток и замков. Flipper имеет встроенную антенну на 433 MHz и чип CC1111, для работы в диапазоне <1GHz, такой же, как в популярном устройстве Yard Stick One. Для случаев, когда Raspberry Pi не успевает обработать сигнал, работу CC1111 может контролировать встроенный микроконтроллер. Поддерживает работу с библиотекой rfcat и умеет декодировать, сохранять и воспроизводить популярные коды пультов, подобно ПДУ анализатору. В режиме тамагочи Flipper может общаться с себеподобными и отображать их имена, как это делает pwnagotchi.

Bad USB


Flipper может эмулировать USB-slave устройства и прикидываться клавиатурой для залива пейлоада, подобно USB Rubber Ducky. А также эмулировать ethernet-адаптер для подмены DNS, последовательный порт и т.д. Для Raspberry Pi есть готовый фреймворк, реализующий различные виды таких атак github.com/mame82/P4wnP1_aloa
Нужный сценарий атаки можно выбрать из меню джойстиком. При этом на экране может выводится отладочная информация о состоянии атаки или же что-то безобидное для маскировки.

WiFi


Встроенный в Raspberry Pi адаптер Wi-Fi изначально не поддерживает мониторный режим инъекции пакетов, но есть сторонние патчи, добавляющие эту функцию. Для некоторых видов атак нужно два независимых Wi-Fi адаптера. Сложность заключается в том, что почти все Wi-Fi чипы подключаются по USB, а мы не можем занять единственный USB на rpi0, иначе сломается режим USB Slave. Поэтому необходимо использовать интерфейс SPI или SDIO для подключения Wi-Fi адаптера. Мне неизвестно ни одного такого чипа, который поддерживает мониторный режим и инъекцию пакетов из коробки, при этом подключается НЕ по USB. Если вы знаете такой, подскажите, пожалуйста, на форуме в теме Wi-Fi chip with SPI/SDIO interface that supports monitoring and packet injection

NFC

Flipper Zero — модуль для чтения NFC-карт

Поддерживается библиотекой LibNFC. NFC-модуль умеет читать/писать все ISO-14443 карты, в том числе Mifare, банковские бесконтактные карты PayPass/PayWave, ApplePay/GooglePay и прочее. На данный момент остается открытым вопрос эмуляции карт. В нижней части Флиппера есть антенна на 13,56 MHz, и для работы с картой его достаточно положить на нее сверху. Я не знаю вариантов чипа кроме NXP PN532, но он не может полноценно эмулировать карты. Хотелось бы полноценный эмулятор вроде Chameleon Mini , но при этом хочется иметь возможность работать с LibNFC. Если вы знаете вариант лучше, напишите об этом в теме Looking for better NFC chip than PN532

125kHz RFID

Flipper Zero 125 kHz RFID Low frequency cards reader / writer / emulator

На боковой грани флиппера расположена 125 kHz антенна, он может читать карты EM-4100 и HID Prox, сохранять их в память и эмулировать ранее сохраненные карты. Старые низкочастотные карты 125 kHz до сих пор широко используются в домофонах, офисных пропусках и т.д. Таким образом владельцы флиппера могут передавать друг другу считанные карты удаленно. Так же можно передать ID карты для эмуляции по интернету или вписать его вручную. Кайф.

iButton


iButton — старый тип контактных ключей, которые до сих пор популярны в СНГ. Они работают по протоколу 1-Wire и не имеют никаких средств аутентификации, поэтому могут быть легко прочитаны. Флипер умеет читать эти ключи, сохранять ID в память, записывать ID на болванки и эмулировать ключ самостоятельно так, что его можно прикладывать к считывателю как ключ.

Прислонив ключ к контактам, флиппер считает его ID и сохранит в память. Режим считывателя (1-wire master)

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

Флиппер выступает в роли ключа и его можно прикладывать к считывателю. Режим эмуляции ключа (1-wire slave)

Сохраненные ключи можно эмулировать в режиме 1-wire slave. Мы нашли такую форму, но я уверен что ее можно сделать еще лучше, и если вы знаете как, предложите свой вариант на форуме в теме iButton contact pad design Главная сложность состояла в том, чтобы придумать конструкцию контактной площадки, которая бы одновременно могла использоваться как считыватель и как ключ.

Bluetooth


Встроенный в Raspberry Pi Bluetooth-адаптер. Конечно он не может заменить устройства вроде ubertooth one, но зато полностью поддерживается библиотекой bluez, может использоваться для управление флиппером со смартфона или для различных атак на bluetooth вроде apple-bleee, позволяющей собирать sha256 от номеров мобильных телефонов, привязанных к Apple ID, а так же управлять всякими IoT-девайсами.

Мироконтроллер с низким энергопотреблением

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

Режим тамагочи

Your browser does not support HTML5 video.

Флиппер это кибер-дельфин хакер, которому подвластны все цифровые стихии. Когда Raspberry Pi выключен, он переходит в режим тамагочи, с которым можно играть и находить друзей на частоте 433 MHz. В этом режиме, вероятно, будут частично доступны функции NFC.

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

Обо мне

Павел Жовнер

В данный момент я руковожу московским Хакспейсом Нейрон. Меня зовут Павел Жовнер, я живу в Москве. Моя основная специализация: сети, железо и безопасность.
Я стараюсь никогда не использовать слово «хакер», потому что благодаря СМИ и медиа, оно полностью обесценено. В самого детства я люблю глубоко исследовать все вокруг: природу, технологии, людей. В жизни я ценю увлеченных людей, которые глубоко эмоционально вовлекаются в то, что им интересно, которых тоже смело можно называть задротами. Мне нравится называть себя «задрот», потом что оно честнее и без пафоса раскрывает суть.

Я верю в open source, поэтому проект будет полностью открытый. Flipper Zero — это моя попытка сделать что-то по-настоящему крутое и масштабное, и при этом красивое. С помощью этого поста я надеюсь найти людей, которые захотят присоединиться к проекту. В данный момент у меня есть небольшая команда, но нам не хватает людей компетентных в узких областях, особенно в радио.

Присоединиться к проекту

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

Для разработчиков

Все наши текущие задачи по R&D мы будем обсуждать на форуме forum.flipperzero.one. Если вы разработчик железа или софта, или у вас есть любые вопросы, советы, предложения, критика — смело пишите их на форум. Это главное место где будет происходить обсуждение всех этапов разработки, краудфандинга, производства. Общение на форуме ведется только на английском, не стесняйтесь писать коряво, главное чтобы был понятен смысл.

Проголосовать за функции


Нам очень важно знать, какие функции должны быть во флиппере. От этого будут зависеть приоритеты в разработке. Возможно, я ошибочно считаю, что какие-то функции важны, или наборот упускаю что-то. Например, у меня есть сомнения насчет iButton, ведь это устаревшая технология. Поэтому пожалуйста пройдите короткий опрос: docs.google.com/7VWhgJRBmtS9BQtR9

Заслать денег

Когда будет закончен прототип и проект будет готов для выхода на краудфандинговую площадку вроде KickStarter, можно будет оплатить предзаказ. В данный момент вы можете поддержать меня лично небольшими пожертвованиями на еду через Patreon. Регулярные пожертвования в виде 1$ намного лучше, чем большая сумма за раз, потому что позволяют прогнозировать наперед. Ссылка для донатов: flipperzero.one/donate

Disclaimer

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

Все заметки по проекту я публикую в свой Telegram-канал @zhovner_hub.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»