Универсальность шины USB создает большую поверхность атаки. Исследователи из Университета Бен-Гуриона выделяют почти три десятка хакерских техник использования USB. В данной статье мы рассмотрим один из самых эффективных вариантов — автоматизированную отправку команд при помощи самодельного устройства класса HID.
 

HID-атаки

HID-атака — хитрая разновидность BadUSB. Ее суть сводится к тому, что в USB-порт вставляется простейший хакерский девайс, эмулирующий устройство ввода. Практически любая современная ОС поддерживает plug-n-play и содержит универсальный драйвер устройства каждого класса. Хакерский девайс автоматически определяется ОС как нужный нам Human Interface Device — HID. Далее ОС безо всяких проверок принимает его команды.

Есть много готовых девайсов для атак через USB-порт. Например, Rubber Ducky и ее разновидности. На мой взгляд, интереснее разобраться, как сделать такую штуку самому. Это довольно просто (когда знаешь как) и дешево. Нам даже флешка на этот раз не понадобится.

Преимуществ HID-атаки перед атакой вручную сразу несколько: это скорость, незаметность и автоматизация. Все необходимые действия выполнятся быстрее, чем ты сможешь набрать то же на клавиатуре, и без опечаток (если их не было изначально). Подключить к USB-порту миниатюрное устройство можно за пару секунд. Это не такое палево, как садиться за чужую клавиатуру и поминутно оглядываться через плечо. Из-за малых габаритов самодельный девайс легко спрятать и пронести через охрану даже на режимный объект. В крайнем случае можно просто выдать его за флешку и «случайно» уничтожить легким нажатием ботинка, после чего изготовить хоть мешок других таких же.

WARNING

Статья написана в исследовательских целях. Вся информация в ней носит ознакомительный характер. Ни автор, ни редакция не несет ответственности за неправомерное использование упомянутых в ней аппаратных платформ, программ и техник!

 

Выбираем аппаратную платформу

Сотворить такую хакерскую железку можно и на одноплатниках (вроде Raspberry Pi), но это все равно что перевозить ноутбук на фуре. Есть «братья меньшие» не такие известные, но не менее «злые» и опасные в руках из плеч. По сути, для выполнения HID-атаки нам необходим микроконтроллер, USB-порт и минимальная электронная обвязка, чтобы это все заработало.

 

Arduino Micro Pro

На мой взгляд, это один из идеальных кандидатов на роль хакерского девайса.

Arduino Micro Pro
Arduino Micro Pro

Плата размером 33×16 мм работает на микроконтроллере ATmega32u4 и имеет на борту 28 Кбайт свободной памяти (вообще памяти 32 Кбайт, но 4 Кбайт уже заняты загрузчиком). С ней очень легко работать, так как проект Arduino хорошо поддерживается и для него написано много документации. Также для него есть готовая среда разработки Arduino IDE с дистрибутивами для Windows, Linux и macOS. Купить плату можно от 350 рублей.

 

Teensy Low Cost

Teensy LC
Teensy LC

Хорошая альтернатива — семейство плат Teensy, совместимых с Arduino. С ними также можно использовать Arduino IDE. Например, плата Teensy LC размером 17×35 мм оснащена процессорным ядром ARM Cortex-M0+ и 64 Кбайт памяти. Купить ее в России может быть проблематично (основной упор делается на продажи Teensy 3.2–3.6), но заказать из-за рубежа вполне возможно. Цены на Teensy LC начинаются от 10 долларов.

 

Digispark

Многие думают, что Digispark — это самая подходящая плата для HID-атак. Да, она выигрывает по некоторым параметрам у остальных: крошечный размер 18×22 мм, практически нет лишних функций (и точек отказа), USB-разъем типа А и смешная цена порядка 100–150 рублей.

Однако в использовании она не так проста. Даже подключать ее стоит в порт USB 2.0 (или через USB-хаб v.2.0) либо лезть в BIOS, отключать xHCI и выставлять режим USB 3.0 порта как USB 2.0 compatible. Обратная совместимость у версий USB 3.0 и 2.0 заявлена, но порой нужен бубен, чтобы она реально заработала, особенно на Windows 10.

Digispark
Digispark

Работает данная плата под управлением микроконтроллера Attiny85. С памятью у нее негусто — всего 8 Кбайт, из которых два уже заняты загрузчиком. Совсем не вдохновляет ограничение ROM в 512 байт под исполняемый код, но оптимизация тебе в помощь.

Процессор (если его можно так назвать) опять же совместим с Arduino IDE, только желательно использовать версию 1.6.5r2, а 1.6.6 и 1.6.7 не рекомендуется вовсе. Digispark Wiki любезно предоставляет мануал по «вживлению» этой платы в Arduino IDE, или можно скачать уже специально заточенные версии ПО.

 

Альтернативы

Выше я привел для примера три платы, которые, на мой взгляд, идеально подходят для HID-атак, но под конкретную задачу может быть интереснее взять какую-то другую. Вот еще примеры плат и некоторые соображения, почему они были отвергнуты в качестве универсального варианта.

NodeMCU и SparkFun с микроконтроллером ESP8266. Этот чип разрабатывался с направлением на поддержку Wi-Fi, поэтому платы с беспроводным модулем получились довольно большими. NodeMCU имеет размер 60×30 мм при не самой выгодной цене от 400 рублей. Однако если планируется многоэтапная атака, то беспроводное подключение будет совсем не лишним.

SparkFun в целом неплох, но смущает ценой (от 17 долларов за копеечный процессор). Однако его контроллер совместим с Arduino IDE, что делает разработку удобной.

Функционально Particle Photon похож на платы с ESP8266, но его цена гораздо выше. На борту у него довольно дорогой и ненужный для HID-атак ARM Cortex M3 STM32F205RGY6 с Wi-Fi-модулем Broadcom BCM43362, что поднимает цену до 2000 рублей и выше. Он будет оправдан в том случае, если помимо эмуляции клавиатуры планируется выполнять какие-то более сложные задачи, требующие универсального процессора архитектуры ARM.

INFO

Обрати внимание, что из всех рассмотренных плат лишь Digispark оснащен USB-портом типа А. Остальные имеют разъемы micro-USB и mini-USB, поэтому советую сразу обзавестись OTG-адаптером на интерфейс платы или кабелем для подключения нашего хакерского девайса к компу.

 

Делаем хакерский девайс за пять долларов

Приступим к практической части на примере платы Arduino micro Pro и переходника mini-USB ↔ USB Type A. В качестве основной ОС используется Kali Linux (4.14.0-kali3-amd64), но на других сборках Linux и в Windows проблем возникнуть не должно. Arduino IDE v. 1.8.6 скачана с официального сайта. В качестве жертвы выбран тот же компьютер.

Продолжение доступно только подписчикам

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Оставить мнение

Check Also

Целенаправленная социальная инженерия. Нестандартные техники введения в заблуждение

В предыдущей статье мы разобрали массовые атаки. Но их применимость ограничена: пентестер …