BadUSB-устройства в пентесте: практическое руководство
Термин BadUSB в строгом смысле означает перепрошивку firmware контроллера USB так, чтобы устройство эмулировало HID-клавиатуру и внедряло команды в систему без какой-либо авторизации (концепцию показали Карстен Нол и Якоб Лелль на BlackHat 2014). В практике пентеста под этим понятием скрывается целый класс инструментов keystroke injection - от микроконтроллера за пару долларов до кабеля с собственной панелью C2 по Wi-Fi. Это не академическая диковинка: в январе 2022 года ФБР выпустило оповещение FLASH о группе FIN7, которая рассылала по почте подготовленные USB-устройства (оборудование LilyGO), выдавая их за подарки от Amazon и министерства здравоохранения США, с программой-вымогателем BlackMatter/REvil в конце цепочки.
Содержание
Ключевые выводы
| Пункт | Подробности |
|---|---|
| Эмуляция HID как основа атаки | Каждое устройство BadUSB работает как виртуальная клавиатура, что позволяет обойти большинство средств защиты. |
| Выбор устройства зависит от сценария | Bash Bunny подойдёт для сложных аудитов, Digispark - для обучения и бюджетных тестов. |
| Одного антивируса мало | Сигнатурный антивирус не видит бесфайловую инъекцию, но поведенческий EDR ловит цепочку после внедрения, а загруженная вторая ступень - это уже файл для сканирования. |
| Защита требует уровней безопасности | Эффективная политика USB сочетает whitelisting VID/PID, USBGuard и физические блокировки портов. |
| Документация обязательна | Каждое применение устройства BadUSB в аудите должно быть закреплено в письменном объёме работ. |
1. Критерии оценки и выбора устройств BadUSB для пентеста
Выбор устройства BadUSB для конкретного задания начинается с анализа нескольких ключевых параметров. Без этого анализа возникают ситуации, когда дорогое оборудование не даёт ничего сверх того, что сделал бы более дешёвый аналог.
Возможности эмуляции устройства - это первый критерий. Часть устройств эмулирует только HID-клавиатуру. Другие способны одновременно выдавать себя за сетевую карту, накопитель и клавиатуру, что открывает совершенно иные векторы атаки.
Возможности конфигурации и программирования определяют гибкость в полевых условиях. Устройства с собственным скриптовым языком (Ducky Script, Bunny Script) позволяют быстро адаптировать payload под конкретную тестируемую среду.
Цена против возможностей - это практический аспект. Разброс цен велик. Клон Digispark стоит пару долларов (у нас 28 zł), USB Rubber Ducky - около 60-90 USD (675 zł), а Bash Bunny Mark II - около 210 USD (1458 zł). Бюджет задания должен напрямую отражаться на выборе оборудования - более дорогое устройство имеет смысл лишь тогда, когда объём аудита задействует его дополнительные режимы.
Простота использования и интеграция определяют, сколько времени займёт развёртывание устройства в тестовой среде. Для пентестеров, работающих в поле, важно время от подключения до выполнения payload.
Правовые и этические аспекты неотъемлемы. Каждое применение устройства BadUSB должно быть охвачено письменным объёмом работ и согласием владельца системы. Владеть оборудованием законно, использовать без согласия - нет.
Безопасность firmware - вопрос, который многие упускают. Устройства с открытым исходным кодом позволяют провести аудит кода. Дешёвые клоны из неизвестных источников могут содержать собственные бэкдоры.
Совет профессионала: Всегда сначала тестируй новое устройство BadUSB в изолированной виртуальной среде, прежде чем применять его в среде клиента. Ошибка в payload на рабочей машине может завершить задание быстрее, чем любая система защиты.
2. Обзор самых популярных устройств BadUSB для пентеста
Рынок устройств для USB-пентеста разнообразнее, чем подсказывает большинство списков "топ-5". Ниже рассмотрены модели, которые действительно попадают в руки пентестеров.
USB Rubber Ducky
USB Rubber Ducky считается стандартом в тестах внедрения команд HID. Payload пишут на языке DuckyScript - простой пример, который открывает Блокнот и вводит текст, демонстрирует ключевую особенность атаки: команды поступают в систему со скоростью интерфейса, а не человека.
REM Demonstracja szybkosci wstrzykiwania - otwiera Notatnik
DELAY 1000
GUI r
DELAY 500
STRINGLN notepad
DELAY 1000
STRINGLN Ten tekst wpisalo urzadzenie HID w ulamku sekundy.
Каждая команда буквальна: GUI r - это сочетание Windows+R, STRINGLN вводит текст и подтверждает Enter, а DELAY ждёт заданное число миллисекунд. В реальном payload нужно учитывать раскладку клавиатуры цели - устройство отправляет коды клавиш, а не символы, поэтому payload, написанный под US-QWERTY, наберёт на клавиатуре с другой раскладкой бессмыслицу. Сам Ducky V2 уже не "только клавиатура": DuckyScript 3.0 добавляет режим накопителя, клонирование VID/PID и эксфильтрацию данных техникой Keystroke Reflection. Чего нет - так это эмуляции сетевой карты, и именно это отличает его от Bash Bunny.
-
Эмуляция: HID (клавиатура) + режим накопителя
-
Скриптовый язык: DuckyScript 3.0
-
Цена в SAPSAN: 675 zł (около 60-90 USD)
-
Применение: быстрое внедрение команд, тесты social engineering, эксфильтрация через Keystroke Reflection
Hak5 Bash Bunny
Bash Bunny Mark II - устройство более высокого класса, способное одновременно эмулировать клавиатуру, сетевую карту Ethernet и накопитель. Режимы объявляются одной строкой, например ATTACKMODE HID RNDIS_ETHERNET STORAGE. Это позволяет выстраивать сложные последовательности: в атаке QuickCreds устройство сначала выдаёт себя за сетевую карту, чтобы заставить заблокированную станцию пройти аутентификацию и перехватить хеш NTLMv2 (Responder), а затем переключается в режим клавиатуры, чтобы запустить payload. Переключение между режимами занимает секунды.
-
Эмуляция: HID, Ethernet (RNDIS/ECM), накопитель, последовательный порт
-
Скриптовый язык: Bash, Python, DuckyScript
-
Цена в SAPSAN: 1458 zł (около 210 USD)
-
Применение: продвинутые аудиты сети и Active Directory
OMG Cable
O.MG Cable выглядит точно как обычный кабель USB, но в корпусе у него микроконтроллер с Wi-Fi и собственная панель C2, управляемая из браузера. Это не "HID по Wi-Fi", а полноценный имплант: он внедряет клавиатуру и мышь, версия Elite имеет аппаратный кейлоггер, сохраняющий около 650 000 знаков, поддерживает геозонирование (payload срабатывает только в заданном месте) и самоуничтожение, которое делает кабель бесполезным после выхода за пределы зоны. Пентестер может управлять атакой из соседнего помещения.
-
Эмуляция: HID (клавиатура + мышь), управляемый по Wi-Fi
-
Функции: панель C2 в браузере, кейлоггер (Elite), геозонирование, самоуничтожение
-
Цена в SAPSAN: 968-1298 zł (в зависимости от версии)
-
Применение: тесты с сохранением физической дистанции, скрытая форма
Digispark
Digispark - миниатюрный микроконтроллер на базе ATtiny85, самый дешёвый и доступный из всех рассмотренных решений. Программируется в среде Arduino, имеет ограниченную память (около 6 КБ на payload) и эмулирует только клавиатуру. Продвинутых функций нет, но как обучающая платформа и инструмент для базовых тестов внедрения команд он хорошо подходит - особенно при узком объёме, где более дорогое оборудование ничего не добавляет.
-
Эмуляция: HID (клавиатура)
-
Программирование: Arduino IDE
-
Цена в SAPSAN: 28 zł (клоны от нескольких USD)
-
Применение: обучение, бюджетные тестовые среды
WHID Injector и Packet Squirrel
WHID Injector (Cactus WHID) сочетает внедрение HID с модулем Wi-Fi в форме флешки - более дешёвая, открытая альтернатива для удалённого управления payload, построенная на чипе ESP8266 (169 zł). Это по-прежнему устройство класса keystroke injection.
К иному классу относится Packet Squirrel Mark II - это сетевой имплант, а не устройство BadUSB. Он не внедряет клавиатуру; он вставляется в кабель Ethernet между станцией и сетью и работает как device-in-the-middle: перехватывает трафик (PCAP), выполняет DNS spoofing, поднимает VPN/SSH и даёт удалённый доступ к сети цели. Это преемник заслуженного LAN Turtle, который давно недоступен и так и не получил новой версии. Эту разницу стоит понимать: Rubber Ducky или O.MG атакуют через порт USB как клавиатура, а Packet Squirrel сидит на сетевом кабеле.
3. Сравнение устройств BadUSB: таблица для пентестеров
Следующая сводка собирает важнейшие параметры устройств в одном месте, чтобы облегчить решение о покупке и эксплуатации.
| Модель | Класс | Эмуляция / функция | Программирование | Цена в SAPSAN |
|---|---|---|---|---|
| USB Rubber Ducky V2 | Инъекция HID | HID + режим накопителя | DuckyScript 3.0 | 675 zł |
| Bash Bunny Mark II | HID + сеть | HID, Ethernet (RNDIS/ECM), storage, serial | Bash / Python / DuckyScript | 1458 zł |
| O.MG Cable | Инъекция HID (Wi-Fi C2) | HID клавиатура+мышь, кейлоггер, геозонирование | DuckyScript + веб-панель | 968-1298 zł |
| Digispark | Инъекция HID (бюджет) | HID (клавиатура) | Arduino IDE | 28 zł |
| WHID Injector | Инъекция HID (Wi-Fi) | HID + удалённый Wi-Fi | Веб-панель / Arduino | 169 zł |
| Packet Squirrel Mark II | Сетевой имплант | Ethernet MITM, PCAP, VPN/SSH (не HID) | Bash / Python / DuckyScript | 780 |
Подсказки по подбору устройства под сценарий:
Если аудит касается реакции сотрудников на брошенные USB-устройства, достаточно USB Rubber Ducky или Digispark. Если объём включает перехват доменной сессии или извлечение учётных данных из Active Directory, правильный инструмент - Bash Bunny. O.MG Cable подходит, когда пентестеру нужно сохранять физическую дистанцию от атакуемой станции. А когда тест касается проводной сети и перехвата трафика, берут не клавиатурный BadUSB, а сетевой имплант - Packet Squirrel Mark II.
Совет профессионала: При покупке устройства BadUSB проверь, поддерживает ли производитель активное сообщество и репозиторий payload. Оборудование без актуальных ресурсов быстро теряет полезность в меняющихся тестовых средах.
4. Вызовы и техники защиты от атак BadUSB
Знание методов защиты для пентестера так же важно, как знание техник атаки. Проводя тесты безопасности USB, нужно понимать, что работает на стороне защитника, а что лишь выглядит эффективной мерой.
-
Контроль устройств USB и whitelisting VID/PID. Фильтрация по идентификаторам производителя (VID) и продукта (PID) - наиболее часто внедряемый механизм. Проблема в том, что эти идентификаторы - значения из firmware, полностью контролируемые атакующим: устройство можно настроить так, чтобы оно выдавало себя за VID/PID разрешённой клавиатуры (Rubber Ducky или WHID способны клонировать дескрипторы легитимного устройства). Поэтому whitelisting VID/PID - мера, усложняющая, а не блокирующая атаку; более сильная привязка использует серийный номер и хеш дескриптора, но и их можно подделать.
-
Физические блокировки портов USB. Механические блокировки портов или их отключение в BIOS/UEFI - методы, которые защитники применяют как дополнение к программным политикам. Эффективны в средах высокого риска. Недостаток - значительное снижение эргономики работы пользователей.
-
USBGuard и Endpoint Protector. USBGuard в Linux позволяет создавать политики, допускающие только заранее определённые устройства. Endpoint Protector работает в Windows и macOS, предлагая централизованно управляемые политики USB. Оба инструмента требуют правильной настройки, потому что настройки по умолчанию часто не блокируют новые устройства HID.
-
Ограничения сигнатурных антивирусов. Сама инъекция бесфайловая - нажатия клавиш с виртуальной клавиатуры никогда не попадают на диск, поэтому сигнатурному сканеру нечего анализировать. Но это не значит, что защитник беспомощен: поведенческий EDR обнаруживает цепочку после внедрения (например, explorer.exe, запускающий PowerShell через секунды после подключения USB), сверхчеловеческий и равномерный темп "набора" выдаёт автомат, а любая загруженная вторая ступень атаки - это уже файл для сканирования. Это различие - сигнатуры слепы, поведенческий анализ нет - пентестеру стоит чётко описать в отчёте.
-
Обучение пользователей. Самый трудный аспект защиты от BadUSB в том, что атаки опираются на эмуляцию клавиатуры, то есть устройства, необходимого для обычной работы. У пользователей нет простого способа отличить атакующее устройство от настоящей клавиатуры без дополнительных инструментов.
-
Мониторинг событий и поведенческое обнаружение. Подключение новой "клавиатуры" порождает в Windows событие 6416 (распознавание нового внешнего устройства) - особенно подозрительно, когда вторая клавиатура регистрируется на станции, у которой уже есть одна. SIEM также может коррелировать аномальное создание процессов (PowerShell, запущенный через секунды после подключения USB) с темпом клавиш. Существуют готовые инструменты: DuckHunt и Beamgun отслеживают ритм набора и подключения USB и способны заблокировать станцию после обнаружения инъекции. Это обнаружение, а не предотвращение - замедленный, "дрожащий" payload способен его обойти, а быстрая вставка из буфера обмена порождает ложные срабатывания.
-
Эффективная политика безопасности USB требует сочетания контроля устройств, обучения пользователей и физической защиты портов. Ни один из этих элементов по отдельности недостаточен.
5. Мой опыт работы с устройствами BadUSB в пентестах
Я работаю с устройствами BadUSB достаточно долго, чтобы иметь несколько наблюдений, которых не найти в документации производителя.
Во-первых: эффективность этих инструментов в реальных аудитах значительно выше, чем большинство клиентов предполагает до теста. Команды, внедряемые через HID, поступают в систему со скоростью опроса интерфейса, а не со скоростью человека, печатающего на клавиатуре. На практике payload запускается в течение нескольких секунд после подключения устройства.
Во-вторых: самая частая ошибка пентестеров - не тестировать payload на точно такой же версии операционной системы, как у клиента. Payload, написанный под Windows 10, может вести себя иначе на Windows 11, особенно когда запускает команды PowerShell с флагами безопасности, изменёнными Microsoft.
В-третьих: Bash Bunny в руках пентестера со слабым пониманием сетевых протоколов - устройство, которое делает меньше, чем стоит. Продвинутое оборудование требует продвинутых знаний, чтобы применять его осмысленно. Я видел задания, где Digispark за 15 USD достигал того же эффекта, что и Bash Bunny за 120 USD, потому что объём аудита был узким.
Что действительно работает: сочетание USB Rubber Ducky для физических тестов social engineering и Bash Bunny для аудитов Active Directory. O.MG Cable я добавляю только тогда, когда аудит требует присутствия устройства у станции в течение более долгого времени и удалённого управления. Документирование каждого применения так же важно, как сама атака - отчёт без точных шагов воспроизведения бесполезен для ИТ-отдела клиента.
Оборудование BadUSB для пентестеров в ассортименте Sapsan-sklep
Sapsan-sklep как европейский дистрибьютор оборудования для кибербезопасности предлагает устройства BadUSB, рассмотренные в этой статье, с доставкой по всему Европейскому союзу и в США.
В нашем ассортименте вы найдёте полный класс keystroke injection: USB Rubber Ducky (675 zł), Bash Bunny Mark II (1458 zł), O.MG Cable (от 968 zł), бюджетный Digispark (28 zł) и WHID Injector (169 zł). Для тестов проводной сети доступен имплант Packet Squirrel Mark II (780 zł). Все устройства предназначены исключительно для легальных тестов безопасности с письменного согласия владельца системы. Полный ассортимент: sapsan-sklep.pl.
FAQ
Чем BadUSB отличается от обычной флешки?
BadUSB - это устройство с перепрошитой firmware, которое эмулирует HID-клавиатуру и внедряет команды в систему. Обычная флешка лишь хранит данные и не выполняет никаких действий при подключении.
Какое устройство BadUSB выбрать для первого аудита USB?
USB Rubber Ducky - наиболее часто рекомендуемый выбор для пентестеров, начинающих тесты безопасности USB. Простой скриптовый язык и большая база готовых payload сокращают время входа до минимума.
Обнаружит ли антивирус атаку BadUSB?
Сигнатурный антивирус не обнаружит саму инъекцию - команды с виртуальной клавиатуры система воспринимает как обычный ввод, а атака бесфайловая. Зато её обнаруживает поведенческий EDR, по последствиям: необычной цепочке процессов и загруженной второй ступени атаки, которая уже является обычным файлом.
Как законно использовать устройства BadUSB?
Каждое применение устройства BadUSB требует письменного согласия владельца тестируемой системы и должно быть охвачено объёмом задания по пентесту. Использование без согласия незаконно независимо от намерений.
Подходит ли Digispark для профессиональных аудитов?
Digispark подходит для простых тестов внедрения HID и для обучающих сред. Для профессиональных аудитов, включающих сетевую эмуляцию или сложные payload, необходимо устройство класса Bash Bunny.
