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

Такой двухканальный контроллер USB 3.0 со встроенным восьмиразрядным микропроцессором архитектуры Intel 8051 встречается во многих съёмных носителях. Для демонстрации авторами был выбран сменный носитель Patriot Supersonic Xpress ёмкостью 8 ГБ.
Изначально Phison 2303 поддерживает создание нескольких дисковых разделов. Он может ограничивать доступ к одному из них паролем, скрывая присутствие других логических дисков. Последнее обстоятельство используется в некоторых вариантах атаки Bad USB. Во-первых, на скрытом разделе удобно хранить «боевую нагрузку». Во-вторых, так можно подсунуть «сейф без задней стенки»: пользователь будет продолжать считать скрытый раздел своего USB-Flash носителя защищённым, в то время как контроллер с изменённой прошивкой откроет его при вводе любого пароля.
Также Phison 2303 позволяет изменять идентификаторы производителя, продукта и серийный номер, что удобно для имитации других устройств. Однако этот контроллер был выбран прежде всего потому, что его прошивку можно обновлять непосредственно по USB и безо всякой проверки подлинности. Соответственно, её можно заменить не просто на новую официальную версию, а записать вместо неё свою, содержащую любые изменения и дополнительный функционал.

Обратная разработка и модификация подразумевает получение копии исходной прошивки. Для этого USB-Flash накопитель надо перевести в служебный режим с помощью инженерной утилиты, или просто закоротив определённые контакты в момент подключения.
Оригинальная прошивка занимает не весь отведённый для неё объём, поэтому увеличение размера микрокода после добавления новых функций не стало проблемой.
По результатам реверс-инжиниринга была создана альтернативная прошивка с открытым исходным кодом. Её можно записать на любой USB-Flash носитель с соответствующим контроллером, превратив его в хакерский инструмент.
При подключении к компьютеру такая флэшка (от flash, а не flesh) с модифицированной прошивкой может опознаваться как другое устройство и скрыто выполнять функции, предусмотренные атакующей стороной. В приводимой на DerbyCon презентации флэшка опознаётся как клавиатура и отправляет команды от имени вошедшего в систему пользователя. В большинстве случаев им окажется администратор, а если и нет – существуют способы повышения привилегий, основанные на различных эксплоитах.
В примере флэшка запускает «Блокнот» и пишет в нём текст с ASCII графикой, но это могут быть совершенно любые действия. Как вариант – загрузка трояна через Wget или скрытая отправка приватных данных.

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

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

Появление подробных инструкций и готовых программных инструментов для реализации Bad USB с использованием различных серийно выпускаемых устройств свидетельствует о широком интересе к данному виду атаки. Не надо быть аналитиком, чтобы спрогнозировать резкое повышение частоты её применения в ближайшее время.
В ОС Windows можно вручную ограничить подключение по USB, разрешив его только для определённых устройств. Для этого необходимо изменить http://www.sql.ru/forum/847468/podkluchenie-konkretnogo-usb-ustroystva права доступа к соответствующим ключам реестра в разделе [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBSTOR].
Вероятно, разработчики антивирусных решений скоро добавят отдельные модули для более гибкого дополнительного контроля над подключаемыми по USB устройствами. Ограничивать доступ к сменным носителям и разрешать активацию согласно «белому списку» уже сейчас умеют ESET Endpoint Antivirus, Kaspersky Endpoint Security, компонент «Родительский контроль» у Dr.Web AV-Desk и другие современные средства комплексной защиты. Другое дело, что в случае Bad USB таких мер может оказаться недостаточно. Скорее всего, пользователь сам разрешит подключение опасного устройства, опрометчиво считая его неспособным навредить.

Особо подчеркну, что Bad USB – это не какая-то недавно открытая проблема на уровне самого интерфейса. Речь идёт лишь о том, что благодаря работе нескольких гиков пользователю без соответствующей квалификации стало значительно проще вмешаться в работу контроллеров некоторых устройств, допускающих обновление прошивки без использования специализированной техники.
Если раньше желающие подсунуть под видом флэшки виртуальную клавиатуру или сетевой контроллер использовали штучные экземпляры таких устройств, то сейчас их можно штамповать в домашних условиях. Малоизвестные методы, которые были прерогативой спецслужб и продвинутых хакерских групп, стали более доступны – только и всего.
В самой возможности сделать это мне трудно усмотреть что-то негативное. Часть пользователей получит более глубокие представления о работе современных устройств и ещё один стимул быть осторожнее. Просто теперь флэшку нельзя считать безопасной, даже если её дисковый раздел совершенно чист.
Мы изобрели лекарство от BadUSB
Любой USB-гаджет можно превратить в зомбированного агента киберпреступников. Универсальной защиты от этой атаки не существовало — пока мы ее не придумали!
Пожалуй, самый страшный кошмар любого пользователя — когда невидимый вирус заражает само железо компьютера, а не операционную систему. К сожалению, это вовсе не фантастика — позволяющие это делать уязвимости вполне себе существуют. Одну из них пару лет назад обнаружили в интерфейсе USB, исследователи назвали ее BadUSB.
Вот как она работает: с помощью не самых сложных манипуляций можно изменить прошивку USB-устройства так, что в ней, в прошивке, поселится вредоносное ПО, которое помимо всего прочего позволит устройству притворяться чем-то совсем другим.
Скажем, обычная флешка после такой перепрошивки может научиться притворяться USB-клавиатурой — и вводить команды от имени пользователя. Например, в определенный момент скомандовать стереть все ваши файлы — или отдать любую другую команду. Та же самая флешка может притвориться сетевой картой — и «прослушивать» идущий через компьютер поток данных.
Проблема в том, что такое вредоносное ПО содержится в контроллере флешки, его не видно снаружи. Поэтому обычные антивирусы, проверяющие файлы, тут не помогут — ведь никаких вредоносных файлов на флешке нет, вирус сидит гораздо глубже. Вторая проблема состоит в том, что взять и разом исправить те особенности работы USB-устройств, на которых основана данная атака, тоже нельзя.
Память, USB, BIOS и другие места современных компьютеров, об уязвимости которых стоит знать: http://t.co/gSHxjVdWaX pic.twitter.com/wlUKGwtuez
Однако специалисты «Лаборатории Касперского» Олег Зайцев, Ольга Домке, Константин Манурин и Михаил Левинский нашли способ справиться с этой напастью. Разработанная ими технология позволяет автоматически отслеживать, что происходит с USB-устройствами в системе, обнаруживать аномальное поведение — и блокировать устройства, если они пытаются делать что-то подозрительное.
Эта технология уже реализована в нашем корпоративном продукте Kaspersky Endpoint Security, а на днях команда разработчиков получила на нее патент в США.
«Несмотря на то что атаки с использованием модифицированных USB-устройств пока принято относить к теоретическим, они уже вызывают заинтересованность клиентов компании в соответствующих защитных решениях — никто не хочет оказаться безоружным при переходе от теории к практике, — говорит Ольга Домке. — Объединив усилия продуктовой и компонентной команд, мы разработали компонент защиты от атак BadUSB для продукта Kaspersky Endpoint Security для Windows, в котором, как и в любом решении для корпоративной среды, постарались соблюсти баланс между удобством конечного пользователя и спокойствием администратора».
Компьютерный форум
Здесь решают различные задачи сообща. Присоединяйтесь!
Уязвимость BadUSB на практике. Попытаемся разобраться
Сообщение DesignerMix » 01 ноя 2014, 20:14
Я думаю что многие уже слышали про уязвимость которой страдают все (ну или почти все) USB-устройства, она называется BadUSB.
Суть уязвимости заключается в том, что в абсолютном большинстве USB-устройств, будь то флешки, мобильные телефоны с возможностью подключаться к компьютеру, контроллеры USB-HDD и прочем подобном оборудовании есть контроллер в котором записана прошивка которая и говорит компьютеру что за устройство к нему подключено. И если эту прошивку изменить, то можно сделать с из устройства что угодно, например из флешки можно сделать клавиатуру и подавать с нее команды на компьютер от имени пользователя который подключил эту флешку. Пример использования смотрите в видео ниже.
Так вот, разработчики Adam Caudill и Brandon Wilson на проходившей недавно конференции DerbyCon поделились своими наработками по созданию «кастомной» прошивки для контроллеров Phison 2251-03 (2303). Они написали несколько программ которые доступны в репозитории на GitHub и скачав их у меня получилось провести атаку в реальности.
Если вы разместили папку fw из архива не в корне диска C: а где-то в другом месте, то измените пути в командах!
Мобильник как BadUSB. Используем BadUSB в Kali NetHunter по-взрослому
О BadUSB говорилось и писалось множество раз, в статьях и видеороликах давалась общая информация об этом классе атак, делался обзор существующих девайсов на рынке, и, конечно же, описывались схемы сборки самодельных устройств. Как ты знаешь, эта атака позволяет в кратчайшие сроки выполнить действия на целевом компьютере. Делается это так: в свободный USB-порт вставляется заранее подготовленная флешка или простой USB-кабель, который имеет встроенный микроконтроллер с особой прошивкой. Эти устройства идентифицируются системой в качестве HID (Human Interface Device), например как клавиатура. После чего по заранее написанному сценарию эмулируется ввод команд, как если бы их вбивал живой человек, сидящий за компьютером.
Предположим, что ты член команды Red Team. Плюсы таких устройств для тебя очевидны. Во‑первых, не нужно садиться за компьютер и привлекать к себе внимание, стуча по клавишам за чужим рабочим местом. Достаточно вставить неприглядную флешку или кабель в разъем USB. А во‑вторых, скорость автоматического ввода команд при помощи устройства BadUSB в разы выше, чем скорость, с которой способен печатать человек.
На самом деле атака с автоматическим вводом текста через USB-свистки появилась куда раньше, чем сам термин BadUSB. В 2010 году команда Hak5 представила своего знаменитого резинового утенка — 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.

Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Что такое 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» – но уровень проникновения будет гораздо глубже.







