Режим Bad USB на Flipper Zero заставляет устройство определяться компьютером как обычная USB-клавиатура и автоматически «печатать» заранее записанный скрипт — поэтому любая ошибка в файле скрипта или случайный запуск на неподготовленной системе приводит к вводу команд не туда, куда планировалось. Именно с проверки содержимого скрипта и окружения, в котором он будет исполняться, начинается любая работа с этой функцией.
В этой статье разберём, как устроен режим Bad USB, как писать и отлаживать скрипты на языке Ducky Script, какие ошибки встречаются чаще всего и где проходит граница легального применения. Материал ориентирован на владельцев Flipper Zero, которые используют устройство для обучения, тестирования собственной инфраструктуры и автоматизации рутинных действий на своих компьютерах.
Как работает режим Bad USB
Принцип основан на доверии операционных систем к HID-устройствам (Human Interface Device). Когда Flipper Zero подключается к компьютеру в режиме Bad USB, он отправляет дескриптор клавиатуры, и система принимает его «нажатия клавиш» так же, как ввод с физической клавиатуры — без запроса разрешений и дополнительных драйверов.
Скрипт представляет собой текстовый файл с расширением .txt, написанный на языке Ducky Script. Каждая строка — это команда: задержка, ввод строки, нажатие сочетания клавиш. Flipper исполняет файл последовательно, сверху вниз, с заданной скоростью.
Важно понимать ограничение: Bad USB не «взламывает» компьютер сам по себе. Он лишь автоматизирует ввод — всё, что делает скрипт, в принципе мог бы сделать человек за клавиатурой. Эффективность сценария зависит от состояния системы: открыт ли нужный интерфейс, есть ли права, не заблокирован ли экран.
Bad USB — это эмуляция клавиатуры, а не эксплойт. Скрипт лишь ускоряет ввод команд, которые пользователь мог бы набрать вручную.
Подготовка Flipper Zero к запуску скриптов
Перед первым запуском убедитесь, что прошивка устройства обновлена: старые версии могут не поддерживать часть команд Ducky Script или обрабатывать их иначе. Обновление выполняется через официальное приложение qFlipper или мобильное приложение — точный порядок зависит от версии прошивки, поэтому сверяйтесь с официальной документацией.
Файлы скриптов размещаются на microSD-карте в папке badusb. Загрузить их можно тремя способами: через qFlipper по USB, через мобильное приложение по Bluetooth или вставив карту в картридер компьютера. После копирования скрипт появится в меню Bad USB на самом устройстве.
Порядок запуска на устройстве выглядит так: откройте приложение Bad USB, выберите файл, подключите Flipper к целевому компьютеру кабелем и нажмите Run. До нажатия кнопки запуска никакого ввода не происходит — у вас есть время убедиться, что курсор и фокус окна находятся там, где нужно.
☑️ Проверка перед запуском Bad USB
Основы Ducky Script: команды и синтаксис
Язык Ducky Script минималистичен. Основные команды: STRING печатает текст, DELAY задаёт паузу в миллисекундах, ENTER имитирует нажатие Enter, а сочетания вроде GUI r (Windows) или ALT F2 (Linux) открывают системные диалоги. Комментарии начинаются с REM.
Простейший пример — открытие «Блокнота» в Windows и вывод текста:
REM Открыть Блокнот и напечатать текст
DELAY 1000
GUI r
DELAY 500
STRING notepad
ENTER
DELAY 1000
STRING Hello from Flipper!
Две типичные ошибки новичков связаны именно с этим примером. Первая — отсутствие задержек: система не успевает открыть окно, и часть ввода теряется. Вторая — раскладка: STRING отправляет коды клавиш, и если на целевой машине активна кириллическая раскладка, латинские символы могут напечататься некорректно. Точное поведение зависит от прошивки и настроек, поэтому тестируйте на конкретной системе.
- ⌨️
STRING— печатает строку посимвольно, чувствителен к раскладке - ⏱️
DELAY— пауза в миллисекундах, критична для стабильности - 🪟
GUI r— сочетание Win+R в Windows для запуска программ - 🔁
REPEAT— повтор предыдущей команды заданное число раз
Типичные ошибки и их диагностика
Если скрипт не запускается или работает некорректно, начните с простейшей проверки: откройте на целевом компьютере текстовый редактор и запустите скрипт, состоящий только из одной строки STRING test. Если текст появился — эмуляция клавиатуры работает, и проблема в логике основного скрипта. Если нет — проверяйте кабель, порт и то, что Flipper действительно находится в режиме Bad USB.
Частая причина сбоев — слишком быстрый ввод. Увеличьте значения DELAY, особенно после открытия окон и перед вводом в поля. Ещё одна возможная причина — антивирус или политика безопасности, блокирующая новые HID-устройства: в этом случае система может вообще не регистрировать нажатия, и это видно в журналах безопасности.
⚠️ Внимание: никогда не запускайте чужие скрипты, не прочитав их построчно. Файл из интернета может содержать команды удаления данных, открытия сетевых соединений или изменения системных настроек. Правило простое: не понимаете строку — не запускайте скрипт.
Отдельный класс проблем — несовместимость синтаксиса. Разные прошивки (официальная и сторонние) могут поддерживать разный набор команд Ducky Script. Если команда игнорируется, проверьте в документации именно вашей прошивки, поддерживается ли она.
Легальные сценарии применения
Режим Bad USB легален, когда применяется к собственным устройствам или в рамках явно санкционированного тестирования. Типичные законные сценарии: автоматизация настройки нового компьютера, быстрое развёртывание одинаковых конфигураций на нескольких своих машинах, обучение специалистов по ИБ, демонстрация рисков на учебном стенде.
Несанкционированное подключение к чужому компьютеру и выполнение команд без ведома владельца в большинстве юрисдикций квалифицируется как неправомерный доступ к компьютерной информации. Даже «шуточный» скрипт на чужой машине может стать основанием для юридических последствий, не говоря уже о скриптах, меняющих настройки или копирующих данные.
⚠️ Внимание: в корпоративной среде даже тестирование собственного рабочего ПК может нарушать внутренние политики безопасности. Перед любыми проверками получите письменное согласование с отделом ИБ или руководством.
Как оформить разрешение на пентест с Bad USB
В согласии на тестирование укажите: перечень целевых систем, временные рамки, допустимые методы (включая физический доступ и USB-устройства), ответственных лиц и порядок отката изменений. Документ подписывается обеими сторонами до начала работ.
Защита компьютера от Bad USB-атак
Раз Flipper имитирует клавиатуру, защита строится на контроле HID-устройств и минимизации ущерба от нежелательного ввода. Полностью отключить USB-клавиатуры нельзя — но можно ограничить сценарии, при которых вредоносный ввод причинит вред.
- 🔒 Блокируйте экран при отходе от компьютера — большинство скриптов бессильны на экране блокировки
- 🛡️ Используйте ПО контроля устройств (device control), если оно предусмотрено вашей корпоративной политикой
- 👁️ Следите за незнакомыми устройствами, подключёнными к портам, особенно в общественных местах
- 🔑 Работайте под учётной записью без прав администратора — это ограничит возможный ущерб
Для организаций дополнительный уровень — мониторинг событий подключения устройств в журналах ОС и обучение сотрудников. Технические меры снижают риск, но именно бдительность пользователя чаще всего является последней линией защиты.
Храните свои Bad USB-скрипты в отдельной папке с понятными именами и комментариями REM в начале каждого файла — через месяц вы сами не вспомните, что делает файл run2_final.txt.
Сравнение Bad USB с другими функциями Flipper
Чтобы понимать место Bad USB в экосистеме устройства, полезно сопоставить его с соседними функциями. Точный набор возможностей зависит от версии прошивки, поэтому таблица отражает общие принципы, а не исчерпывающие характеристики.
| Функция | Что эмулирует | Типичное применение |
|---|---|---|
| Bad USB | USB-клавиатуру | Автоматизация ввода, тесты ИБ |
| Sub-GHz | Радиосигналы | Изучение брелоков, датчиков |
| RFID / NFC | Метки и карты | Чтение и эмуляция пропусков |
| GPIO | Аппаратные интерфейсы | Работа с внешними модулями |
Bad USB уникален тем, что взаимодействует не с радиоэфиром, а напрямую с операционной системой через доверенный интерфейс клавиатуры.
FAQ: частые вопросы о Bad USB на Flipper Zero
Определяется ли Flipper в режиме Bad USB как флешка?
Нет, в этом режиме устройство представляется системе как HID-клавиатура. Доступа к файлам на microSD-карте компьютер при этом не получает. Для передачи файлов используется отдельный режим или приложение qFlipper.
Почему скрипт печатает не те символы?
Наиболее вероятная причина — несовпадение раскладки клавиатуры целевой системы с той, под которую написан скрипт. Проверьте раскладку на целевой машине и протестируйте вывод простой строкой STRING в текстовом редакторе.
Можно ли остановить скрипт в середине выполнения?
Да, на устройстве предусмотрена остановка выполнения кнопкой. Точный элемент управления зависит от версии прошивки — уточните в её документации. Как крайняя мера всегда работает физическое отключение кабеля.
Работает ли Bad USB с macOS и Linux?
Эмуляция HID-клавиатуры работает на любой ОС, принимающей USB-клавиатуры. Однако сами команды скрипта (сочетания клавиш, названия программ, команды терминала) специфичны для каждой системы — скрипт под Windows не сработает на macOS без переработки.
Нужны ли сторонние прошивки для Bad USB?
Базовый функционал Bad USB доступен в официальной прошивке. Сторонние прошивки могут расширять набор команд, но их установка — на ваш страх и риск: внимательно изучайте источник и документацию перед любыми изменениями.