Как аппаратно взломать Android через UART

... с помощью Ли Паркс.

«Что такое UART?» Я слышал, вы спрашиваете. Нет, это не тот шум, который возникает, когда вы испытываете особо ядовитое напряжение в лурге, это означает универсальный асинхронный приемник / передатчик. Это помогает? Немного. Теперь, если бы я сказал RS232 или RS423 некоторые из старых читателей могут начать это понимать: это аппаратная часть, которая переводит системные данные в последовательные данные.

Те из нас, кто помнит старые добрые (?) Времена консолей Unix и Mainframe, потратили много часов на проклятие последовательных портов, но они предоставляют механизм для чтения и записи на консоль устройства, что позволяет вам прервать загрузку. процесс и обеспечивает способ прошить пользовательский код на устройство. Средства обычно встроены в устройство на стадии проектирования и не могут быть отключены.

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

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

Чтобы упростить это, первым делом нужно припаять некоторые контакты на плате, это можно увидеть ниже. Обратите внимание, я не очень хорош в пайке, поэтому я не буду показывать нижнюю сторону :)

Теперь мы можем подключить это к USB-модулю UART
Теперь мы можем подключить это к USB-модулю UART. Их довольно легко найти и дешево, моя стоила мне менее £ 3,00. Это позволяет обрабатывать все порты USB, чтобы вы могли просто подключить его и рассматривать как последовательное соединение.

Наконец, нам нужно соединить контакты, как показано ниже:

НазначениеПорт на маршрутизатореПорт на модуле USB / UART

Прием RX Передача TX Передача TX RX 3.3V VCC Не подключайте заземление GND GND

Наконец, соедините все это вместе и подключите к компьютеру:

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

После подключения мы можем просто загрузить последовательную консольную программу, такую ​​как HyperTerm или minicom, и посмотреть, как она загружается:

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

Но это работает для других устройств, таких как некоторые мобильные телефоны! Один из моих коллег нашел интересную статью о как подключиться к UART на Nexus 4 через разъем для наушников .

В основном, если устройство видит напряжение более 2,8 В на разъеме микрофона, оно превращает разъем в порт UART.

Итак, еще раз произведен старый паяльник и изготовлен кабель, мы фактически исключили резисторы, поскольку они являются защитной сеткой и фактически не требуются (напряжение от преобразователя USB в UART составляет 3,3 В, поэтому оно соответствует требованиям ).

На этот раз я не могу скрыть недостаток паяльной способности:

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

И мы можем прочитать консоль при загрузке устройства:
И мы можем прочитать консоль при загрузке устройства:

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

Некоторые телефоны (например, Samsung Galaxy S2) позволяют осуществлять двустороннюю связь через соединение UART, что может обеспечить низкоуровневую связь, например, сбросить «желтый флаг», который показывает, записано ли неподписанное изображение во флэш-память.

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

Хотя непосредственных угроз безопасности нет, он может предоставить доступ к пользовательским устройствам.

«Что такое UART?
Это помогает?