BadUSB: что это такое, как работает и где применяется
Для поиска и проверки уязвимостей информационных систем и компьютерных сетей существуют специализированные аппаратные инструменты. Этичные хакеры, специалисты red team и эксперты по кибербезопасности используют их в ходе авторизованных тестов, чтобы оценить устойчивость инфраструктуры клиента к атаке. Те же устройства могут применять злоумышленники, создавая реальную угрозу для компаний. Один из таких инструментов — BadUSB. Как он работает и какой вред способен причинить после подключения к компьютеру? Разбираемся в статье.
Как выглядит и как работает BadUSB?
BadUSB внешне напоминает обычную флешку, но после подключения к USB-порту может выполнить опасные действия. Операционная система распознаёт его как Human Interface Device (HID) — устройство ввода, в данном случае клавиатуру. Такая виртуальная клавиатура автоматически «нажимает» заранее запрограммированную последовательность клавиш и выполняет команды на компьютере.
После подключения BadUSB отправляет команды, сочетания клавиш и заранее подготовленные строки символов. По сути, это похоже на передачу клавиатуры человеку, который получает возможность управлять системой от имени текущего пользователя.

Примеры устройств BadUSB
Один из примеров — Malduino компании Maltronics, способный выполнять скрипты со скоростью более 9000 символов в минуту. Популярностью пользуется и USB Rubber Ducky, однако он примерно вдвое дороже устройств Malduino. Более доступная альтернатива — Malduino W, на котором скрипты BadUSB можно запускать удалённо или по команде. Через простой веб-интерфейс можно:
- запускать;
- редактировать;
- удалять;
- загружать различные скрипты с GitHub.
Программирование BadUSB: скрипты
Для BadUSB подготавливают скрипт и загружают его на карту памяти, установленную в устройстве. Затем скрипт компилируется в бинарный формат, который выполняет встроенный контроллер.
Flipper Zero — исключение: для него скрипт не нужно компилировать в бинарный формат, достаточно загрузить текстовый файл.
Пример простого скрипта BadUSB:
DELAY 1000
ALT F2
DELAY 1000
STRING gedit
DELAY 1000
STRING Вас
DELAY 1000
STRING взломали
ENTER
DELAY 1000
STRING Привет от
DELAY 1000
STRING SAPSAN
DELAY 1000
STRING !!! :)
После подключения BadUSB с таким скриптом* откроет текстовый редактор и автоматически введёт заранее заданный текст:
Вас взломали
Привет от SAPSAN !!! :)
*Этот скрипт предназначен для Linux с окружением GNOME. Параметр DELAY задаёт задержку в миллисекундах перед вводом следующей команды, поэтому текст может выглядеть так, будто его набирает человек.
@krystian.hutyra Поддержка DuckyScript 🦆 — прекрасная вещь. #flipperzero #rickroll #информатика #hacking #badusb ♬ Never Gonna Give You Up — Rick Astley
Примеры применения BadUSB: что может произойти?
Автоматический ввод текста — лишь безопасная демонстрация. Злоумышленники могут подготовить опасные скрипты для разных операционных систем, загрузить вредоносное ПО или извлечь данные из каталогов. Например, содержимое папки можно опубликовать через SimpleHTTPServer как веб-сервис на стандартном порту 8000, после чего пользователь с соответствующими правами получит к нему доступ.
Корпус BadUSB нередко легко разобрать, а плату — спрятать в другом, внешне безобидном USB-устройстве. Подключение такого гаджета к разблокированному компьютеру под учётной записью администратора может причинить серьёзный ущерб. Подобные инциденты встречаются реже, чем взломы аккаунтов в интернет-сервисах, поэтому для защиты учётных записей стоит настроить аппаратный ключ аутентификации.