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 комментарий

  1. roman.rrv

    29.06.2018 at 08:54

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

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

Check Also

Удаленное удаление. Как захватить контроль над WordPress, заставив его стереть файл

В WordPress, самой популярной в мире системе публикации, была обнаружена серьезная уязвимо…