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. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

Вариант 2. Купи один материал

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


1 комментарий

  1. roman.rrv

    29.06.2018 at 08:54

    Интересно, спасибо!
    А почему не вставить конвертер в код контроллера и сэкономить память?

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

Check Also

Нагнуть Nagios. Разбираем хитрую цепочку уязвимостей в популярной системе мониторинга

Nagios — это одно из популярнейших решений для мониторинга, которое используется во многих…