LINUX.ORG.RU

Взламываем контроллеры флешек, чтобы превратить их в клавиатуры

 ,


8

3

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

Все инструменты доступны на Github: https://github.com/adamcaudill/Psychson

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: beastie (всего исправлений: 2)

Ответ на: комментарий от handbrake

функционал usb мыши только как мыши, а клавы - только как клавы уже есть.

переходник usb->ps/2?


а вообще вроде каждый производитель USB должен иметь уникальный ключ, а для самоделок выделен отдельный диапазон?

Anonymous ★★★★★
()
Ответ на: комментарий от KivApple

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

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

А бороться с этим будут, запрещая пользователям самостоятельно менять лампочки.

Anonymous ★★★★★
()
Ответ на: комментарий от Anonymous

переходник usb->ps/2?

опоздал :)

а вообще вроде каждый производитель USB должен иметь уникальный ключ

не ключ, а идентификатор, и его подделать раз плюнуть насколько я помню

а для самоделок выделен отдельный диапазон?

да вроде как самоделки вообще вне закона у usb.

maloi ★★★★★
()
Ответ на: комментарий от KivApple

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

puding
()
Ответ на: комментарий от aplay

В eeePC биос останавливается, если стоит пустой переходник SD>microSD.

У тебя что-то с переходником, на моём eee pc 900a всё норм в течении 5 лет (если не больше).

drfaust ★★★★★
()
Ответ на: комментарий от Anonymous

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

В общем я не верю в правдивость этой новости и считаю её заказной.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

вообще usb устройство может иметь кучу endpoint, те быть одновременно сразу кучей разных девайсов дабы эксплуатировать все возможные уязвимости

anonymous
()
Ответ на: комментарий от anonymous

Очевидное решение - нахер USB-флешки, пользоваться обычными картами памяти + читалкой.

Перфокартами - там сразу видно есть бэкдур или нет - глазами прочитать можно.

drfaust ★★★★★
()
Ответ на: комментарий от anonymous

И что же мы сделаем через эмуляцию сетевой карты интересно? Для атаки «человек посередине» нужно чтобы после прохода через нашу флешку данные отправились в нормальный интернет (иначе у жертвы просто всё перестанет работать), но интернета у флешки нет.

Или взломаем компьютер жертвы сетевым эксплойтом? Но ведь это можно сделать и без флешки, просто подключившись к той же сети. К тому же нормальные ОС защищены от них.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от puding

Я про то, что реакция системы на втыкание флешки и нажатия клавиш совершенно не предсказуема ни по времени, ни по результату без обратной связи. Так что вся затея с флешкой-клавиатурой обречена на провал - злоумышленник просто не сможет рассчитать задержки. А таких вендокомпьютеров большинство на самом деле, ибо закон 90% работает.

KivApple ★★★★★
()

Для чисто флэшек мне бы хватило CF, но не у всех есть кардридеры. Для внешних HDD достаточто eSATAp без полноценного USB, но производители на это не пойдут.

anonymous
()
Ответ на: комментарий от Citramonum

И антивирусом, антивирусом все потроха перетряхивать почаще!

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

anonymous
()
Ответ на: комментарий от MrClon

Не десктоп - смартфон/планшет/телевизор или платка
На этих девайсах есть другие способы ввода, с помощью которых можно подтвердить
На платках терять нечего )

ubuntuawp ★★
()
Ответ на: комментарий от demidrol

я только в упор не вижу, где тут взлом

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

anonymous
()
Ответ на: комментарий от vi0

Если USB сделано на уму и чести, то всё должно быть OK.

Это несовместимо со стандартом :-(

anonymous
()
Ответ на: комментарий от KivApple

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

MrClon ★★★★★
()
Ответ на: комментарий от ubuntuawp

образ от ноута. а вот у тебя явно зверьсиди «со всеми драйверами»

anonymous
()
Ответ на: комментарий от nuke666

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

Так и я про то-же.

Кстати, что насчёт фейковых usb сетевых карт, а не клавиатур?

Зависит от настроек системы. Если ОС заюзает DHCP на свежеобретённой сетевухе то можно зарулить на себя весь или почти весь сетевой трафик. Но тогда «флешка» должна быть достаточно мозговитой что-бы реализовывать TCP/IP стек. И иметь доступ к настоящей сети (или умень эмулировать интернеты), иначе получит только ошмётки трафика.
Ещё можно отправлять хосту фэйковые пакеты.
Без DHCP будет только L2 линк, ХЗ что там можно сделать, наверное что-то можно.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

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

KivApple ★★★★★
()
Ответ на: комментарий от ubuntuawp

Под пункт «платка» подпадает куча встраиваемого стафа, ты уверен что в этой куче нечего терять?
Ну и всё-таки основной случай компа без клавиатуры к которому вдруг подключили клавиатуру это десктоп (у которого меняют клавиатуру) или сервер.

MrClon ★★★★★
()
Ответ на: комментарий от dadd

Сенсорный экран спасет отца русской демократии!

Что мешает флэшке притвориться сенсорным экраном?

anonymous
()
Ответ на: комментарий от MrClon

Свежеобнаруженной клавиатуре доверять ещё нельзя

Я за вариант с «введите код»

Это просто эталонные взаимоисключающие параграфы!

anonymous
()
Ответ на: комментарий от KivApple

Не надо впадать в крайности. Кроме Неуловимых Джо и труЪ параноиков есть куча людей которые не хотят делиться своей инфой с окружающими. Например бизнес. С одной стороны там есть что тырить, с другой до уровня труЪ параноиков тамошним админам и юзерам явно далеко.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Люди постоянно пихают в свои компы чужие флешки

Кстати, насколько безопасна ситуация «вставить чужую флэшку в свой кардридер»?

anonymous
()
Ответ на: комментарий от anonymous

Поступающие от клавы сигналы отправляются на обработку напрямую проверяющему процессу, пока процесс не даст добро клава не добавляется в систему как устройство ввода.

MrClon ★★★★★
()
Ответ на: комментарий от anonymous

В смысле карточку? ХЗ, думаю там меньше возможностей. Но о каких-то трюках с перепрошивкой SD карт я слышал (но там кажется не было угаров вроде превращения в клаву).
Карты памяти бывают разные, так-что думаю зависит от.

MrClon ★★★★★
()
Ответ на: комментарий от KivApple

А кому реально нужно компрометировать ваши данные?

Засунь свою пропаганду себе в задницу, КГБист сраный.

anonymous
()
Ответ на: комментарий от anonymous

То, что устройство, которое выглядит как Mass Storage, ведет себя как HID, еще не goatse. Любой контроллер может реализовывать любые классы с самого появления USB. Я даже на avr что-то похожее делал. И Phison'ы шил.

gadfly ★★
()
Ответ на: комментарий от anonymous

Не понял конкретно может ли USB устройство иметь доступ ко всей памяти (а не только к той, где соответствующий драйвер разрешил) как в FireWire.

Может, драйвер командует USB-контроллеру «пиши поступающие данные по DMA отсюда и досюда», а USB-устройство говорит «посылаю тебе данные» без указания адреса?

Может ли USB-устройство читать и писать произвольные участки памяти?

vi0
() автор топика
Ответ на: комментарий от KivApple

Найти стабильную последовательность клавиш чтобы заразить компьютер не особая проблема:

  • Подождать достаточно часов, чтобы компьютер оказался без присмотра, потом показрывать все окна и сделать то, что нужно. Никогда не работал без монитора?
  • Предполагая, что пользователь использует браузер, Ctrl+T, адрес заражённого сайта, Enter, Enter, Enter и т.д.
  • Периодически набирать невидимую букву типа «󠀠» и зарегистрировать соответстующие punycode-домены, на которых будет fishing;
  • Просто «помочь» пользователю установить malware, который на той же флешке и содержится (подтверждать все окна подряд)

Можно много нафантизировать...

vi0
() автор топика
Ответ на: комментарий от Valkeru

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

te111011010
()
Ответ на: комментарий от anonymous

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

Если б там хоть какое-то шифрование было — тогда бы согласился.

demidrol ★★★★★
()

Э, новость, по-моему вообще не об этом.

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

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

Показывать капчу при присоединении клавиатуры тоже не универсальное решение. На сервере вообще не может быть Иксов. Куда выводить сообщение? В терминале его быстро забросает мусором сыпящихся логов. Тут может помочь только спаситель Поттеринг со своей способностью все переделывать с нуля. Хотя как он сможет прикрутить модальные всплывающие окна в терминале, я хз.

anonymous
()
Ответ на: комментарий от maloi

Производителем покупается VID, потом он штампует устройства выставляя им PID. Эта пара - просто одни из параметров дескрипторов устройства. Прописать можно что угодно и как угодно.

Для самоделок есть диапазон «для прототипов».

А вообще, ты имеешь право выпускать USB устройства ни у кого ничего не покупая. Только не имеешь права использовать значёк USB и использовать надпись USB compatible. И никто ничего тебе не сделает. Ну и что, что разъём такой же? В остальном гарантий никаких.

h4tr3d ★★★★★
()
Ответ на: комментарий от KivApple

Ты можешь получить результат трансферинга. Не удался - попробовать ещё. Вообще USB сильно навороченная штука, сейчас проект по реализации UVC/UAC на Cypress FX3 чипе, голова от спеков уже кругом идёт. Единственный нюанс который нужно помнить: устройство САМО не может отправить данные на хост. Оно может отправить данные только как ответ на запрос с хоста. Т.е., по сути, хост постоянно опрашивает устройство на предмет данных, новых дескрипторов и т.п.

h4tr3d ★★★★★
()
Ответ на: комментарий от teod0r

а emulek сегодня трезвый, потому херню писать лень.

да и вообще, есть очень большая разница между «можно сделать» и «сделали». Вопрос в том, _кому_ это нужно-то? Оружие конечно действенное, но обоюдоострое. Если в ЦРУ запилят против КГБ, то разве КГБ этим не воспользуется против ЦРУ? Особенно учитывая, что и КГБ и ЦРУ будут работать с одним и тем же дядюшкой Ляо.

emulek
()
Ответ на: комментарий от vi0

Может ли USB-устройство читать и писать произвольные участки памяти?

нет. Оно не может быть инициатором передачи данных вообще. Только на запрос хоста. В посылках вообще нет такого понятия как адрес - только данные понятные принимающей стороне (будь то HID, MassStorage или UVC). Полученные данные уже принимающая сторона будет куда-то ложить. Т.е. ты, теоретически, можешь реализовать особое устройство которое будет срать в память, но нужна будет поддержка со стороны драйвера на хосте.

Кстати, для обновления прошивок на устройствах вполне себе существует стандартный класс устройств DFU (Device Firmware Upgrade): http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf существуют и всяки dfu-util. Не все устройства правда это используют. Ну и да, одно физическое устройство, by design, может определяться в системе по разному, в зависимости от режимов. Взять тот же навигатор Garmin GPSMAP 62s: это или последовательный порт или mass storage. Или вообще как составное, композитное устройство.

А есть ещё чипы, типа того же Cypress FX3, которые вообще могут грузить прошивку от драйвера. Есть у них такой режим USB Boot: при подаче питания запускается Boot loader, который смотрит на состояние определённых пинов и решает откуда читать прошивку, если режим: USB Boot (есть ещё EEPROM, SDI, SPI), он передаёт системе определённые дескрипторы, VID/PID берутся предпрошитые при изготовлении или из EEPROM. Создаётся единственная EP0. Со стороны хоста система по VID/PID подбирает драйвер, загружает его, драйвер уже, используя регламентированный Cypress протокол, заливает конкретную прошивку в чип, после чего запускается процесс ренумерации, после чего устройство уже видится совершенно по другому, с совершенно другими дескрипторами и только после этого начинает свою работу. С такими устройствами играться прикольно: удаляешь драйвер и используя fxload или свою какую утилиту при помощи libusb зашиваешь туда свой код :)

h4tr3d ★★★★★
()
Последнее исправление: h4tr3d (всего исправлений: 1)
Ответ на: комментарий от Displacer

Ну будет клавиатура из флешки а дальше то что? Какой сценарий использования?

Ctrl + Alt + F2 <Enter> rm -rf / <Enter>

ну иль че другое по вкусу

pihter ★★★★★
()
Ответ на: комментарий от demidrol

я только в упор не вижу, где тут взлом

виртуальная клавиатура быстро открывает консольку, запускает нано, накидывает скриптик который раз в сутки запрашивает с http://hackersite.com команду и выполняет ее от имени пользователя. Само-собой прописывается сей скриптик куда-нибудь в bashrc и таким образом злоумышленник получает удаленный контроль над ДАЖЕ ЛИНУКСОВОЙ твоей машиной, че уж говорить про виндузятников

pihter ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.