Flipper-демиург: Automatizando Instalações de Software em macOS para Pentest com JavaScript

Flipper-демиург: Automatizando Instalações de Software em macOS para Pentest com JavaScript

Explore como o Flipper Zero, utilizando seu motor JavaScript e módulo BadUSB, pode ser transformado em uma ferramenta poderosa para automatizar a instalação de suítes de pentest e outros softwares em macOS via Homebrew, superando as limitações do DuckyScript.

MundiX News·28 de junho de 2026·7 min de leitura·👁 1 views

Quando o assunto é Flipper Zero, muitos pensam imediatamente em RFID, NFC e Sub-GHz. No entanto, uma das capacidades mais intrigantes do dispositivo reside em seu motor JavaScript e no módulo BadUSB, que o capacita a funcionar como um teclado USB programável. Neste artigo, vamos analisar um script conciso, porém ilustrativo, que automatiza a instalação de um conjunto de ferramentas para pentest (ou qualquer outro software de sua preferência) em sistemas macOS utilizando o Homebrew. Além disso, discutiremos por que o JavaScript no Flipper oferece vantagens significativas sobre o clássico DuckyScript.

Por que o DuckyScript Tradicional Já Não é Suficiente?

Os cenários tradicionais de BadUSB são geralmente desenvolvidos em DuckyScript, seguindo uma estrutura como:

duckyscript
DELAY 1000
GUI SPACE
DELAY 500
STRING terminal
ENTER
STRING brew install nmap
ENTER

Embora funcional, essa abordagem frequentemente encontra limitações inerentes:

  • Ausência de loops;
  • Falta de estruturas condicionais;
  • Impossibilidade de utilizar módulos;
  • Dificuldade no tratamento de estados;
  • Código com baixa escalabilidade.

O Flipper, por outro lado, oferece acesso a uma API JavaScript que permite a implementação de lógica de programação completa. Por exemplo:

javascript
for (let i = 0; i < apps.length; i++) {
    // Lógica de instalação
}

Essencialmente, isso nos proporciona um motor de script miniaturizado diretamente dentro do dispositivo.

Analisando o Script

O script inicia com a importação dos módulos necessários. O primeiro é responsável pelas notificações do Flipper, enquanto o segundo gerencia a emulação de dispositivos HID (Human Interface Device):

javascript
let notify = require("notification");
let badusb = require("badusb");

Em seguida, definimos a lista de aplicações a serem instaladas:

javascript
const apps = [
    'nmap',
    'metasploit-framework',
    'hydra'
];

Esta lista pode ser expandida para incluir qualquer quantidade de pacotes desejados.

Camuflagem como Teclado Apple

O próximo bloco configura os identificadores USB, simulando um dispositivo Apple:

javascript
badusb.setup({
    vid: 0x05AC, // Vendor ID da Apple
    pid: 0x026C, // Product ID de um teclado Apple
    mfr: "Apple",
    product: "Keyboard"
});

Neste trecho, utilizamos o Vendor ID (VID) e Product ID (PID) de um teclado Apple, que podem ser facilmente encontrados online ou nas configurações do sistema.

Verificação de Conexão

Após uma breve indicação visual no Flipper:

javascript
notify.blink("green", "short");

O script verifica a presença de uma conexão USB ativa:

javascript
if (badusb.isConnected()) {
    // Continua apenas se conectado
}

Esta é uma vantagem crucial do JavaScript sobre o DuckyScript, pois permite a execução de ações somente quando uma conexão USB ativa é detectada.

Inicialização Automática do Terminal

Em seguida, o script aciona o Spotlight (Command + Space):

javascript
badusb.press("GUI", "SPACE");

Após uma pequena pausa, o comando para abrir o iTerm é digitado:

javascript
badusb.print("iterm", 100);
badusb.press("ENTER");

O script procura pelo iTerm e o executa. Se preferir, você pode substituir "iterm" por "terminal" para usar o aplicativo Terminal nativo do macOS.

Instalação de Ferramentas

Esta é a parte mais empolgante, onde a superioridade sobre o DuckyScript se torna evidente:

javascript
for (let i = 0; i < apps.length; i++) {
    badusb.println("brew install " + apps[i], 100);
    delay(4000); // Pausa para garantir que o comando anterior foi processado
}

Para cada programa na lista apps, um comando de instalação via brew é gerado e executado:

brew install nmap brew install metasploit-framework brew install hydra

Isso transforma a lista de pacotes em uma sequência de instalações automatizadas. Por exemplo, a lista de aplicações pode ser definida como:

javascript
const apps = [
    'nmap',
    'masscan',
    'sqlmap',
    'john-jumbo'
];

Dessa forma, o mesmo script pode ser adaptado para diferentes perfis de usuários, como:

  • Pentester;
  • Engenheiro DevOps;
  • Desenvolvedor;
  • Analista de Segurança.

Feedback via Flipper

Após a conclusão do loop de instalação:

javascript
notify.success();

O Flipper exibe uma notificação de sucesso. Adicionalmente, uma mensagem é exibida no terminal:

echo 'Installation complete!'

Onde Isso é Realmente Útil?

Frequentemente, as demonstrações de BadUSB se limitam a "invadir uma geladeira inteligente em 5 segundos". No entanto, cenários de automação, que vão além da simples instalação de aplicativos, são consideravelmente mais interessantes. Considere os seguintes casos de uso:

Preparação de uma Estação de Pentest: Ao entregar um novo notebook a um especialista, o script pode instalar automaticamente um conjunto completo de ferramentas:

javascript
const apps = [
    'nmap',
    'hydra',
    'metasploit-framework',
    'wireshark',
    'sqlmap'
];

Configuração DevOps: Para um engenheiro DevOps, o script pode configurar o ambiente com as ferramentas essenciais:

javascript
const apps = [
    'terraform',
    'ansible',
    'kubectl',
    'helm'
];

O Que Pode Ser Melhorado?

O script original apresenta algumas limitações que podem ser aprimoradas:

  • Verificação do Homebrew: Se o Homebrew não estiver instalado no sistema macOS, o comando brew resultará em command not found, interrompendo todo o processo. Seria mais robusto verificar a existência do Homebrew primeiro (por exemplo, com which brew) e, se necessário, iniciar o processo de instalação do gerenciador de pacotes.
  • Delays Fixos: O script utiliza delay(4000). No entanto, a instalação de pacotes, especialmente os mais complexos como o Metasploit, pode levar vários minutos. Pausas fixas nem sempre garantem a confiabilidade do processo.
  • Ausência de Tratamento de Erros: O cenário atual assume que o usuário está autenticado, o iTerm está instalado, o Homebrew está presente e a rede está funcionando. A implementação de tratamento de erros para essas condições tornaria o script mais resiliente.

Por Que o JavaScript Muda o Jogo?

A verdadeira inovação deste exemplo não reside apenas na instalação de Nmap ou Hydra. O Flipper Zero se transforma de um "pen drive inteligente com macros" para uma plataforma de automação completa. A introdução de:

  • Loops;
  • Condicionais;
  • Interação com módulos;
  • Gerenciamento da lógica de execução;
  • Feedback interativo através do dispositivo.

Torna os scripts JavaScript para Flipper uma abordagem muito mais promissora e flexível em comparação com os tradicionais payloads DuckyScript.

Conclusão

O script analisado, com apenas algumas dezenas de linhas, demonstra de forma eficaz a evolução da abordagem BadUSB. O Flipper Zero não se limita mais a enviar uma sequência pré-gravada de pressionamentos de tecla. Agora, ele é capaz de tomar decisões, verificar o estado de conexões, gerenciar a lógica de execução e automatizar tarefas rotineiras. Essa capacidade de automação inteligente, impulsionada pelo motor JavaScript, abre um leque de possibilidades para profissionais de segurança e administradores de sistemas.

O código-fonte original pode ser consultado em: https://gitlab.com/DuDlick/flipper-auto-installer/-/blob/main/download_all.js?ref_type=heads

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.