Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.pdf
Скачиваний:
23
Добавлен:
19.04.2024
Размер:
31.35 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

контроль над целевым устройством. Serial Wire Debug (SWD) – очень

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

похожий, даже более простой, чем JTAG, электрический интерфейсdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

его мы здесьтоже рассмотрим.

Большая часть этой главы отводится на практическое упражнение: вы запрограммируете,отладите и обманете микроконтроллер,чтобы обойти его процесс аутентификации с помощью UART и SWD.Но сна- чала мы объясним внутреннюю работу этих протоколов и покажем вам,как определить распиновку UART и JTAG на печатной плате с по- мощью аппаратных и программных средств.

UART

UART – последовательный протокол, что означает, что он передает данные между компонентами по одному биту за раз. Протоколы па- раллельной связи, напротив, передают данные одновременно по не- скольким каналам.К общим последовательным протоколам относят-

ся RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express и USB.

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

На рис. 7.1 показан формат пакета UART.

Ожидание

0

1

2

3

4

5

6

7

Р

Старт

 

 

 

 

 

 

 

Стоп

Битчетности Сообщение с данными (опционально)

Рис.7.1.Формат пакета UART

Обычнолиния удерживается на высоком уровне (при значении ло- гической 1), в то время как UART находится в состоянии ожидания. Затем, чтобы сигнализировать о начале передачи данных, передат- чик отправляет приемнику стартовый бит,в течение которого сигнал остается на низком уровне (при логическом значении 0).Далее пере- датчикотправляетотпятидовосьмибитданных,содержащихфакти- ческое сообщение, за которым следует необязательный бит четности и один или два стоповых бита (со значением логической 1),в зависи- мости от конфигурации. Бит четности, используемый для проверки ошибок,на практике встречается редко.Стоповый бит или биты обо- значают конец передачи.

Наиболеераспространеннаяконфигурацияназывается8N1:восемь бит данных без контроля четности и один стоповый бит. Например,

Уязвимости портов UART,JTAG и SWD  193

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

если бы мы хотели отправить символ C, или 0x43 в ASCII, в конфигу-

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

рации 8N1 UART, мы бы отправили следующие биты: 0 (стартовый

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

бит); 0, 1, 0, 0, 0, 0, 1, 1 (значение 0x43 в двоичном формате) и 0 (сто- повый бит).

Аппаратные средства для связи с UART

Для связи с UART можно использовать различные аппаратные сред- ства.Одинпростойвариант–этопереходниксUSBнапоследователь- ный порт, аналогичный тому, который мы используем ниже, в раз- деле «Взлом устройства с помощью UART и SWD». Другие варианты включают микросхемы CP2102 или PL2303. Если вы новичок во взло- ме оборудования, рекомендуем приобрести многоцелевой инстру- мент,поддерживающий протоколы,отличные отUART,например Bus Pirate,Adafruit FT232H, Shikra или Attify Badge.

Списокинструментовсихописаниямииссылкаминасайты,гдеих можно приобрести, представлен в разделе «Инструменты для взлома интернета вещей» в конце книги.

Как найти порты UART

Чтобы подключиться к устройству через UART, вам сначала нужно найти четыре его вывода, которые обычно имеют вид штырьков или контактных площадок (иногда с металлизацией отверстий). Термин «распиновка» означает схему подключения этих контактов. Мы бу- дем использовать эти термины как синонимы. UART имеет четыре вывода: TX (передача), RX (прием), Vcc (напряжение питания) и GND («земля»). Для начала откройте корпус устройства и снимите печат- ную плату. Имейте в виду, что это может привести к отказу в гаран- тийном обслуживании.

Эти четыре вывода часто располагаются на плате рядом другс дру- гом.Если повезет,вы можетедаже найти маркировку,обозначающую порты TX и RX, как показано на рис. 7.2. В данном случае вы можете быть уверены, что набор из четырех контактов – это именно контак-

ты UART.

Вдругих случаях вы можете увидетьчетыре площадкидля сквозных отверстий рядом друг с другом, как, например, в маршрутизаторе TP- Link(рис.7.3).Этомоглопроизойтииз-затого,чтопоставщикиудалили контактызаголовкаUARTспечатнойплаты;тогдавам,возможно,при- дется либо припаять к ним провода, либо использовать измеритель- ные щупы. (Измерительные щупы – физические устройства, которые соединяют электронное испытательное оборудование с устройством. Книмотносятсясобственнощуп,кабельиоконечныйразъем.Несколь- ко примеров измерительных щупов будет представлено в главе 8.)

Также имейте в виду, что некоторые устройства эмулируют пор- ты UART, программируя контакты ввода/вывода общего назначения (GPIO), если на плате недостаточно места для выделенных аппарат- ных контактов UART.

194  Глава 7

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.7.2.Контакты UART четко обозначены как DBG_TXD и DBG_RXD на печатной плате передатчика St.Jude / Abbott Medical Merlin@home

Рис.7.3.Печатная плата в маршрутизаторе TP-Link TL WR840N.В левом нижнем углу видна увеличенная часть печатной платы с контактными площадками UART

Уязвимости портов UART,JTAG и SWD  195

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Если контакты UART не отмечены так явно, как показано здесь, вы

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

можете обычно идентифицировать их на устройстве двумя способа-

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

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

Хотя с этой задачей справится и дешевый мультиметр, мы реко- мендуем приобрести надежный и точный прибор, если вы планиру- ете более глубоко погрузиться во взлом оборудования. Мультиметры True RMS более точно измеряют переменный ток. На рис. 7.4 показан типичный мультиметр.

Режим проверки цепей

Гнездо COM (GND)

ГнездоVΩ

Рис.7.4.На мультиметре квадратиком обведено обозначение режима проверки цепей. Обычно он обозначается символом звуковых колебаний (поскольку при обнаружении замкнутой цепи раздается звуковой сигнал)

Перед тем как определить распиновку UART с помощью мульти- метра, убедитесь, что устройство выключено. Черный щуп следует подключить к гнезду COM мультиметра, красный щуп – к гнезду VΩ.

196  Глава 7

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Начните с определения «земляного» вывода UART.Поверните шка-

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

лу мультиметра в режим проверки замкнутых цепей (обычно емуdf-x chan

 

o

 

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

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

Затем поочередно перемещайте красный щуп на каждый из выво- дов платы, которые, как вы подозреваете, могут быть частью распи- новки UART. Если вы услышали звуковой сигнал мультиметра, кон- такт GND найден. Имейте в виду, что устройство может иметь более одного вывода GND,–тогда найденный вами контакт не обязательно является частью распиновки UART.

Теперь найдите контакт питания Vcc. Переведите шкалу мульти- метра в режим измерения постоянного напряжения и установите на нем напряжение 20 В. Не отрывайте черный щуп от линии «земли». Прикоснитесь красным щупом к предполагаемому контакту питания

ивключите устройство. Если мультиметр измеряет постоянное на- пряжение 3,3 или 5 В, вы нашли вывод Vcc. Если напряжение другое, прикоснитесь красным щупом к следующему контакту, перезагрузи- теустройствоисновапроведитеизмерение.Проверяйтекаждыйкон- такт, пока не определите Vcc.

Затем определите портTX.Оставьте мультиметр в режиме измере- ния постоянного напряжения не более 20 В и продолжайте касаться черным щупом заземленной поверхности. Прикоснитесь красным щупом к предполагаемой контактной площадке, затем выключите

иснова включите устройство. Если напряжение колеблется в течение нескольких секунд, а затем стабилизируется на значении Vcc (3,3 или 5), вы, скорее всего, нашли порт TX. Это происходит потому, что во время загрузки устройство отправляет последовательные данные че- рез этот порт TX для отладки. По завершении загрузки линия UART переходитв режим ожидания.Вспомните (рис.7.1),что свободнаяли- ния UART поддерживает высокий логический уровень, что означает, что напряжение на ней равно Vcc.

Если вы уже определили остальную частьпортов UART,ближайший четвертый контакт, скорее всего, является портом RX. В противном случае вы можете идентифицировать его, потому что он имеет наи- меньшее колебание напряжения и наименьший уровень напряжения среди всех выводов UART.

  ВНИМАНИЕ!    Ничего страшного, если вы перепутаете порты UART RX и TX друг с другом, поскольку легко поменять местами соединяю- щиеся с ними провода – никаких последствий не будет. А вот если пе- репутать Vcc с GND и неправильно подключить провода, устройство может выйти из строя.

Дляболееточнойидентификацииконтактов UARTиспользуйтело- гический анализатор – устройство, которое захватывает и отобража-

Уязвимости портов UART,JTAG и SWD  197