RubberDuck o que é, e como fazer um com o seu Arduino Leonardo (ou com esp32, RP Pico e etc)
Marlon
Posted on April 25, 2024
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);
}
Esse código faz o seguinte:
- Pressiona a tecla do Windows
- Digita "Hyper"
- Pressiona a tecla Control e 1
- Digita "cowsay Hack_The_Planet"
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.
Posted on April 25, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
April 25, 2024