February 3

Teensy 2.0 Bad USB

Плата Teensy 2.0 на базе Arduino;

Software:

1. Arduino IDE (https://www.arduino.cc/en/software)
2. Teensyduino (https://www.pjrc.com/teensy/td_download.html)
3. Paensy (https://github.com/Ozuru/Paensy)

Installation:

1. Arduino 2.0

1. Переходим в "File - Preferences" и вставляем строку https://www.pjrc.com/teensy/package_teensy_index.json в поле "Additional boards manager URLs" (Все прочие урлы записываются через запятую в формате `url1,url2,url3,..,urln`):

2. Заходим в Arduino IDE, переходим в "Tools - Board - Boards Manager" и устанавливаем пакет для плат Teensy:

2. Windows Graphic Installation

1. Устанавливаем и запускаем графический установщик (https://www.pjrc.com/teensy/td_158/TeensyduinoInstall.exe).

Поддерживаются версии Arduino IDE только те, что указаны в первом окне установщика!

Teensyduino Installer;

Setting Up:

1. Paensy Library

1. Качаем с гитхаба архив, распаковываем его и копируем директорию PaensyLib в директорию Arduino/libraries (cтандартная: C:\Program Files (x86)\Arduino\libraries):

2. В гитхаб репозитории лежат примеры пэйлоадов, копируем один из них и вставляем в созданный в Arduino IDE скетч.

Arduino Sketch;

3. Вставляем плату (Должна мигать) и задаем следующие параметры нашей платы:
Board: "Teensy 2.0"
USB Type: "Keyboard + Mouse + Joystick"
CPU Speed: "16 MHz"
Keyboard Layout: "US English"
Port: {Ваш Порт}

Board settings for Arduino IDE;

4. Жмем Verify, если ошибок нет, загружаем скрипт в плату кнопкой Upload:

Script Upload Results

Script:

MyScript

Зачастую в инструментах типа Bad USB используются так называемые ванлайнеры(OneLiner). Найти многие ванлайнеры вы можете в гитхаб репозитории Nishang(https://github.com/samratashok/nishang). Концептуально, если выбирать между CMD и Powershell, все советуют выбирать второе. Все потому, что при использовании сценария Powershell, для жертвы пэйлоад отрабатывает в несколько раз незаметней. В скрипте выше выставляется общая задержка и после задержки в полторы секунды открывается Win+R, куда вводится строка, которая подгружает и запускает внешний Powershell сценарий.
Ниже указаны некоторые функции, знание которых может быть полезно, если вы собираетесь писать собственные сценарии для Bad USB:

SetDelay(int); – Настройка общей задержки для всех задач в проекте;
PerformInitDelay(); – Начальная задержка для инициализации USB устройства (По умолчанию равна значению, которое указывается в SetDelay);
RunCommand(string); – Открывает окно Run (Win+R) и запускает через него указанный в аргументе код;
delay(int); – Настройка разовой задержки в данном участке кода;
HideCurWindow(int); – Скрывает текущее открытое окно;
AddUser("user", "pass"); – Добавляет нового пользователя;
PressKey(int key, int amount); – Нажимает указанную клавишу необходимое количество раз;
TypeLn(string); – Вводит текст из аргумента и нажимает Enter;
Alt(int key)/Ctrl(int key)/Shift(int key); – Имитируют нажатия комбинаций клавиш в зависимости от названия функции. В аргументе указывается нужная в комбинации клавиша.

Building:

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

Пример

После сборки другого инструмента у меня остался кейс от модема. На самом деле, можно использовать любой предмет, в котором в качестве одного из участников есть какой-нибудь из USB штекеров, зачастую используются штекер USB-папа.

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

Конструкция:
1. Микрокомпьютер Raspberry PI Pico(Teensy 2.0)
2. Micro USB 4-pin Connector

Micro USB 4-pin Connector

3. Штекер USB 2.0 4-pin

Штекер USB 2.0 4-pin

Заключение:

После окончания сборки, перед включением, крайне рекомендую обзвонить мультиметром всю конструкцию, чтобы потом не пришлось покупать новые компоненты. Общая цена конструкции вышла около тысячи рублей, что, в целом, не так дорого, учитывая, что Bad USB зачастую используется исключительно как расходный материал.

Писал статью и крафтил вместе с вами Bad USB – E1tex!

Мой канал про похек:
TRY FCK HARDER!

Увидимся!