BadUSB — один из самых интересных инструментов в арсенале хакера. Этот класс атак позволяет при помощи девайсов вроде Rubber Ducky захватить контроль над многими устройствами, у которых есть порт USB. Можно эмулировать любую периферию, но чаще всего подделывают клавиатуру. В этой статье я покажу, как решить одну из главных связанных с этим проблем — зависимость от текущей раскладки.

INFO

Существуют две основные категории устройств типа BadUSB: флешка с контроллером Phison 2251-03 (для него была разработана специальная прошивка, эмулирующая клавиатуру) и устройства на микроконтроллере ATmega (например, Rubber Ducky).

BadUSB придумали относительно недавно, в 2014 году. Поэтому еще есть шанс найти новые трюки и решить по дороге разные нетривиальные задачи. Для тех, кто живет в странах, где, помимо латинского алфавита, используется какой-то другой, одна из таких задач — это переключение ввода на нужную раскладку клавиатуры. Если в операционной системе выставлена русская раскладка, а твой скрипт скармливает ей нажатия на клавиши в английской, то из этого, конечно же, ничего не выйдет.

Пример работы BadUSB на русской раскладке
Пример работы BadUSB на русской раскладке

Как обойти эту проблему? Например, можно попытаться учесть изменение раскладки в скриптах, но для этого придется узнавать, какие именно языки используются в системе, сколько их, в каком порядке они стоят и каким сочетанием клавиш переключаются. Это явно не самый рациональный метод.

Я предлагаю использовать другой вариант — вводить все символы при помощи Alt-кодов. Этот способ в Windows иногда используется для ввода символов, которые отсутствуют на клавиатуре. Например, зажимаешь Alt, удерживая, набираешь на цифровом блоке 9731, и получается снеговик. Здорово? Нам это тоже очень поможет, поскольку таким образом можно вводить и обычные символы, причем независимо от текущей раскладки.

Таблица Alt-кодов
Таблица Alt-кодов

Для своих экспериментов я использовал Rubber Ducky на основе ATmega32U4. В первую очередь нужно научить ее воспроизводить команды — это делается на специальном языке, который называется Ducky Script. Однако, изучив материалы, я не нашел никаких сведений о возможности эмуляции клавиш цифрового блока. Поэтому сначала нужно было модифицировать прошивку BadUSB.

 

Новая прошивка BadUSB

За основу берем библиотеку keyboard. У меня получился вот такой код.

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

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии