Как аппаратно взломать Android через UART
... с помощью Ли Паркс.
«Что такое UART?» Я слышал, вы спрашиваете. Нет, это не тот шум, который возникает, когда вы испытываете особо ядовитое напряжение в лурге, это означает универсальный асинхронный приемник / передатчик. Это помогает? Немного. Теперь, если бы я сказал RS232 или RS423 некоторые из старых читателей могут начать это понимать: это аппаратная часть, которая переводит системные данные в последовательные данные.
Те из нас, кто помнит старые добрые (?) Времена консолей Unix и Mainframe, потратили много часов на проклятие последовательных портов, но они предоставляют механизм для чтения и записи на консоль устройства, что позволяет вам прервать загрузку. процесс и обеспечивает способ прошить пользовательский код на устройство. Средства обычно встроены в устройство на стадии проектирования и не могут быть отключены.
У большинства встроенных потребительских устройств был некоторый вид последовательного порта, доступный по той же причине, по которой они имеют порты JTAG: чтобы разрешить отладку устройства во время его разработки и для потребительских возвратов (больше о JTAG в более позднем сообщении в блоге). Обычно заголовки порта не прикрепляются в окончательных коммерческих версиях. Например, вот дыры, взятые из старого беспроводного маршрутизатора Belkin, с которым я сижу:
Четыре отверстия слева - это порт UART (справа - конечные точки USB), благодаря которому маршрутизатор облегчает нам задачу, поскольку контакты помечены. Чтобы фактически прочитать данные, нам нужно подключить их к USB-приемнику, а затем мы можем напрямую общаться с консолью маршрутизатора.
Чтобы упростить это, первым делом нужно припаять некоторые контакты на плате, это можно увидеть ниже. Обратите внимание, я не очень хорош в пайке, поэтому я не буду показывать нижнюю сторону :)
Теперь мы можем подключить это к USB-модулю UART. Их довольно легко найти и дешево, моя стоила мне менее £ 3,00. Это позволяет обрабатывать все порты USB, чтобы вы могли просто подключить его и рассматривать как последовательное соединение.
Наконец, нам нужно соединить контакты, как показано ниже:
НазначениеПорт на маршрутизатореПорт на модуле USB / UART
Прием RX Передача TX Передача TX RX 3.3V VCC Не подключайте заземление GND GND
Наконец, соедините все это вместе и подключите к компьютеру:
Наблюдатель, возможно, заметил, что вышеупомянутая печатная плата не совпадает с предыдущими картинками. Это было мое тестовое устройство, старый маршрутизатор Sagem, который я припаял, прежде чем подумать сначала сделать фотографии.
После подключения мы можем просто загрузить последовательную консольную программу, такую как HyperTerm или minicom, и посмотреть, как она загружается:
Это может быть простой способ загрузки вредоносной прошивки на существующий маршрутизатор для настройки беспроводного анализатора, за исключением того, что он слишком сложен, и было бы проще просто спрятать небольшое беспроводное устройство, такое как ананас Wi-Fi.
Но это работает для других устройств, таких как некоторые мобильные телефоны! Один из моих коллег нашел интересную статью о как подключиться к UART на Nexus 4 через разъем для наушников .
В основном, если устройство видит напряжение более 2,8 В на разъеме микрофона, оно превращает разъем в порт UART.
Итак, еще раз произведен старый паяльник и изготовлен кабель, мы фактически исключили резисторы, поскольку они являются защитной сеткой и фактически не требуются (напряжение от преобразователя USB в UART составляет 3,3 В, поэтому оно соответствует требованиям ).
На этот раз я не могу скрыть недостаток паяльной способности:
Который затем мы можем подключить к другому конвертеру USB в UART и подключить к моему ноутбуку:
И мы можем прочитать консоль при загрузке устройства:
После завершения загрузки Android он будет непрерывно выводить данные о состоянии оборудования устройства. Вы даже можете подключиться, когда устройство работает .
Некоторые телефоны (например, Samsung Galaxy S2) позволяют осуществлять двустороннюю связь через соединение UART, что может обеспечить низкоуровневую связь, например, сбросить «желтый флаг», который показывает, записано ли неподписанное изображение во флэш-память.
В заключение следует сказать, что простое аппаратное взломание выполняется довольно быстро, самые большие задержки, с которыми я сталкивался, были в ожидании прибытия компонентов, и самый длительный период времени, который потребовался, был потрачен, когда мой паяльник развил короткий и отключил электрику дома ».
Хотя непосредственных угроз безопасности нет, он может предоставить доступ к пользовательским устройствам.
«Что такое UART?Это помогает?