Уязвимость BadUSB на практике. Попытаемся разобраться

Уязвимости, взломы и способы защиты. Вирусы здесь не обсуждаются

Модераторы: Tim308, phantom

Ответить
Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 01 ноя 2014, 20:14


Я думаю что многие уже слышали про уязвимость которой страдают все (ну или почти все) USB-устройства, она называется BadUSB.

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

Анонс видео о уязвимости BadUSB




Так вот, разработчики Adam Caudill и Brandon Wilson на проходившей недавно конференции DerbyCon поделились своими наработками по созданию "кастомной" прошивки для контроллеров Phison 2251-03 (2303). Они написали несколько программ которые доступны в репозитории на GitHub и скачав их у меня получилось провести атаку в реальности.

Текст ниже является моим вольным переводом файла readme.md оригинал которого можно найти здесь - https://github.com/adamcaudill/Psychson

Флэш-накопители в которых установлен поддерживаемый контроллер. Но учтите что иногда в одну и ту же модель производитель может установить разные контроллеры:

    Список основан на откликах пользователей, которые обнаружили в приведенных ниже моделях флэш-накопителей поддерживаемый контроллер (PS2251-03 (2303)):
  • Patriot 8GB Supersonic Xpress*
  • Kingston DataTraveler 3.0 T111 8GB
  • Silicon power marvel M60 64GB
  • Patriot Stellar 64 Gb Phison
  • Toshiba TransMemory-MX USB 3.0 16GB
  • Toshiba TransMemory-MX USB 3.0 8GB
  • Kingston DataTraveler G4 64 GB
  • Patriot PSF16GXPUSB Supersonic Xpress 16GB
  • Silicon Power 32GB Blaze B30 (SP032GBUF3B30V1K)**
  • Kingston Digital 8GB USB 3.0 DataTraveler (DT100G3/8GB)* - Using PS2251-03 (Программа DriveCom.exe не работает для этой флэшки, вам понадобится Phison MPALL Tools для прошивки.)
* Иногда в этой модели может стоять чип PS2251-07
**Пользователь Banderas91 сообщил что во флешке Silicon Power 32GB Blaze B30 иногда устанавливают чип Phison PS2306 который не поддерживается на данный момент

    Пользователи сообщили что на приведенных ниже флэш-накопителях с контроллером PS2251-03 (2303) не получилось загрузиться с прошивкой 1.03.53:
  • SanDisk Ultra 16Gb USB 3.0 SDCZ48-016G

    Не поддерживаемые устройства:
  • Все устройства на контроллерах Phison использующие USB 2.0
  • Kingston Digital 8GB USB 3.0 DataTraveler (DT100G3/8GB) - PS2251-07

Необходимое ПО:


*SDCC обязательно ставить в папку "C:\Program Files\SDCC" !!!


В этом архиве содержаться скомпилированные файлы программ-прошивальщиков и уже пропатченные прошивки (об этом файле я говорил в видео):
Скачать >>>> BadUSB. Скомпилированные утилиты и прошивки для Phison 2251-03 <<<< Скачать

"Список команд которые я проделывал в видео:"
Все команды ниже будут действовать в случае если будут установлены все программы (кроме visual studio) о которых я говорил в ролике и давал на них ссылки на форуме

Если вы разместили папку fw из архива не в корне диска C: а где-то в другом месте, то измените пути в командах!

Если у вас будут другие файлы BN (BN03V114M.BIN) то замените удалите содержимое папки C:\fw\fw_bn и загрузите туда ваши файлы при этом изменив их имена в командах.


-------------------------------------------------------------------------------------------------------------------------------------------------
Переводим флешку в boot-режим:

Код: Выделить всё

C:\fw\Psychson-master\tools\DriveCom.exe /drive=F /action=SetBootMode


Отправляем на флешку burner-image:

Код: Выделить всё

C:\fw\Psychson-master\tools\DriveCom.exe /drive=F /action=SendExecutable /burner=C:\fw\fw_bn\BN03V114M.BIN


Извлекаем и сохраняем текущую прошивку с флешки:

Код: Выделить всё

C:\fw\Psychson-master\tools\DriveCom.exe /drive=F /action=DumpFirmware /firmware=C:\fw\currentfw.bin


------------------------------------------------------------------------------------------------------------------------------------------------

Создаю HID Payload:

Код: Выделить всё

java -jar C:\fw\ducky\duckencode.jar -i C:\fw\ducky\hello_world.txt -o C:\fw\ducky\inject.bin



Внедряю HID Payload в прошивку:

Код: Выделить всё

C:\fw\Psychson-master\tools\EmbedPayload.exe C:\fw\ducky\inject.bin C:\fw\Psychson-master\firmware\bin\fw.bin


Зашиваю прошивку с внедренным HID Payload:

Код: Выделить всё

C:\fw\Psychson-master\tools\DriveCom.exe /drive=F /action=SendFirmware /burner=C:\fw\fw_bn\BN03V114M.BIN /firmware=C:\fw\Psychson-master\firmware\bin\fw.bin


Частичный перевод Github
Далее идет описание каждой папки (элемента) из репозитория на GitHub (см. ссылку выше).

Phison 2251-03 (2303) Создание собственной (кастомной) прошивки & Изменение существующих прошивок (патчинг)
    Репозиторий содержит следующие элементы (папки):
  • DriveCom – PC C# приложение для связи с дисками на контроллере Phison.
  • EmbedPayload – PC C# приложение для внедрения скриптов Rubber Ducky inject.bin в кастомную прошивку для дальнейшего выполнения.
  • Injector – PC C# приложение как для извлечения кода прошивки так и для добавления/изменения кода существующей прошивки.
  • Firmware – Прошивка для 8051* написанная на C.
  • Patch – Коллекция патчей для 8051* написанных на C.
    Релиз содержит следующие элементы (папки):
  • Patch – Коллекция патчей для 8051* написанных на C.
  • Tools – Скомпилированные бинарные файлы всех приложений.
  • CFW.bin – Кастомная прошивка содержащая встроенный HID payload (модуль на Rubbery Ducky).

Заметьте – кастомные и патченные прошивки тестировались только на контроллере PS2251-03 версии 1.03.53 (подходящей только для 8K eD3 NAND флэш-памяти). Прошивки могут работать также и на других контроллерах и с другой NAND флэш-памятью, но будьте осторожны!

Если вы используете соответствующую прошивку для вашего контроллера и NAND-памяти то понижение прошивки не нанесет никакого вреда (например, понижение с 1.10.53).

Предупреждение: Это экспериментальное программное обеспечение. Использование на не поддерживаемых устройствах или даже на поддерживаемых, может привести к потере информации, или повреждению самого устройства. Используйте на свой страх и риск.

*8051 - это встроенный в контроллер 8-и битный микропроцессор


Для реализации уязвимости я использовал флешку Silicon Power Marvel M60 на контроллере PS-2251-03-Q:
IMG_0283.JPG
Silicon Power Marvel M60


Вот все ссылки которыми я пользовался:


Шапка темы постепенно будет обновляться и пополняться информацией.

Аватара пользователя

Elisej
Новичок
Сообщения: 10
Зарегистрирован: 02 окт 2014, 07:51
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение Elisej » 02 ноя 2014, 11:51


Привет всем, вот ещё одна полезная прога Flash Drive Information Extractor - программа для получения информации о флешках. Ну а если честно то я впервые услышал о BadUSB. И вот ещё один интересный ресурс утилиты для флешэк. Жду ваших новых видео Михаил, по этой теме да и не только. И ещё один вопрос, что можно сделать с моим контролером?
Контролер "Kingston DataTraveler SE9 8GB"
Volume: K:
Controller: SSS 6697 B7
Possible Memory Chip(s):
Toshiba TC58NVG6T2HTA00
Memory Type: TLC
Flash ID: 98DE9892 7256
Flash CE: 1
Flash Channels: Single
VID: 0951
PID: 1689
Manufacturer: Kingston
Product: DataTraveler SE9
Query Vendor ID: Kingston
Query Product ID: DataTraveler SE9
Query Product Revision: 1.00
Physical Disk Capacity: 8006901760 Bytes
Windows Disk Capacity: 8006868992 Bytes
Internal Tags: 386H-QAB2
File System: NTFS
Relative Offset: 31 KB
USB Version: 2.00
Declared Power: 100 mA
ContMeas ID: 613F-01-00
Вложения
pic.jpg

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 02 ноя 2014, 12:06


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

По поводу вашего контроллера SSS 6697 B7, вот здесь есть программы для работы с ним, но есть-ли для него кастомные прошивки мне не известно.

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 03 ноя 2014, 21:27


Ролик понемногу готовится, процентов 30 уже есть:
Вот кусочек проекта в After Effects

BadUSB.PNG

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 05 ноя 2014, 23:52


Работа над роликом кипит. Очень надеюсь что к выходным выйдет.


DoC17
Интересующийся
Сообщения: 20
Зарегистрирован: 29 апр 2014, 19:29
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DoC17 » 06 ноя 2014, 14:21


Controller: Phison 2251-50/30 (2250)
Controller: Alcor AU6986/AU6983/AU6988 D51
Controller: Alcor AU6990/AU6987(HL)/SC708(FC8708)
Controller: Alcor AU6989SNHL/AU6998SNHL/SC908SN
Controller: Silicon Motion SM3257 ENAA
Controller: Silicon Motion SM3257 AA
А с этими контроллерами можно работать?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 06 ноя 2014, 15:54


DoC17, их практически все можно шить, проблема только в написании утилиты для прошивки и изменении оригинальной прошивки на собственную. На данный момент такой функционал разработан и находится в открытом доступе только для контроллеров Phison 2251-03.

PS: Шапка темы обновлена. Добавлен частичный перевод текста из репозитория на GitHub


beksultan
Новичок
Сообщения: 2
Зарегистрирован: 08 ноя 2014, 18:55
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение beksultan » 08 ноя 2014, 18:58


надеюсь завтра ролик будет готов ?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 08 ноя 2014, 19:47


beksultan писал(а):надеюсь завтра ролик будет готов ?

Уже доделываю! Ролик будет продолжительностью 20 минут :shock: с кучей информации! Надеюсь вам понравится :roll:


beksultan
Новичок
Сообщения: 2
Зарегистрирован: 08 ноя 2014, 18:55
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение beksultan » 08 ноя 2014, 20:06


спасибо с нетерпением жду!

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 08 ноя 2014, 22:52


Шапка темы обновлена. Добавлены основные ссылки и новое видео (оно будет доступно ориентировочно через час, как только закончится загрузка)


ilya14
Новичок
Сообщения: 1
Зарегистрирован: 09 ноя 2014, 04:10
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение ilya14 » 09 ноя 2014, 04:14


а почему нельзя использовать флешки USB 2.0

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 09 ноя 2014, 08:58


ilya14 писал(а):а почему нельзя использовать флешки USB 2.0

На сколько мне известно потому, что для этой модификации контроллера на данный момент не написана прошивка. Но она вполне может вскоре появиться.


Xedan
Новичок
Сообщения: 2
Зарегистрирован: 10 ноя 2014, 01:18
Репутация: 0
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение Xedan » 10 ноя 2014, 01:34


Кстати, можно было и не раскошеливаться на 64 гб.
Я нашел на одном форуме, просьбу помочь восстановить Silicon power marvel M60 16GB, с контролером PS2251-03
Источник уже затерялся в доооолгой истории поиска флешек под данный контролер, но думаю если кому интересно, он сам перепроверит.
Думаю даже 8-ми гиговки этой модели на том-же контролере.

Аватара пользователя

Lukas_Bertoni
Интересующийся
Сообщения: 54
Зарегистрирован: 10 ноя 2014, 01:25
Репутация: 2
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение Lukas_Bertoni » 10 ноя 2014, 02:39


Спасибо) Весьма позновательное видео.Надеюсь
в скорем времени мы сможем шыть и другие контролеры) А что же поповоду других USB устройств?Мышки,клавиатуры,игровые устройства?Среди них встречпеться контролер phison 2251-03.И будет ли процедура прошивки отличаться к примеру игрового устройства и флэшки на с одинаковым типом контролера?
И еще вопрос:
Как я понял после прошивки флэшка теряет свои функциональные способности флэш накопителя?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 10 ноя 2014, 08:54


Lukas_Bertoni писал(а):А что же поповоду других USB устройств?Мышки,клавиатуры,игровые устройства?Среди них встречпеться контролер phison 2251-03.


Этот контроллер там будет вряд ли. Можете почитать официальное описание PS2251-03 на сайте производителя и сделать собственные выводы о том где он мог-бы применяться - http://www.phison.com/English/newProduc ... &SortID=60

Lukas_Bertoni писал(а):И будет ли процедура прошивки отличаться к примеру игрового устройства и флэшки на с одинаковым типом контролера?


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

Lukas_Bertoni писал(а):Как я понял после прошивки флэшка теряет свои функциональные способности флэш накопителя?

Да, но это только на данный момент так. Авторы на своем GitHub'е писали что уже пробуют сделать прошивку с которой флешка будет определяться как USB-хаб к которому подключены и клавиатура и накопитель. А для пользователя будет казаться что он подключил только флешку... Ну и понятное дело что флешку можно будет форматировать или сканировать антивирусом и при этом с виртуальной клавиатурой ничего не случится.

Аватара пользователя

Lukas_Bertoni
Интересующийся
Сообщения: 54
Зарегистрирован: 10 ноя 2014, 01:25
Репутация: 2
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение Lukas_Bertoni » 10 ноя 2014, 12:21


А какие прогнозы на другие контролеры?Обещаеться ли что то в ближайшее время?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4451
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 170
Репутация: 547
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение DesignerMix » 10 ноя 2014, 13:07


Lukas_Bertoni, смысл всего этого (имею ввиду то, что выложено на GitHub) - доказать что уязвимость реальна. Разработчики программ для прошивки на сколько мне известно не планирую делать их для других контроллеров... Они всего-лишь донесли до сообщества что нужно искать способы защиты.

Но другие разработчики вполне возможно уже написали или напишут подобные утилиты и для других контроллеров... правда их намерения возможно будут не такими как у Адама Кадилла и Брендона Уилсона.


alsskynet
Новичок
Сообщения: 8
Зарегистрирован: 11 ноя 2014, 17:36
Репутация: 1
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение alsskynet » 11 ноя 2014, 17:44


Здравствуйте всем.
Пошел купил Kingston DT G4 только на 8Gb пожадничал за 2,5 тр покупать 64 Гб
в общем оказалось в G4 8Gb контроллер Phison PS2307
однако решил рискнуть, скачал все програмки но на этапе перевода в boot-режим, устройство извлекалось и монтировалось как неизвестное, чтож мы люди не гордые
разобрал флешку, перевел вручную в boot режим путем замыкания ножек, с виду микрухи идентичные (написано PS2251-07-V)

C:\Windows\system32>C:\fw\Psychson-master\tools\DriveCom.exe /drive=K /action=Se
ndFirmware /burner=C:\fw\fw_bn\BN07V106M.BIN /firmware=C:\fw\Psychson-master\fir
mware\bin\fw.bin
Action specified: SendFirmware
Gathering information...
Reported chip type: 2307
Reported chip ID: AD-DE-14-A7-42-4A
Reported firmware version: 1.06.10
Mode: Burner
Rebooting...
Sending firmware...
Executing...
Mode: BootMode

прошилось судя по логам нормально
однако при включении 2307 PRAM USB Device вместо клавиатуры(((
и хоть бы что я делал шаманил утилитами MPALL никак не получается вернуть ей PID и вообще работоспособность((


alsskynet
Новичок
Сообщения: 8
Зарегистрирован: 11 ноя 2014, 17:36
Репутация: 1
Статус: Не в сети

Re: Уязвимость BadUSB на практике. Попытаемся разобраться

Сообщение alsskynet » 11 ноя 2014, 18:18


была флешка:
Volume: K:
Controller: Phison PS2307
Possible Memory Chip(s): Not available
Flash ID: ADDE14A7 424A
Chip F/W: 01.05.10
Firmware Date: 2014-05-23
ID_BLK Ver.: 1.2.77.0
MP Ver.: MPALL v3.31.0C
VID: 0951
PID: 1666
Manufacturer: Kingston
Product: DataTraveler 3.0
Query Vendor ID: Kingston
Query Product ID: DataTraveler 3.0
Query Product Revision: PMAP
Physical Disk Capacity: 7868514304 Bytes
Windows Disk Capacity: 7860142080 Bytes
Internal Tags: 2Q6K-S76J
File System: FAT32
Relative Offset: 4032 KB
USB Version: 3.00 in 2.00 port
Declared Power: 300 mA
ContMeas ID: 8C82-03-00
Microsoft Windows 7 SP1 x64

Стала:
Volume: K:
Controller: Phison PS2307
Possible Memory Chip(s): Not available
Flash ID: ADDE14A7 424A
Chip F/W: 01.02.10
Firmware Date: 2013-05-28
MP Ver.: MPALL vFF.FF.FF
VID: 13FE
PID: 5500
Manufacturer: Phison
Product: 2307 Boot ROM
Query Vendor ID:
Query Product ID: 2307 PRAM
Query Product Revision: 1.00
Physical Disk Capacity: 0 Bytes
Windows Disk Capacity: 0 Bytes
Internal Tags: 2RAB-LV42
USB Version: 2.00
Declared Power: 100 mA
ContMeas ID: 8C82-04-00
Microsoft Windows 7 SP1 x64