Что такое bad usb

СПОСОБЫ РЕАЛИЗАЦИИ АТАК НА USB УСТРОЙСТВА

Что такое bad usb. Смотреть фото Что такое bad usb. Смотреть картинку Что такое bad usb. Картинка про Что такое bad usb. Фото Что такое bad usbИстория превращения накопителей с интерфейсом USB в хакерский инструмент получила продолжение. Обратная разработка прошивки популярного контроллера переводит методику на новый уровень доступности. Теперь атаку под названием Bad USB может провести любой желающий, не обладая при этом достаточными познаниями для самостоятельного написания микрокода.

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

На проходившей в штате Кентукки ежегодной конференции DerbyCon Адам Коудил (Adam Caudill) и Брэндон Уилсон (Brandon Wilson) в совместном докладе рассказали об успешной обратной разработке прошивки для контроллера Phison 2303 (2251-03) и показали практические варианты реализации атаки Bad USB.

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

Универсальный контроллер Phison 2251-03

Такой двухканальный контроллер USB 3.0 со встроенным восьмиразрядным микропроцессором архитектуры Intel 8051 встречается во многих съёмных носителях. Для демонстрации авторами был выбран сменный носитель Patriot Supersonic Xpress ёмкостью 8 ГБ.

Изначально Phison 2303 поддерживает создание нескольких дисковых разделов. Он может ограничивать доступ к одному из них паролем, скрывая присутствие других логических дисков. Последнее обстоятельство используется в некоторых вариантах атаки Bad USB. Во-первых, на скрытом разделе удобно хранить «боевую нагрузку». Во-вторых, так можно подсунуть «сейф без задней стенки»: пользователь будет продолжать считать скрытый раздел своего USB-Flash носителя защищённым, в то время как контроллер с изменённой прошивкой откроет его при вводе любого пароля.

Также Phison 2303 позволяет изменять идентификаторы производителя, продукта и серийный номер, что удобно для имитации других устройств. Однако этот контроллер был выбран прежде всего потому, что его прошивку можно обновлять непосредственно по USB и безо всякой проверки подлинности. Соответственно, её можно заменить не просто на новую официальную версию, а записать вместо неё свою, содержащую любые изменения и дополнительный функционал.

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

Перевод USB-Flash в служебный режим замыканием контактов

Обратная разработка и модификация подразумевает получение копии исходной прошивки. Для этого USB-Flash накопитель надо перевести в служебный режим с помощью инженерной утилиты, или просто закоротив определённые контакты в момент подключения.

Оригинальная прошивка занимает не весь отведённый для неё объём, поэтому увеличение размера микрокода после добавления новых функций не стало проблемой.

По результатам реверс-инжиниринга была создана альтернативная прошивка с открытым исходным кодом ( https://github.com/adamcaudill/Psychson ).

Её можно записать на любой USB-Flash носитель с соответствующим контроллером, превратив его в хакерский инструмент.

При подключении к компьютеру такая флэшка (от flash, а не flesh) с модифицированной прошивкой может опознаваться как другое устройство и скрыто выполнять функции, предусмотренные атакующей стороной.

В приводимой на DerbyCon презентации флэшка опознаётся как клавиатура и отправляет команды от имени вошедшего в систему пользователя.

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

В примере флэшка запускает «Блокнот» и пишет в нём текст с ASCII графикой, но это могут быть совершенно любые действия. Как вариант – загрузка трояна через Wget или скрытая отправка приватных данных.

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

Автоматическое создание текстового документа с ASCII-графикой с помощью BadUSB (изображение: DerbyCon 4.0)

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

Сходным образом реализована атака Bad USB группой Offensive Security в специализированном дистрибутиве Kali Linux NetHunter ( https://www.kali.org/kali-linux-nethunter/ ). Это дальнейшее развитие проекта BackTrack, предназначенного для выполнения тестов на проникновение с использованием мобильных устройств. Его можно установить на современные смартфоны и планшеты серии Nexus. Поддерживаются Asus Nexus 7 (версии 2012 и 2013 года), Samsung Nexus 10 и LG Nexus 5. Любой из этих гаджетов NetHunter превращает в мощный инструмент для выполнения аудита безопасности.

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

NetHunter — реализация Bad USB на гаджетах серии Nexus

В режиме Bad USB на Nexus с NetHunter выполняется вариант атаки посредника (MITM). Смартфон или планшет подключается к компьютеру по USB под предлогом зарядки или копирования файлов. Далее гаджет подменяет сетевую карту, выполняя перенаправление трафика.

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

Фрагмент файла \kali_linux_nethunter_nexus7_2012.zip\system\xbin\start-badusb

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

В ОС Windows можно вручную ограничить подключение по USB, разрешив его только для определённых устройств. Для этого необходимо изменить https://www.sql.ru/forum/847468/podkluchenie-konkretnogo-usb-ustroystva права доступа к соответствующим ключам реестра в разделе [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR].

Вероятно, разработчики антивирусных решений скоро добавят отдельные модули для более гибкого дополнительного контроля над подключаемыми по USB устройствами. Ограничивать доступ к сменным носителям и разрешать активацию согласно «белому списку» уже сейчас умеют ESET Endpoint Antivirus, Kaspersky Endpoint Security, компонент «Родительский контроль» у Dr.Web AV-Desk и другие современные средства комплексной защиты. Другое дело, что в случае Bad USB таких мер может оказаться недостаточно. Скорее всего, пользователь сам разрешит подключение опасного устройства, опрометчиво считая его неспособным навредить.

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

Реализация Bad USB с использованием серийно выпускаемых устройств

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

Если раньше желающие подсунуть под видом флэшки виртуальную клавиатуру или сетевой контроллер использовали штучные экземпляры таких устройств, то сейчас их можно штамповать в домашних условиях. Малоизвестные методы, которые были прерогативой спецслужб и продвинутых хакерских групп, стали более доступны – только и всего.

В самой возможности сделать это мне трудно усмотреть что-то негативное. Часть пользователей получит более глубокие представления о работе современных устройств и ещё один стимул быть осторожнее. Просто теперь флэшку нельзя считать безопасной, даже если её дисковый раздел совершенно чист.

Источник

Что такое bad usb

Эксперты Максим Горячий и Марк Ермолов в своем докладе отметили, что зачастую подобные аппаратные механизмы используются как вполне легальные инструменты, которые внедряются еще на стадии производства − например, специальные отладочные возможности, оставленные разработчиками для настройки аппаратуры и других «благих целей». Однако сейчас такие механизмы оказываются доступны и для злоумышленников, причем цена вопроса настолько низка, что для организации подобных атак уже не нужно быть государственной спецслужбой и иметь специальное оборудование.

Один из таких механизмов был подробно проанализирован и показан в исследовании. В качестве опасной возможности, оставленной производителем, здесь фигурирует отладочный интерфейс JTAG (Joint Test Action Group), доступ к которому теперь открыт через USB-интерфейс. Данный способ доступа к процессору работает «ниже» всего программного обеспечения, позволяя осуществлять аппаратную отладку гипервизоров, ядра ОС и драйверов. Однако тот же механизм может использоваться и для несанкционированных вторжений.

В старых процессорах Intel доступ к JTAG требовал подключения специализированного устройства через отладочный разъем на некоторых системных платах (ITP-XDP). Это усложняло доступ к данной технологии, в том числе, и для злоумышленников.

Однако, начиная с процессоров семейства Skylake, запущенных в производство в 2015 году, компания Intel внедрила технологию Direct Connect Interface (DCI), которая предоставляет доступ к JTAG через популярный порт USB 3.0. При этом на целевом компьютере не требуется каких-либо программных или аппаратных агентов − необходимо лишь, чтобы интерфейс DCI был активирован. Как выяснили исследователи, это можно сделать несколькими способами, и на множестве современных компьютеров этот функционал оказался доступен буквально «из коробки» − то есть по умолчанию возможность активации DCI не заблокирована.

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

Источник

Используем смартфон как BadUSB

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

Вы наверное уже слышали про BadUSB. Раньше, когда речь шла о BadUSB на ум приходили исклю­читель­но устройства вро­де фле­ш-накопителей. Но возмож­но ли исполь­зовать в качес­тве хакерской флешки BadUSB, смар­тфон на Андроид? Оказывается мож­но — используя Kali NetHunter, мобиль­ной плат­формы для пен­тесте­ров. Сегодня я покажу, как прев­ратить обычный смартфон в пол­ноцен­ный ана­лог «хакерской флеш­ки».

Как работает BadUSB

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

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

Это удобно если вы пентестер. Плю­сы подобных хакерских девайсов оче­вид­ны.

Ата­ка с авто­мати­чес­ким вво­дом тек­ста посредством USB-флешки появи­лась раньше, чем сам тер­мин BadUSB. В далеком 2010 году хакеры Hak5 пред­ста­вили небольшой гаджет в ввиде флешки — Rubber Ducky (резино­вый утен­ок). Кстати, мы писали, как сделать Rubber Ducky своими руками.

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

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

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

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

О дру­гих хакер­ских гаджетах, которые можно купить, вы можете прочитать в статье «Лучшие хакерские девайсы».

Как правило, при­мене­ние Rubber Ducky и самодель­ных BadUSB сво­дит­ся к получе­нию уда­лен­ного дос­тупа или получению паролей из сис­темы. Школьниками используется избитая схе­ма: залить на файлопомойку вредонос и зап­рограм­мировать BadUSB на его ска­чива­ние и выпол­нение.

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

Используем смартфон как BadUSB

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

Источник

Русифицируем уточку. Как заставить BadUSB работать с разными раскладками клавиатуры

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

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

Существуют две основные категории устройств типа BadUSB: флешка с контроллером Phison 2251-03 (для него была разработана специальная прошивка, эмулирующая клавиатуру) и устройства на микроконтроллере ATmega (например, Rubber Ducky).

BadUSB придумали относительно недавно, в 2014 году. Поэтому еще есть шанс найти новые трюки и решить по дороге разные нетривиальные задачи. Для тех, кто живет в странах, где, помимо латинского алфавита, используется какой-то другой, одна из таких задач — это переключение ввода на нужную раскладку клавиатуры. Если в операционной системе выставлена русская раскладка, а твой скрипт скармливает ей нажатия на клавиши в английской, то из этого, конечно же, ничего не выйдет.

Что такое bad usb. Смотреть фото Что такое bad usb. Смотреть картинку Что такое bad usb. Картинка про Что такое bad usb. Фото Что такое bad usb Пример работы BadUSB на русской раскладке

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

Я предлагаю использовать другой вариант — вводить все символы при помощи Alt-кодов. Этот способ в Windows иногда используется для ввода символов, которые отсутствуют на клавиатуре. Например, зажимаешь Alt, удерживая, набираешь на цифровом блоке 9731, и получается снеговик. Здорово? Нам это тоже очень поможет, поскольку таким образом можно вводить и обычные символы, причем независимо от текущей раскладки.

Для своих экспериментов я использовал Rubber Ducky на основе ATmega32U4. В первую очередь нужно научить ее воспроизводить команды — это делается на специальном языке, который называется Ducky Script. Однако, изучив материалы, я не нашел никаких сведений о возможности эмуляции клавиш цифрового блока. Поэтому сначала нужно было модифицировать прошивку BadUSB.

Новая прошивка BadUSB

За основу берем библиотеку keyboard. У меня получился вот такой код.

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

Вариант 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 даст знать, что прошивка закончилась.

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

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

Источник

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

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