Шукаєш повну інструкцію до Bash Bunny українською мовою? У цьому розширеному гіді ти знайдеш усе — від базового налаштування пристрою до розробки складних payload’ів для HID-атаки, мережевого спуфінгу, геозонування та ексфільтрації даних. Розглянуто всі ATTACKMODE, CUCUMBER, DuckyScript, BLE-тригери, розширення Bash, роботу з MicroSD, встановлення додаткових інструментів та інше. Гайд підходить як новачкам, так і досвідченим спеціалістам з безпеки. Цей мануал перетворить твій Bash Bunny на універсальний інструмент для Red Team-операцій, тестування USB-захисту та соціальної інженерії.
Bash Bunny — це спеціалізований USB-комп’ютер від Hak5, призначений для атак типу BadUSB. Пристрій здатен одночасно імітувати декілька типів USB-периферії, таких як клавіатура, мережевий адаптер, флеш-накопичувач та серійний порт. Це відкриває можливості для повністю автоматизованих атак на цільові системи без необхідності ручного втручання. Bash Bunny працює на базі Debian-подібної Linux-системи, що дозволяє розширювати його функціональність за допомогою bash-скриптів, додаткових утиліт та складної логіки умов виконання.
Завдяки вбудованому сховищу та підтримці MicroSD, пристрій зручний як для тимчасових одноразових атак, так і для довготривалих операцій з логуванням та збереженням інформації. Розроблений для фахівців з безпеки, цей інструмент демонструє слабкості, притаманні довіренню комп’ютерів до підключених USB-пристроїв, і допомагає виявити уразливості в системах корпоративного та персонального захисту.
На Bash Bunny є фізичний трьохпозиційний перемикач, що задає поведінку пристрою після підключення до комп’ютера. Позиція 3 (найближча до USB) активує “Arming Mode” — режим озброєння, який дозволяє отримати доступ до файлової системи пристрою через Mass Storage, а також підключитися до Bash Bunny як до серійного порту. У цьому режимі зручно завантажувати payload’и, встановлювати інструменти або переглядати логи атак. Позиції 1 та 2 відповідають користувацьким сценаріям атаки. При завантаженні у цих позиціях Bash Bunny автоматично виконує скрипт payload.txt, розміщений у відповідному каталозі /payloads/switch1 або /payloads/switch2. Це дозволяє заздалегідь підготувати різні сценарії — наприклад, перший для атаки на Windows, а другий — для атак на Linux.
Файлова система Bash Bunny розділена на кілька логічних каталогів, кожен із яких виконує окрему функцію:
/payloads/switch1і/payloads/switch2— корисні навантаження, що відповідають позиціям перемикача.
/payloads/library— повна бібліотека офіційних payload’ів, що синхронізується з GitHub.
/payloads/library/extensions— додаткові bash-функції, які розширюють можливості DuckyScript.
/loot— папка, де зберігаються результати атак: злиті файли, логи, хеші паролів.
/languages— файли розкладок клавіатур для HID-ін’єкцій (наприклад,us.json,fr.json).
/tools— директорія, з якої Bash Bunny автоматично встановлює .deb-пакети або утиліти при завантаженні в Arming Mode.
/docs— додаткова документація та приклади.
Ця структура дозволяє підтримувати порядок, розділяючи скрипти, результати та допоміжні ресурси, що критично для безпечної та ефективної роботи з пристроєм.
У другій версії Bash Bunny з’явилась підтримка MicroSD-карт, яка суттєво розширює функціональність пристрою. Якщо під час старту пристрою в положенні перемикача 1 або 2 вставлена MicroSD, то каталог /root/udisk автоматично посилається на корінь карти. Таким чином, всі файли, які зазвичай зберігаються у внутрішньому сховищі, переміщуються на карту.
Це особливо корисно при тривалих атаках, що потребують збереження великих обсягів даних — наприклад, логування NTLM-хешів або мережевого трафіку. Важливо, що в режимі Arming Mode payload’и завжди запускаються з внутрішньої пам’яті — навіть якщо карта присутня. Крім того, якщо активовано ATTACKMODE STORAGE, то MicroSD (а не внутрішня пам’ять) буде представлена цільовій системі як USB-диск, що дозволяє налаштовувати стейджінг або приховану ексфільтрацію даних.
Інформація, яку надає вбудований RGB-світлодіод на Bash Bunny, є одним із ключових способів розуміння того, в якому стані наразі перебуває пристрій. Цей світлодіод може світитись одним із кількох кольорів, а також блимати в різних шаблонах, кожен із яких означає конкретний етап виконання, стан помилки або готовність. Наприклад, повільне миготіння зеленого кольору означає завантаження пристрою, тоді як миготіння синім означає, що пристрій знаходиться в режимі Arming. Якщо LED блимає червоним, це сигнал про помилку або процес перепрошивки.
У версіях з прошивкою вище 1.1 також використовується червоно-синє чергування — “поліцейський” режим — для візуального підтвердження того, що триває оновлення прошивки. Крім базових кольорів, LED може приймати й інші шаблони: одиночне, подвійне, потрійне миготіння, а також інверсні патерни (наприклад, коротке вимкнення серед довгого ввімкнення).
Типові кольори й шаблони:
🔵 Синій (миготіння) — режим Arming Mode активний.
🟢 Зелений (миготіння) — пристрій завантажується.
🔴 Червоний (миготіння) — помилка або перепрошивка.
🔵🔴 Червоно-синє чергування — оновлення прошивки (версія >1.1).
🟣 Магента (постійне світло) — встановлення інструментів з
/tools.
Bash Bunny підтримує гнучку систему розширення функціональності шляхом встановлення додаткових інструментів. Це особливо важливо для запуску payload’ів, які потребують сторонніх утиліт або бібліотек.
Усе, що потрібно — підготувати .deb пакети або директорії з готовими інструментами і скопіювати їх у папку /tools на USB-накопичувачі пристрою під час Arming Mode. Після наступного підключення Bash Bunny самостійно виконає інсталяцію, використовуючи dpkg, а інші файли перенесе до /tools у кореневій файловій системі. Увесь процес супроводжується візуально: LED світиться постійним магентовим кольором, що сигналізує про активну інсталяцію.
Ключові дії при інсталяції утиліт:
Скопіювати
.debфайли або папки в/toolsу режимі Arming Mode
Підключити Bash Bunny: інсталяція відбудеться автоматично
LED → магента = інсталяція в процесі
Готові інструменти з’являться в
/toolsсистемного рівня
Цей приклад payload демонструє, як Bash Bunny використовує логіку перевірки наявності потрібних інструментів перед виконанням основної атаки. Скрипт rdp_checker шукає директорію impacket у внутрішньому каталозі /tools. Якщо вона відсутня, Bash Bunny автоматично завершує роботу і сигналізує про помилку через миготіння червоним (LED FAIL). Таким чином, payload не запускається, поки всі залежності не будуть задоволені. Це дозволяє уникнути ситуацій, де атака частково виконується або падає без результату.
Типова структура логіки payload:
REQUIRETOOL impacket— перевірка наявності пакету
Якщо OK → продовження сценарію
Якщо відсутній → червоний LED та зупинка
Дає зрозумілий фідбек, без потреби в терміналі
Для коректної роботи HID-ін’єкцій в середовищах з різною локалізацією Bash Bunny дозволяє вказувати мовну розкладку клавіатури. Стандартна — US (DUCKY_LANG us), але для роботи з системами у Франції, Німеччині, Україні чи Японії потрібні відповідні JSON-файли. Для цього треба помістити файл з іменем на кшталт fr.json, ua.json, de.json у папку /languages. Під час завантаження в Arming Mode вони автоматично активуються.
JSON-файл з розкладкою у
/languages
Команда
DUCKY_LANG ua— активує українську
Усі
QUACK-команди після цього слідують новій розкладці
Сумісно з Rubber Ducky-подібними HID-атаками
У Bash Bunny Mark II з’явились значні нововведення, які дозволяють виконувати складні атаки без прямої участі користувача. Одним із таких є режим масової ексфільтрації даних, який дозволяє автоматично визначити тип накопичувача і, в залежності від його присутності або відсутності, вибрати правильну точку для збереження результатів атак — або на внутрішню памʼять пристрою, або на MicroSD карту.
При наявності MicroSD-карти в позиціях 1 або 2 під час завантаження, внутрішня директорія /root/udisk автоматично вказуватиме на корінь карти, що робить ексфільтрацію більш гнучкою. Якщо ж карта відсутня — Bash Bunny працює з вбудованим SSD. Це дозволяє адаптувати поведінку пристрою під потреби конкретного завдання, не змінюючи конфігурацію кожного разу вручну.
Особливо вражаючим є впровадження Bluetooth Low Energy. Він використовується для:
Геофенсингу — запуск payload лише при наявності конкретного Bluetooth-пристрою (наприклад, «MBAudio»);
Дистанційного запуску наступного етапу атаки після подачі BLE-сигналу;
Оцінки оточення — Bash Bunny може зафіксувати усі рекламовані BLE-ідентифікатори поруч і використовувати їх у payload логіці.
Таким чином, нові функції Mark II суттєво підвищують прихованість, контроль над точкою атаки та безпеку для пентестера, який виконує інʼєкцію в зоні з невідомими ризиками.
Під час використання карт памʼяті в Bash Bunny важливо дотримуватись правил форматування. В залежності від ОС, з якою буде взаємодіяти пристрій, карта повинна мати правильну файлову систему. Наприклад, Windows системи краще працюють з FAT32, ExFAT або NTFS; macOS — з APFS або FAT32; а Linux — з EXT або FAT32.
Bash Bunny сам по собі підтримує тільки EXT і FAT32, тому навіть якщо цільова система підтримує інше — наприклад, NTFS — Bash Bunny не зможе працювати з нею напряму. Тому перед початком тестування потрібно переконатися, що карта форматована у правильному форматі. Інакше збереження логів, завантаження інструментів або виконання payload може завершитись помилкою.
Основні кроки підготовки MicroSD-карти:
Використати лише одну роздільну область (partition);
Вибрати сумісну файлову систему: FAT32 або EXT;
Перевірити, чи правильно розпізнається пристроєм через
/root/udisk;
Уникати одночасного монтування карти на Bash Bunny і хост, щоб не отримати конфлікт доступу.
Ці базові кроки дозволяють уникнути помилок при зчитуванні/записі та забезпечити стабільну роботу payloadʼів.
DuckyScript — це ключова мова Bash Bunny, яка дозволяє реалізувати атаки на основі клавіатурного введення. Будь-який скрипт, який містить команду QUACK, або її скорочену версію Q, може передати команди в систему-жертву так, наче їх вводив справжній користувач. Найпростіший приклад — відкрити PowerShell на Windows та запустити попередньо підготовлений скрипт:
1 GET SWITCH_POSITION 2 LED ATTACK 3 ATTACKMODE HID STORAGE 4 RUN WIN powershell ".((gwmi win32_volume -f 'label=''BashBunny''').Name+'payloads\\$SWITCH_ 5 LED FINISH
Потужність DuckyScript полягає в комбінації з BASH: скрипти можуть містити логіку, умови, затримки, перевірку результатів тощо. Це відкриває широкий спектр сценаріїв, від простого введення тексту до складних багатостадійних атак, де HID обʼєднується зі збереженням логів, мережевими атаками або завантаженням додаткових інструментів.
Основні команди DuckyScript:
QUACK STRING <текст>— друкує текст;
QUACK ALT F4— імітує гарячі клавіші;
QUACK DELAY 1000— пауза у виконанні;
LED STAGE1— змінює кольори для відображення статусу.
Саме DuckyScript створює ілюзію «людського» введення, яка важко відстежується системами захисту і часто дозволяє обходити навіть захищені компʼютери без розблокування екрана.
Bash Bunny, будучи універсальним пристроєм, дозволяє емулювати мережеві інтерфейси, щоб виводити комп’ютери жертви на ізольовану мережу, яку контролює сам Bash Bunny. За допомогою RNDIS або ECM режимів, пристрій може видавати себе за Ethernet-адаптер, через який комп’ютер автоматично намагається підключитися до інтернету. Завдяки цьому Bash Bunny отримує пріоритет як «найшвидша мережа», і починає перехоплювати трафік жертви, не викликаючи підозри. Це дає змогу здійснювати атаки MITM, DNS-spoofing, захоплення облікових даних та інші шкідливі дії.
Команди, які зазвичай використовуються:
ATTACKMODE RNDIS_ETHERNET— для Windows
ATTACKMODE ECM_ETHERNET— для macOS/Linux
GET TARGET_IP— отримання IP жертви
GET TARGET_HOSTNAME— для збереження логу з ідентифікатором
QuickCreds — один із найшвидших і найефективніших методів, який реалізується через Bash Bunny для викрадення NTLM-хешів. Метод базується на використанні мережевого режиму та запуску утиліти Responder, яка слухає трафік на підключеній до Bash Bunny мережі. Після підключення до комп’ютера-жертви, пристрій автоматично захоплює імена користувачів, хеші паролів, а також інші автентифікаційні дані в локальній мережі.
Типовий алгоритм дій:
Встановити
ATTACKMODE RNDIS_ETHERNET
Отримати ім’я хоста та IP
Запустити
Responder.pyз відповідними параметрами
Очікувати появу NTLM хешів у директорії
loot
Цей метод працює навіть на заблокованих машинах, дозволяючи отримати доступ до облікових даних у пасивному режимі, без активної взаємодії з користувачем.
Bash Bunny підтримує велику кількість попередньо налаштованих пейлоадів для ексфільтрації файлів — від простого копіювання до складних багатоступеневих сценаріїв з використанням хмарних сервісів або QR-кодів. Усі вони зосереджені на швидкому отриманні, стисненні та передачі конфіденційної інформації без збудження підозри. Сценарії можуть діяти через флеш-пам’ять, мережу або навіть через оптичні канали.
Ось 5 найефективніших:
USB EXFILTRATOR — копіює документи користувача у
loot
SMB EXFILTRATOR — використовує SMB для швидкої ексфільтрації через
robocopy
OPTICAL EXFILTRATOR — кодує дані у QR-коди, що зчитуються камерою
DROPBOX EXFILTRATOR — завантажує документи у Dropbox через staged PowerShell
TCP EXTRACTOR — передає zip-файл із даними через netcat
Ці payload’и охоплюють широкий спектр ситуацій — від фішингових кампаній до внутрішніх тестів безпеки на фізичному рівні.
Bash Bunny Mark II надає можливість отримати прямий доступ до системи через вбудований серійний порт, що дозволяє користувачам взаємодіяти з пристроєм на рівні ядра операційної системи. Це особливо корисно для розробників та фахівців з безпеки, які потребують глибокого контролю над пристроєм. Серійна консоль забезпечує доступ до оболонки root без необхідності використання додаткових адаптерів або спеціального програмного забезпечення.
Для підключення до серійної консолі на Windows-системах можна скористатися програмою PuTTY:
Відкрийте диспетчер пристроїв і знайдіть COM-порт, пов’язаний з Bash Bunny.
Запустіть PuTTY, виберіть тип з’єднання “Serial”, введіть номер COM-порту та встановіть швидкість 115200.
Натисніть “Open” для встановлення з’єднання.
На Linux або macOS системах можна використовувати утиліту screen:
Визначте назву пристрою, наприклад,
/dev/ttyUSB0або/dev/ttyACM0.
Виконайте команду:
sudo screen /dev/ttyUSB0 115200.
Для виходу натисніть
Ctrl+A, потімCtrl+\.
Цей доступ дозволяє виконувати діагностику, налаштування та розробку payload’ів безпосередньо на пристрої.
Одна з інноваційних функцій Bash Bunny Mark II — можливість запуску payload’ів за допомогою віддалених тригерів через Bluetooth Low Energy (BLE). Це дозволяє активувати певні дії на пристрої лише при наявності конкретного BLE-пристрою поблизу, що підвищує безпеку та контроль над виконанням сценаріїв.
Для реалізації цієї функції використовується команда WAIT_FOR_PRESENT, яка призупиняє виконання payload’а до виявлення зазначеного BLE-пристрою. Наприклад, можна налаштувати Bash Bunny так, щоб він активував HID-атаку лише при виявленні смартфона з певним ім’ям.
Це особливо корисно в сценаріях соціальної інженерії, де необхідно забезпечити точний момент активації атаки, наприклад, коли цільова особа відвертається або залишає робоче місце.
Геозонування (geofencing) в Bash Bunny Mark II дозволяє обмежити виконання payload’ів лише в певних фізичних локаціях, визначених наявністю або відсутністю конкретних BLE-пристроїв. Це забезпечує додатковий рівень безпеки, запобігаючи випадковому або небажаному запуску атак поза межами визначеної зони.
Для реалізації геозонування використовуються команди:
WAIT_FOR_PRESENT <ім'я пристрою>— очікує появи зазначеного BLE-пристрою перед продовженням виконання.
WAIT_FOR_NOT_PRESENT <ім'я пристрою>— призупиняє виконання, поки зазначений пристрій присутній поблизу.
Ці команди дозволяють точно налаштувати умови запуску payload’ів, забезпечуючи їх виконання лише в потрібному середовищі.
Для деяких сценаріїв, таких як оновлення прошивки, встановлення сторонніх утиліт або віддалене керування, Bash Bunny потребує доступу до Інтернету. Оскільки пристрій не має власного бездротового інтерфейсу, підключення відбувається через комп’ютер-жертву або пентестера шляхом спільного використання з’єднання. Bash Bunny імітує мережевий адаптер (через RNDIS для Windows або ECM для Linux/macOS), отримує внутрішню IP-адресу та використовує NAT або проксі для виходу в мережу. Налаштування залежить від операційної системи.
Windows: Відкрий «Центр мереж і спільного доступу», знайди підключення Bash Bunny (наприклад, Ethernet 2), натисни правою кнопкою → Властивості → Спільний доступ → Увімкни спільне з’єднання з головним інтернетом. Зазвичай Bash Bunny отримує IP 172.16.64.64.
Linux: Можна використати iptables або NetworkManager. Приклад: створити bridge, налаштувати DHCP-сервер (dnsmasq), активувати NAT через iptables.
macOS: Увімкни «Internet Sharing» у «System Preferences → Sharing». Поділися Wi-Fi або Ethernet з Bash Bunny через USB Ethernet.
Це налаштування дозволяє Bash Bunny отримувати пакети, оновлюватись, встановлювати інструменти з репозиторіїв або надсилати дані у віддалені серві
Hak5 активно підтримує Bash Bunny, випускаючи нові версії прошивок та payload-бібліотеки. Найзручніший спосіб — автоматичне оновлення через Bash Bunny Updater. Це кросплатформенна утиліта, яка автоматично завантажує нову прошивку, мови клавіатур, бібліотеки payload’ів і встановлює їх через Arming Mode. Процес триває 5–10 хвилин. Після завершення оновлення відбувається повне перезавантаження пристрою.
Коротка процедура:
Підключити Bash Bunny в Arming Mode (перемикач у позицію 3).
Запустити Bash Bunny Updater (Windows, Linux, macOS).
Дочекатися повідомлення про успішне завершення.
Перевірити
/version.txtна оновлену версію.
Після оновлення всі payload’и, бібліотеки та системні компоненти будуть у найновішому стані. Для безпечного тестування рекомендується робити резервну копію перед оновленням.
Якщо Bash Bunny Updater недоступний або виникли проблеми зі сполученням, оновлення можна виконати вручну. Для цього потрібно завантажити .tar.gz архів з офіційного сайту Hak5, не розпаковуючи його. У режимі Arming Mode Bash Bunny зчитує присутність цього файлу в корені накопичувача й запускає процедуру оновлення.
Завантажити актуальну прошивку з hak5.org/downloads
Скопіювати
.tar.gzв корінь масового сховища
Безпечно витягти Bash Bunny
Повторно підключити пристрій у тій самій позиції (Arming)
LED почне червоні-блакитне блимання (оновлення триває)
По завершенню — зелений або синій LED
Це альтернативний, надійний спосіб оновлення у разі нестабільного мережевого середовища.
Payload’и — це bash- або hybrid-скрипти, що автоматизують атакуючі дії пристрою. Вони містять команди Bash, DuckyScript, розширення та змінні. Розміщуються в директоріях /payloads/switch1/ або /payloads/switch2/, залежно від вибраного положення перемикача. Основний файл має назву payload.txt, але може включати додаткові файли, такі як library, extensions, resources, які підключаються під час виконання.
Типова структура простого payload:
LED SETUP ATTACKMODE HID STORAGE QUACK STRING whoami LED FINISH
Цей payload вмикає HID + STORAGE, вводить whoami, завершує миготінням. Payload’и можуть бути умовними, циклічними, чекати на події (WAIT_FOR), виконувати мережеві дії або реагувати на статус цілі.
DuckyScript™ — компактна, спеціалізована мова HID-інʼєкції, яка дозволяє симулювати натискання клавіш так, ніби їх вводить реальний користувач. Bash Bunny підтримує розширений варіант DuckyScript (v1.0–v2.0), із підтримкою умовних операторів, змінних, мови, шаблонів.
Ключові команди:
QUACK STRING <текст>— надрукувати текст
QUACK DELAY 1000— пауза в мілісекундах
QUACK CTRL ALT DELETE— комбінація клавіш
DUCKY_LANG ua— встановлення української мови HID
LED SETUP— кольоровий індикатор
У поєднанні з Bash, DuckyScript перетворюється на гнучкий інструмент автоматизації, особливо ефективний проти заблокованих або захищених систем.
Bash Bunny підтримує кастомні розширення, які підключаються до payload.txt для додаткової логіки. Вони зберігаються в директорії /payloads/library/extensions/ і автоматично підключаються при запуску сценарію. Наприклад, GET дозволяє зчитувати системну інформацію цілі, REQUIRETOOL перевіряє наявність необхідного інструменту, а DUCKY_LANG — перемикає розкладку клавіатури.
Приклади:
GET TARGET_IP— дізнатись IP жертви
RUN /tools/my-script.sh— запуск утиліти
REQUIRETOOL impacket— перевірити імпортований toolkit
Ці розширення суттєво спрощують payload’и, підвищують повторно використовуваність коду та зменшують ризик помилок.
ATTACKMODE визначає, які USB-пристрої емулює Bash Bunny при старті. Кожен режим активує відповідні драйвери та налаштування, які сприймаються ОС як нові периферійні пристрої. Це може бути клавіатура (HID), мережа (RNDIS, ECM), накопичувач (STORAGE) або їх комбінація.
Популярні приклади:
ATTACKMODE HID— клавіатура
ATTACKMODE STORAGE— флешка
ATTACKMODE RNDIS_ETHERNET— Windows мережевий адаптер
ATTACKMODE ECM_ETHERNET— адаптер для Linux/macOS
ATTACKMODE HID STORAGE— комбо для HID-інʼєкції + файлова передача
Також можливо задати кастомні USB-ідентифікатори:
VID 0x1FC9 PID 0xA4A1 MAN "Hak5" PROD "PayloadDevice" SN "BB2025"
Це дозволяє обійти фільтри USB-фільтрації або симулювати легітимні пристрої в корпоративному середовищі.
Світлодіод Bash Bunny — ключовий засіб комунікації з користувачем. Його поведінка сигналізує про стан завантаження, помилки, прогрес сценарію або завершення роботи. Світлодіод підтримує кольори (RGB), шаблони миготіння та зміну частоти.
Типові значення:
LED SETUP— магента (встановлення інструментів)
LED ATTACK— жовтий (атака в процесі)
LED FINISH— зелений (успішне завершення)
LED FAIL— червоний (помилка, збої)
LED SPECIAL PATTERN— чергування, блимання тощо
Можна створювати складні шаблони — наприклад, миготіння 3x синім + 1x червоним як індикатор певного етапу. LED слугує візуальним інтерфейсом, коли немає доступу до консолі.
У Bash Bunny починаючи з версії прошивки 1.3 впроваджено спеціальну систему керування енергоспоживанням і продуктивністю мікроконтролера. Для цього використовується команда CUCUMBER, яка дозволяє обирати один з трьох режимів роботи процесора. Ця функція має стратегічне значення при виконанні тривалих або чутливих атак, що вимагають або економії заряду, або максимальної обчислювальної потужності. Наприклад, для прихованих пасивних атак, які працюють годинами, зменшення кількості активних ядер може запобігти перегріванню та виявленню пристрою.
Режими CUCUMBER:
ENABLE — одне ядро, режим “ondemand” (енергозбереження)
DISABLE — чотири ядра, “ondemand” (балансована продуктивність)
PLAID — чотири ядра, “performance” (максимальна швидкодія)
Команда ATTACKMODE дозволяє Bash Bunny імітувати різні USB-пристрої. Найбільша гнучкість досягається шляхом комбінування кількох режимів в одному сценарії. Це дозволяє створювати атаки, що змінюються на льоту залежно від поведінки цілі. Наприклад, спочатку Bash Bunny може імітувати накопичувач, а після виявлення мережевого інтерфейсу активувати режим Ethernet. Такий підхід забезпечує більш гнучке, непередбачуване і динамічне проникнення в цільові системи. Це робить сценарії більш ефективними навіть у складних середовищах з кількома шарами захисту.
Приклади допустимих комбінацій:
ATTACKMODE HID STORAGE
ATTACKMODE HID ECM_ETHERNET
ATTACKMODE STORAGE RNDIS_ETHERNET
RGB-світлодіод на Bash Bunny є не лише декоративним елементом, а й функціональним індикатором поточного стану пристрою. Зміна кольору, миготіння або комбінація режимів дозволяє користувачу точно розуміти, що зараз відбувається з пристроєм. Це особливо важливо в польових умовах, коли пристрій не підключено до терміналу і не має зворотного зв’язку з користувачем. У стандартній практиці індикатори використовуються для ідентифікації таких станів як: завантаження, атака, завершення, помилка, і навіть для візуального поділу багатоступеневих сценаріїв.
Типові шаблони:
LED SETUP,LED ATTACK,LED FAIL,LED FINISH
Колір + режим:
LED R FAST,LED G SOLID,LED M 300
QUACK — це основна команда для введення натискань клавіш. Вона бере свої витоки з USB Rubber Ducky і стала стандартом де-факто для скриптів симуляції клавіатури. Її використання дозволяє виконувати будь-які сценарії, починаючи від відкриття PowerShell до запуску складних послідовностей дій.
Клавіатурний інжекшн стає особливо ефективним, коли поєднується з умовною логікою або попередніми етапами аналізу цілі. Додатково підтримуються Alt-коди, що розширює можливості введення символів, які відсутні на фізичній клавіатурі.
Приклади:
QUACK STRING Hello World
QUACK ALTCODE 236— символ нескінченності (∞)
Щоб збільшити довіру до Bash Bunny на стороні жертви, використовується метод спуфінгу — підміни ідентифікаційних даних USB-пристрою. Bash Bunny дозволяє вказати свої значення Vendor ID (VID), Product ID (PID), Manufacturer (MAN), Product (PROD) та серійний номер (SN), щоб здаватися звичайним пристроєм відомого виробника. Це особливо корисно в середовищах з USB-фільтрацією або політиками, які дозволяють лише певні типи пристроїв. Можна, наприклад, маскуватися під «Kingston USB Drive» або «Logitech Keyboard».
Синтаксис прикладу:
ATTACKMODE HID STORAGE VID_0XF000 PID_0X1234 MAN_LOGITECH PROD_KEYBOARD SN_1337
Масова пам’ять Bash Bunny (udisk) відіграє критично важливу роль у сценаріях: сюди записуються журнали, зберігаються payload-файли, інструменти, логування даних та інше. Оскільки пам’ять є спільною з системою жертви, важливо правильно керувати монтуванням: неправильне або одночасне монтування на хості та Bash Bunny може призвести до пошкодження файлів або непередбачуваної поведінки. Саме тому команда udisk mount існує для явного монтування в середині Bash Bunny, що дозволяє точно контролювати доступ та уникнути конфліктів.
Основні підкоманди:
udisk mount, udisk unmount, udisk remount, udisk reformat
syncУсі payload’и Bash Bunny автоматично синхронізують файлову систему після завершення, однак у певних сценаріях (наприклад, циклічне логування) розумне використання sync є критично необхідним. Якщо запис до udisk здійснюється в середині нескінченного циклу або payload переривається нештатно, без синхронізації ці дані не будуть записані фізично. Тому payload’и повинні завершуватись викликом sync, що гарантує збереження файлів. У поєднанні з LED FINISH це дозволяє безпечно витягнути Bash Bunny після завершення сценарію.
В залежності від характеру навантаження, Bash Bunny може змінювати режим обчислення “на ходу”. Це дозволяє, наприклад, на етапі атаки використовувати повну потужність (CUCUMBER PLAID), а після — перейти в енергоощадний режим (CUCUMBER ENABLE) для тривалого очікування або логування. Важливо також зазначити, що перемикання між режимами відбувається динамічно — без перезавантаження Bash Bunny, що дозволяє писати багатоетапні та адаптивні скрипти навіть під час виконання. Такий підхід ідеально підходить для довготривалих атак з контрольованим тепловим профілем.
Завершення сценарію повинно бути чітко визначеним. Рекомендовано використовувати LED-повідомлення (LED FINISH), sync, а також фінальні повідомлення або створення спеціальних маркерних файлів. Це дозволяє оператору Bash Bunny переконатись, що сценарій виконався повністю.
Більш того, такі фінальні сигнали можуть виступати як тригери для наступного етапу атаки (наприклад, запуск другого сценарію після вилучення Bash Bunny). У складних атаках, де важлива послідовність, ці маркери критично важливі.
Типові дії наприкінці сценарію:
sync
LED FINISH
echo COMPLETE > /root/udisk/loot/marker.txt
Bash Bunny — це не просто USB-інструмент для атаки, а повноцінна платформа автоматизації, що з’єднує світ операційних систем, hardware-експлуатації та сценаріїв соціальної інженерії. Його сила полягає в адаптивності: завдяки підтримці кількох ATTACKMODE, розширюваній файловій системі, гнучкому HID-інʼєкційному DuckyScript, RGB-індикації, BLE-тригерам і динамічному перемиканню режимів CPU — він забезпечує повний контроль над етапами проникнення, збору даних та ексфільтрації.
Усе це робить Bash Bunny незамінним інструментом у руках професійного пентестера, особливо в умовах обмеженого фізичного доступу, жорсткої сегментації мереж або ретельної фільтрації USB. Правильне використання кожного модуля — від ATTACKMODE HID STORAGE до CUCUMBER PLAID — дозволяє реалізовувати атаки, які раніше були можливі лише за участі декількох пристроїв та ручної роботи.
Сучасний захист потребує глибокого розуміння таких інструментів не лише для оборони, а й для вивчення своїх слабких сторін. Саме Bash Bunny дозволяє змоделювати сценарії, які можуть обійти політики безпеки, побудовані на припущенні про «безпечність» USB-пристроїв.