DEV Community

Cover image for RubberDuck o que é, e como fazer um com o seu Arduino Leonardo (ou com esp32, RP Pico e etc)
Marlon
Marlon

Posted on • Originally published at blog.marlonhenq.dev

6 6 5 5 5

RubberDuck o que é, e como fazer um com o seu Arduino Leonardo (ou com esp32, RP Pico e etc)

Como sempre peguei um hiato grande nos posts do blog, mas estamos de volta e hoje vamos falar de uma ferramenta que os hackermans adoram e que é extremamente fácil e útil de fazer, o famoso RubberDuck.

Mas antes...

Um Disclaimer

Antes de começar a falar sobre o RubberDuck, é importante dizer que este post é puramente informativo, você pode usar as informações aqui contidas para fins educacionais, de segurança ou para facilitar o seu dia a dia, mas não me responsabilizo por qualquer uso indevido das informações aqui existentes.

O que é um RubberDuck?

O RubberDuck é um dispositivo que é feito para parecer muito com um pendrive comum, mas que pode emular um teclado ou mouse e executar diferentes comandos no momento em que é conectado a um hardware.

Ele é muito utilizado para automação de tarefas, testes de segurança e até mesmo para ataques de acessos físicos ou engenharia social.

Sim o RubberDuck é uma metonímia, que é uma palavra difícil para dizer que uma marca ficou tão grande que o nome do produto virou sinônimo do produto em si, como é o caso da Gillette, Bombril e Xerox.
O nome de dispositivos que fazem o que o RubberDuck faz de maneira genérica são BadUSBs ou keystroke injectiors.

Como fazer o seu RubberDuck (ou BadUSB)?

Para fazer o seu RubberDuck você vai precisar de um microcontrolador que possa emular um teclado e a parte legal é que quase todos os microcontroladores modernos podem fazer isso, como o ESP32, Raspberry Pi Pico, ATmega32u4 (que é o micro controlador do Arduino Leonardo, Micro e Pro Micro), attiny85 (que é o microcontrolador do Digispark) e muitos outros.

Aqui vou usar a Arduino IDE para programar um Arduino Leonardo.

Abrindo a Arduino IDE, vamos apertar 'ctrl + shif + i' para abrir o gerenciador de bibliotecas e vamos instalar a biblioteca "Keyboard" que é a biblioteca que vamos usar para emular o teclado.

Feito isso vamos para o código, que é bem simples:


#include "Keyboard.h"

void setup() {
  Keyboard.begin();
}

void loop() {
    delay(1000);

    // Pressiona a tecla do Windows
    Keyboard.press(KEY_LEFT_GUI); // ou Keyboard.press(KEY_RIGHT_GUI); dependendo do teclado
    delay(100);
    // Solta a tecla do Windows
    Keyboard.release(KEY_LEFT_GUI); // ou Keyboard.release(KEY_RIGHT_GUI); dependendo do teclado

    delay(1000);

    Keyboard.print("Hyper");

    delay(1500);

    // Pressiona a tecla Control e 1
    Keyboard.press(KEY_LEFT_CTRL);
    Keyboard.press(49);
    delay(100);
    // SOlta as teclas Control e 1
    Keyboard.releaseAll();

    delay(2000);

    Keyboard.println("cowsay Hack_The_Planet");

    delay(200000);
}
Enter fullscreen mode Exit fullscreen mode

Esse código faz o seguinte:

  1. Pressiona a tecla do Windows
  2. Digita "Hyper"
  3. Pressiona a tecla Control e 1
  4. Digita "cowsay Hack_The_Planet"

Image description

Lógico que você pode fazer muito mais do que isso, mas esse é um exemplo simples de como você pode fazer um RubberDuck.

E como eu disse antes, você pode usar qualquer microcontrolador que possa emular um teclado, então você pode fazer um RubberDuck com um ESP32, Raspberry Pi Pico, Digispark, etc.

Isso é tudo pessoal

Eu sei, esse foi um post pequeno, mas eu precisava sair do hiato de alguma forma e achei que esse post seria uma forma legal de fazer isso.

Logo eu volto aqui com mais posts e mais projetos, então fiquem ligados.

Até a próxima.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (1)

Collapse
 
jessilyneh profile image
Jessilyneh

volte a escrever, tenho certeza que você aprendeu coisas bem legais nesse periodo :)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more