
Ferramenta simples de injeção de teclas para Windows e Linux que exfiltra dados de WiFi armazenados (SSID e senha).

Você já viu um filme onde um hacker conecta um pendrive aparentemente comum a um computador e instantaneamente rouba dados? Hoje, você construirá um dispositivo que faz exatamente isso.
⚠️ Aviso legal:
Todo o conteúdo deste projeto destina-se exclusivamente a fins de pesquisa em segurança.
No verão de 2022, decidi construir um dispositivo capaz de extrair dados de um computador alvo. Mas como exatamente se implanta um malware e se exfiltra informações? Nas seções a seguir, percorrerei os passos essenciais, os conceitos subjacentes e as nuances técnicas envolvidas na criação de uma ferramenta de injeção de teclas personalizada. Embora este projeto tenha como alvo específico as credenciais WiFi, o payload pode ser facilmente modificado para fins mais avançados ou maliciosos – os únicos limites reais são sua criatividade e conhecimento técnico.
Com o tempo, o projeto cresceu e passou a incluir uma grande variedade de scripts e ferramentas. Originalmente, foi criado para demonstrar as capacidades de um Rubber Ducky – especificamente, uma versão econômica usando o Raspberry Pi Pico (RPi Pico). Atualmente, os dois componentes principais do projeto são:
Acesso físico ao computador da vítima (desbloqueado).
O computador deve ter acesso à internet para enviar os dados roubados através de SMTP para exfiltração por meio de rede.
Conhecimento da senha do computador da vítima para o exploit no Linux.
Após criar um pico-ducky, basta copiar o payload modificado (ajustado com seus dados SMTP para o exploit no Windows e/ou ajustado com a senha do Linux e o nome do pendrive) para o RPi Pico.
[!NOTE]
É possível construir esta ferramenta usando o Rubber Ducky, mas lembre-se de que o RPi Pico custa cerca de US$ 4,00 e o Rubber Ducky custa US$ 80,00.
No entanto, embora o pico-ducky seja uma solução boa e econômica, o Rubber Ducky oferece recursos como discrição e uso da versão mais recente do DuckyScript.
Para usar o Ducky Script para escrever o payload no seu RPi Pico, você primeiro precisa convertê-lo em um pico-ducky. Siga estes passos simples para criar o pico-ducky.
Uma ferramenta de injeção de teclas, uma vez conectada a uma máquina hospedeira, executa comandos maliciosos ao rodar um código que imita teclas digitadas por um usuário. Embora pareça um pendrive, ela age como um teclado que digita um payload pré-programado. Ferramentas como o Rubber Ducky podem digitar mais de 1.000 palavras por minuto. Uma vez criada, qualquer pessoa com acesso físico pode implantar esse payload com facilidade.
O payload usa o comando STRING para processar as teclas de injeção. Ele aceita um ou mais caracteres alfanuméricos/de pontuação e digitará o restante da linha exatamente como está na máquina alvo. Os comandos ENTER/SPACE simulam a pressão das teclas do teclado.
Usamos o comando DELAY para pausar temporariamente a execução do payload. Isso é útil quando um payload precisa esperar por um elemento, como um Prompt de Comando, carregar. O delay é útil quando usado logo no início, quando um novo dispositivo USB é conectado a um computador alvo. Inicialmente, o computador deve concluir um conjunto de ações antes de começar a aceitar comandos de entrada. No caso de HIDs, o tempo de configuração é muito curto. Na maioria dos casos, leva uma fração de segundo porque os drivers já estão integrados. No entanto, em alguns casos, um PC mais lento pode demorar mais para reconhecer o pico-ducky. A recomendação geral é ajustar o tempo de delay de acordo com seu alvo.
Exfiltração de dados é a transferência não autorizada de dados de um computador/dispositivo. Uma vez coletados, um invasor pode empacotá-los para evitar detecção enquanto os envia pela rede usando criptografia ou compactação. As duas formas mais comuns de exfiltração são:
Esta abordagem foi usada para o exploit no Windows. O payload completo pode ser visto aqui.
Esta abordagem foi usada para o exploit no Linux. O payload completo pode ser visto aqui.
Para usar o payload do Windows (payload1.dd), não é necessário conectar nenhum fio jumper entre os pinos.