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 Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (1)

Collapse
 
jessilyneh profile image
Jessilyneh

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