Flipper Zero - um projeto de uma ferramenta múltipla de bolso baseada no Raspberry Pi Zero para o IoT Pentest e sistemas de controle de acesso sem fio. É também o tamagotchi onde o golfinho cibernético vive.
Ele será capaz de:
- Trabalho na faixa de 433 MHz - para o estudo de controles de rádio, sensores, travas eletrônicas e relés.
- NFC - lê / grava e emula os cartões ISO-14443.
- RFID de 125 kHz - leia / escreva e emule cartões de baixa frequência.
- Teclas iButton - lê / grava e emula as teclas de contato usando o protocolo 1-Wire.
- Wi-Fi - para verificar a segurança das redes sem fio. O adaptador suporta injeção de pacotes e modo monitor.
- Bluetooth - pacote bluez suportado para Linux
- Modo USB ruim - pode ser conectado como um escravo USB e emular um teclado, adaptador ethernet e outros dispositivos para injeção de código ou teste de rede.
- Tamagotchi! - O microcontrolador de baixa potência funciona quando o sistema principal está desligado.
Estou animado para apresentar o meu projeto mais ambicioso, cuja idéia surgiu há muitos anos. Esta é uma tentativa de combinar todas as ferramentas necessárias para um teste físico físico em um único dispositivo, enquanto adiciona personalidade a ele para que seja bom cagar.
No momento, o projeto está em fase de P&D e aprovação funcional, e convido todos a participarem da discussão de funções ou até participarem do desenvolvimento. Sob o corte, uma descrição detalhada do projeto.
Por que isso é necessário?
Gosto de explorar tudo ao redor e constantemente carrego comigo várias ferramentas para isso. Eu tenho na minha mochila: adaptador WiFi, leitor NFC, SDR, Proxmark3, HydraNFC, Raspberry Pi Zero (por causa disso, existem problemas no aeroporto). Todos esses dispositivos não são tão fáceis de usar quando você toma uma xícara de café em uma mão ou anda de bicicleta. Você precisa sentar, decompor e sair do compilador - isso nem sempre é conveniente. Eu sonhava com um dispositivo que implementasse cenários típicos de ataque, estava sempre em alerta e, ao mesmo tempo, não era um pacote de tábuas caindo aos pedaços, enroladas com fita isolante.
Raspberry Pi Zero W com escudo de bateria UPS-Lite v1.0 como um inundador autônomo para enviar fotos para dispositivos Apple via AirDropRecentemente, depois que publiquei uma implementação aberta do protocolo AirDrop
owlink.org e um estudo da HexWay sobre as vulnerabilidades do
Apple-Bleee iOS, comecei a me divertir de uma nova maneira:
conhecer pessoas no metrô, enviar fotos através do AirDrop e coletar seus números telefones. Então, eu queria automatizar esse processo e construí um carro autônomo de ponta de pau a partir do Raspberry Pi Zero W e baterias. Este tópico merece um artigo separado, que não consigo terminar de escrever. Tudo ficaria bem, mas este dispositivo era extremamente inconveniente de transportar, não podia ser colocado no bolso, porque quedas acentuadas de solda rasgavam o tecido da calça. Tentei imprimir o estojo em uma impressora 3D, mas não gostei do resultado.
Agradecimentos especiais a Ana koteeq Prosvetova, a apresentadora do canal Telegram @theyforcedme, que, a meu pedido, escreveu o bot Telegram @AirTrollBot , que gera imagens com texto, telegrama e a proporção correta para que sejam exibidas totalmente na pré-visualização ao enviar via Airdrop. Você pode gerar rapidamente uma imagem que seja adequada para a situação, que se parece com isso.
Montagem Pwnagotchi com tela de tinta eletrônica e proteção da bateriaEntão eu vi o incrível projeto
pwnagotchi . É como o tamagotchi, apenas como refeição ele come handshakes WPA e PMKID de redes Wi-Fi, que podem ser brutais em fazendas de GPU. Gostei tanto deste projeto que por vários dias caminhei com meu pwnagotchi pelas ruas e vi como ele desfrutava do novo saque. Mas ele tinha os mesmos problemas: você não pode colocá-lo no seu bolso normalmente, não há controles; portanto, qualquer entrada do usuário é possível apenas a partir de um telefone ou computador.
E então eu finalmente percebi como eu vejo a ferramenta múltipla perfeita, que eu perdi. Eu twitei sobre isso e meus amigos gostaram dos designers industriais que fazem coisas eletrônicas sérias. Eles se ofereceram para fabricar um dispositivo completo, em vez de um ofício de bricolage complicado. Com produção de fábrica real e peças de qualidade. Começamos a procurar por um conceito de design.
Clicável. Os primeiros esboços do design do Flipper ZeroO gabinete e o design levaram muito tempo, porque estou cansado de todos os dispositivos hackers parecerem um monte de PCBs enrolados com fita isolante e é impossível usá-los normalmente. A tarefa era criar o corpo e o dispositivo mais convenientes e compactos que seriam fáceis de usar autonomamente sem um computador ou telefone, e foi isso que aconteceu. A seguir, é descrito o conceito
não final atual do dispositivo.
O que é o Flipper Zero?

De fato, o Flipper Zero possui alguns escudos e uma bateria ao redor do Raspberry Pi Zero, embalado em um estojo com uma pequena tela e botões. O Kali Linux é usado como sistema operacional, uma vez que já contém todos os patches necessários e oferece suporte imediato ao rpi0. Eu olhei para muitos computadores de placa única diferentes: NanoPi Duo2, Banana Pi M2 Zero, Orange Pi Zero, Omega2, mas todos perdem o rpi0 e aqui está o porquê:
- Adaptador Wi-Fi integrado que suporta o modo de monitor e injeção de pacotes (patches próximos )
- Bluetooth 4.0 incorporado
- Bastante bom 2.4 Ghz Antena
- Oficialmente suportado pelo Kali Linux e possui muitas compilações pré- construídas, como o P4wnP1 ALOA
- Fácil acesso ao cartão SD, você pode transferir rapidamente uma grande quantidade de dados
Certamente muitos dirão que o Raspberry Pi não é a melhor escolha para esse dispositivo e encontrarão muitos argumentos, como alto consumo de energia, falta de modo de suspensão, hardware não aberto etc. Mas se você comparar todos os prós e contras, não encontrei nada melhor que o rpi0. Se você tem algo a dizer sobre isso, seja bem-vindo ao fórum
forum.flipperzero.one .

O Flipper Zero é totalmente autônomo e pode ser controlado usando um joystick de 5 direções sem dispositivos adicionais, como um computador ou telefone. Cenários típicos de ataque podem ser acessados no menu. Obviamente, nem tudo pode ser feito usando o joystick; portanto, para mais controle, você pode conectar via SSH via USB ou via Wi-Fi / Bluetooth.
Decidi usar um monitor LCD monocromático da velha escola com uma resolução de 126x64px, como nos telefones antigos da Siemens. Primeiro, é legal, a tela monocromática com luz de fundo laranja me faz um prazer indescritível, uma espécie de cyberpunk retro-militar. É claramente visível ao sol e tem um consumo de energia muito baixo, cerca de 400uA com a luz de fundo desligada. Portanto, você pode mantê-lo no modo Sempre ativo e sempre exibir a imagem. A luz de fundo só acende quando você pressiona as teclas.
Exemplos de telas em telefones SiemensEssas telas ainda são produzidas para todos os tipos de dispositivos industriais e caixas registradoras. Atualmente, selecionamos
esta tela .
Portas Flipper ZeroNas extremidades, o Flipper Zero possui portas Raspberry Pi padrão, um botão de energia / luz de fundo, um orifício para a correia e uma porta de serviço adicional através da qual você pode acessar o console UART, carregar a bateria e preencher um novo firmware.
Transmissor de 433 MHz


O Flipper possui uma antena interna de 433 MHz e um chip
CC1111 , para operação na banda <1 GHz, a mesma do popular dispositivo
Yard Stick One . Ele pode interceptar e analisar os sinais de controles remotos por rádio, controles remotos, todos os tipos de tomadas e travas inteligentes. Ele suporta o trabalho com a biblioteca
rfcat e pode decodificar, salvar e reproduzir códigos populares de controle remoto, como um
analisador de controle remoto . Nos casos em que o Raspberry Pi não tem tempo para processar o sinal, o CC1111 pode ser controlado pelo microcontrolador embutido. No modo Tamagotchi, o Flipper pode falar sozinho e exibir seus nomes, como faz o pwnagotchi.
Usb ruim

O Flipper pode emular dispositivos escravos USB e fingir ser um teclado para o compartimento de carga, como o
USB Rubber Ducky . E também emule um adaptador Ethernet para falsificação de DNS, porta serial, etc. Existe uma estrutura pronta para o Raspberry Pi que implementa vários tipos de ataques desse tipo
github.com/mame82/P4wnP1_aloaO cenário de ataque desejado pode ser selecionado no menu com o joystick. Ao mesmo tempo, informações de depuração sobre o estado do ataque ou algo inofensivo para disfarçar podem ser exibidas na tela.
Wifi

O adaptador Wi-Fi embutido no Raspberry Pi não suporta inicialmente o modo monitor de injeção de pacotes, mas existem
patches de terceiros que adicionam esse recurso. Para alguns tipos de ataques, você precisa de dois adaptadores Wi-Fi independentes. A dificuldade está no fato de que quase todos os chips Wi-Fi estão conectados via USB e não podemos levar um único USB para rpi0, caso contrário, o modo USB Slave será interrompido. Portanto, você deve usar a interface SPI ou SDIO para conectar um adaptador Wi-Fi. Não conheço nenhum chip que ofereça suporte ao modo de monitor e injeção de pacotes imediatamente, mas NÃO conecte via USB. Se você souber disso, informe-me no fórum no tópico
Chip Wi-Fi com interface SPI / SDIO que suporta monitoramento e injeção de pacotesNfc

O módulo NFC pode ler / gravar todos os cartões ISO-14443, incluindo Mifare, cartões bancários sem contato PayPass / PayWave, ApplePay / GooglePay e mais. Suportado pela biblioteca LibNFC. Na parte inferior do Flipper, há uma antena em 13,56 MHz e, para trabalhar com a placa, basta colocá-la em cima dela. No momento, a questão da emulação de cartão permanece em aberto. Eu gostaria de um emulador completo como o
Chameleon Mini , mas ao mesmo tempo eu quero poder trabalhar com o LibNFC. Não conheço outras opções de chip além do NXP PN532, mas ele não pode emular totalmente os cartões. Se você conhece uma opção melhor, escreva sobre ela no tópico
Procurando por um chip NFC melhor que o PN532125kHz RFID
Cartões antigos de baixa frequência de 125 kHz ainda são amplamente utilizados em interfones, passes de escritório etc. Uma antena de 125 kHz está localizada na lateral do flipper; pode ler os cartões EM-4100 e HID Prox, salvá-los na memória e emular os cartões salvos anteriormente. Você também pode transferir o cartão de identificação para emulação na Internet ou inseri-lo manualmente. Assim, os proprietários de nadadeiras podem transferir cartões de leitura um para o outro remotamente. Buzz.
iButton

O iButton é um tipo antigo de chave de contato que ainda é popular no CIS. Eles trabalham no protocolo 1-Wire e não têm nenhum meio de autenticação, para que possam ser lidos facilmente. O flipper pode ler essas chaves, armazenar o ID na memória, gravar o ID nos espaços em branco e emular a chave por si só, para que possa ser aplicada ao leitor como uma chave.
Modo Leitor (mestre de 1 fio)
Nesse modo, o dispositivo atua como um leitor de porta. Apoiando a chave nos contatos, o flipper considera seu ID e o salva na memória. No mesmo modo, você pode gravar a ID salva no disco.
Modo de emulação de chave (escravo de 1 fio)
As chaves salvas podem ser emuladas no modo escravo de 1 fio. O flipper atua como uma chave e pode ser aplicado ao leitor. A principal dificuldade era criar um design de bloco que pudesse ser usado tanto como leitor quanto como chave. Encontramos esse formulário, mas tenho certeza de que ele pode ser feito ainda melhor e, se você souber, sugira sua opção no fórum no tópico
design do bloco de contato do iButtonBluetooth

Adaptador Raspberry Pi Bluetooth integrado. Obviamente, ele não pode substituir dispositivos como o
ubertooth , mas é totalmente suportado pela biblioteca bluez, pode ser usado para controlar o flipper de um smartphone ou para vários ataques bluetooth, como
apple-bleee , que permite coletar sha256 de números móveis vinculados a IDs da Apple e gerenciar todos os tipos de dispositivos IoT.
Microcontrolador de baixa potência

Como o flipper é muito frio para desligá-lo, decidimos colocar nele um microcontrolador de baixa potência que funcionará quando o Raspberry Pi for desligado. Ele gerenciará o Tamagotchi, controlará o processo de inicialização do Raspberry Pi até que esteja pronto para controlar a tela e gerenciar a energia. Ele também controlará o chip CC1111 para se comunicar com outras nadadeiras.
Regime de Tamagotchi
Flipper é um hacker de cyber-golfinho, sujeito a todos os elementos digitais. Quando o Raspberry Pi é desligado, ele entra no modo tamagotchi, com o qual você pode jogar e fazer amigos na frequência de 433 MHz. Nesse modo, é provável que as funções NFC estejam parcialmente disponíveis.
O protótipo do personagem era um golfinho do filme
Johnny Mnemonic que ajudou a esmagar o cérebro de Kiano Reeves e esmagou os bandidos com sua radiação. Os golfinhos têm um gerador de frequência embutido com o qual exploram tudo ao seu redor, bem como uma necessidade inata de entretenimento e curiosidade natural. Precisamos de uma pessoa que possa ter uma personalidade de nadadeira, todo o design do jogo como um todo, de emoções a minijogos. Todos os seus pensamentos sobre esse assunto podem ser escritos na seção apropriada do fórum.
Sobre mim

Meu nome é Pavel Zhovner, moro em Moscou. No momento, estou no comando do Moscow
Hackspace Neuron . Desde a infância, gosto de explorar profundamente tudo ao redor: natureza, tecnologia, pessoas. Meu foco principal é rede, hardware e segurança.
Tento nunca usar a palavra "hacker", porque, graças à mídia e à mídia, ela é completamente inútil. Eu gosto de me chamar de "nerd", porque é mais honesto e sem pathos revela a essência. Na vida, aprecio pessoas afiadas que estão profundamente envolvidas emocionalmente no que elas estão interessadas, que também podem ser chamadas com segurança de nerds.
Flipper Zero é minha tentativa de fazer algo realmente legal e maciço, e ao mesmo tempo bonito. Eu acredito em código aberto, então o projeto será completamente aberto. No momento, tenho uma equipe pequena, mas não temos pessoas suficientes competentes em áreas estreitas, principalmente no rádio. Com a ajuda deste post, espero encontrar pessoas que queiram participar do projeto.
Participar do projeto
Convido todos os que gostaram deste projeto a participar do desenvolvimento de qualquer maneira possível. Nesta fase, precisamos aprovar a lista final de funções para prosseguir com a implementação da primeira versão do dispositivo. Atualmente, existem muitos problemas técnicos que não foram resolvidos.
Para desenvolvedores

Discutiremos todas as nossas tarefas atuais de pesquisa e desenvolvimento no fórum
forum.flipperzero.one . Se você é desenvolvedor de hardware ou software, ou tem alguma dúvida, conselho, sugestão, crítica - sinta-se à vontade para escrevê-las no fórum. Este é o principal local onde haverá uma discussão de todas as etapas do desenvolvimento, financiamento coletivo, produção. A comunicação no fórum é realizada
apenas em inglês , não hesite em escrever desajeitadamente, o principal é que o significado seja claro.
Votar em recursos

É muito importante para nós saber quais funções devem estar no flipper. As prioridades de desenvolvimento dependerão disso. Talvez eu pense erroneamente que algumas funções são importantes ou um conjunto de erros. Por exemplo, tenho dúvidas sobre o iButton, porque esta é uma tecnologia desatualizada. Então, faça uma pequena pesquisa:
docs.google.com/7VWhgJRBmtS9BQtR9Envie dinheiro

Quando o protótipo estiver concluído e o projeto estiver pronto para entrar na plataforma de crowdfunding, como o KickStarter, você poderá pagar pela pré-encomenda. No momento, você pode me apoiar pessoalmente com pequenas doações de comida através do
Patreon . As doações regulares na forma de US $ 1 são muito melhores do que uma grande quantia por vez, porque permitem prever com antecedência. Doe o link:
flipperzero.one/donateIsenção de responsabilidade
O projeto está em um estágio muito inicial, o site pode ter erros, layout incorreto e outros problemas, portanto, não se importe demais. Informe-me sobre todos os erros e imprecisões encontrados. Esta é a primeira menção pública do projeto e, com a sua ajuda, espero eliminar toda a aspereza antes de publicar na grande Internet de língua inglesa.
Publico todas as notas sobre o projeto no meu canal Telegram
@zhovner_hub .