Rubber Ducky: как создать мощный инструмент взлома из обычной флешки

Rubber Ducky – это устройство, выглядящее как обычная USB-флешка, но способное автоматически выполнять заданные действия на компьютере. В данной статье мы рассмотрим, как создать собственный Rubber Ducky на базе дешевого микроконтроллера.

Что такое Rubber Ducky?

Rubber Ducky представляет собой флешку со встроенным микроконтроллером, эмулирующим USB-клавиатуру. При подключении к компьютеру она автоматически “нажимает” заранее запрограммированные клавиши, имитируя действия пользователя.

Таким образом, злоумышленник может использовать Rubber Ducky для быстрого и незаметного выполнения вредоносных действий: установки ПО, кражи данных, изменения системных настроек и т.д.

Создание собственного Rubber Ducky

Для создания своего Rubber Ducky нам понадобится:

  • Микроконтроллер ATtiny85
  • Плата Digispark
  • Кабель micro-USB
  • ПО Arduino IDE

В качестве “мозга” нашего устройства будет использован микроконтроллер ATtiny85 – маленький 8-битный чип фирмы Atmel. Он обладает достаточной вычислительной мощностью и памятью для решения наших задач.

Для удобства мы воспользуемся готовой платой Digispark, на которую этот микроконтроллер уже установлен. Плата имеет разъем USB и позволяет легко запрограммировать ATtiny85.

Для написания кода для микроконтроллера нам потребуется среда разработки Arduino IDE с установленными драйверами Digispark.

Программирование Rubber Ducky

Сначала нужно установить дравера, скачайте их по ссылке https://github.com/LilyGO/DigiSpark-ATtiny85-driver-install

Для линукс командой

sudo apt-get install libusb-1.0-0-dev

Тут вы найдете подробности как установить libusb на linux https://askubuntu.com/questions/629619/how-to-install-libusb

В Arduino IDE https://www.arduino.cc/en/software в окне настроек мы должны найти поле «Диспетчер URL-адресов дополнительных плат» и вставить внутрь следующий URL-адрес:
http://digistump.com/package_digistump_index.json

Подключаем плату Digispark и пишем следующий простой код:

#define kbd_en_us

#include “DigiKeyboard.h”

void setup() {

  DigiKeyboard.update();

  DigiKeyboard.delay(5000);

}

void loop() {

  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);

  delay(250);

  DigiKeyboard.println(“notepad”);

  delay(250);

  DigiKeyboard.println(F(“Hello World”));

  while(1);

}

Этот код при подключении к компьютеру вводит текст “Hello World” в notepad. Для эмуляции нажатия клавиш используются функции библиотеки DigiKeyboard. Вы можете поменять клавиатуру платы на ту которую использует ваш компьютер, по ссылке вы найдете все доступные раскладки. https://github.com/ernesto-xload/DigisparkKeyboard

Раскладка меняется в коде вот тут #define kbd_en_us

Загружаем код на плату и проверяем работу нашего DIY Rubber Ducky. При подключении к компьютеру в открытом текстовом редакторе должно появиться слово “Hello World”.

Заключение

Мы рассмотрели принцип работы Rubber Ducky и создали собственное подобное устройство при помощи дешевого микроконтроллера. Теперь вы можете использовать его для образовательных целей и исследований в области кибербезопасности. Главное помнить, что несанкционированное использование Rubber Ducky является незаконным.

Больше примеров вы найдете тут – https://www.patreon.com/itprosta/shop/digispark-attiny85-codes-7424?source=storefront

Leave a Reply