- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
m |
|||
|
w Click |
|
|
|
|
|
|
|||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
пользуя макетную плату ESP32, а затем поэтапно изучите продвину- |
. |
.c |
|
|||||||||
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
тоеупражнениеCapturetheFlag(CTF),разработанноеспециальнодля BLE.Прочитавэтуглаву,выбудетеготовыксамостоятельномувыпол- нению некоторых заданий лабораторной работы по CTF, которые мы намеренно оставили для вас.
Как работает BLE
BLE потребляет значительно меньше энергии, чем традиционный Bluetooth, но он может очень эффективно передавать небольшие объемы данных. Совместимый с Bluetooth 4.0, BLE использует только 40каналов,охватывающихдиапазонот2400до2483,5МГц.Напротив, традиционный Bluetooth использует 79 каналов в том же диапазоне.
Хотя каждое приложение использует эту технологию по-разному, наиболее распространенный способ связи устройств BLE – это от- правкаинфопакетов(advertisingpacket).Этипакеты,такжеизвестные как маяки (beacon), передают информацию о существовании устрой- ства BLEдругим ближайшим устройствам (рис.11.1).Эти маякитакже иногда отправляют данные.
Сканирование ADV
ADV Сканирование
Сканирование ADV
ADV Сканирование
Рис.11.1.Устройства BLE отправляют инфопакеты,чтобы вызвать запрос SCAN
Чтобы снизитьэнергопотребление,устройства BLE отправляютин- фопакеты только тогда, когда им необходимо подключиться и обме- ниваться данными; в остальное время они пребывают в режиме сна. Прослушивающее устройство, также называемое центральным, мо- жетотвечать на инфопакетзапросом SCAN,отправленным специаль- но для активного устройства.Ответ устройства на запрос SCAN имеет ту же структуру, что и инфопакет. Он содержит дополнительную ин- формацию, которая не могла уместиться в первоначальном инфопа- кете,напримерполноеназваниеустройстваилилюбуюдополнитель- ную информацию, которую добавил изготовитель устройства.
314 Глава 11
|
|
|
|
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 |
|
|
|
|
На рис. 11.2 показана структура пакета BLE.
Структура пакета PLE
Преамбула |
Адрес доступа |
Блок данных протокола |
1 байт |
4 байта |
2–257байт |
|
|
Уведомление / данные PDU |
|
|
Рис.11.2.Структура пакета BLE
|
|
|
|
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 |
|
|
|
|
CRC
3 байта
Байт преамбулы синхронизирует частоту,тогда как четырехбайто- вый адрес доступа является идентификатором соединения, который используется в сценариях, когда несколько устройств пытаются уста- новитьсоединениянаоднихитехжеканалах.Блокданныхпротокола (PDU) содержит инфопакет. Существует несколько типов PDU; наибо- лее часто встерчаются ADV_NONCONN_IND и ADV_IND. Устройства используют PDU ADV_NONCONN_IND, если они не принимают вхо- дящие соединения, передавая данные только в инфопакете. Устрой- ства используют ADV_IND, если они разрешают входящие соедине- ния и прекращают отправку инфопакетов после того,как соединение было установлено. На рис. 11.3 показан пакет ADV_IND, перехвачен- ный при помощи Wireshark.
Рис.11.3.Дерево отображения Wireshark,показывающее инфопакет BLE типа
ADV_IND
ТиписпользуемогопакетазависитотреализацииBLEитребований проекта.Например,вы найдете пакеты ADV_IND в интеллектуальных устройствах интернета вещей, таких как умные бутылки с водой или часы,потому что они пробуютподключиться к центральному устрой- ству перед выполнением дальнейших операций. С другой стороны, вы можете найти пакетыADV_NONCONN_IND в маякахдля определе- ния приближения объекта к датчикам, установленным на различных устройствах.
Bluetooth Low Energy (BLE) 315
|
|
|
|
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 |
|
|
|||
Общий профильдоступа и общий профильатрибутов |
w Click |
to |
|
|
|
|
m |
|||||
|
|
|
|
|
||||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
|
p |
|
|
|
|
g |
|
|
|
Все устройства BLE имеютобщий профиль доступа (GenericAccess Pro- |
|
|
df |
|
|
n |
e |
|
||||
|
|
|
|
|
|
-x cha |
|
|
|
|
file, GAP), который определяет, как они могут подключаться к дру- гим устройствам, связываться с ними и делать себя доступными для обнаружения через широковещательную рассылку. Периферийное устройство может быть подключено только к одному центральному устройству, тогда как центральное устройство может подключаться к такому количеству периферийных устройств, которое центральное устройство может поддерживать. После установки подключения пе- риферийные устройства больше не принимают запросы на подклю- чения. Для каждого подключения периферийное устройство через определенные промежутки времени отправляет рекламные зонды, используятри разных частоты,пока центральное устройство не отве- тит, а периферийное устройство не подтвердит ответ, указывая, что оно готово начать подключение.
Общий профиль атрибутов (Generic Attribute Profile, GATT) опре-
деляет, как устройство должно форматировать и передавать данные. Когда вы анализируете поверхность атаки устройства BLE, вы часто сосредотачиваете свое внимание на GATT, потому что от него зави- сит, как запускаются определенные функции устройства и как дан- ные сохраняются, группируются и изменяются. GATT перечисляет характеристики, дескрипторы и службы устройства в таблице в виде 16-или 32-битных значений.Характеристика–это значение данных, передаваемое между центральным устройством и периферийным устройством.Эти характеристики могутиметьдескрипторы,которые предоставляютдополнительную информацию о них.Характеристики частогруппируютсявслужбы,еслионисвязанысвыполнениемопре- деленного действия. Службы могут иметь несколько характеристик, как показано на рис. 11.4.
Сервер GATT
Служба
Характеристика
Дескриптор
Характеристика
Дескриптор
Служба
Характеристика
Дескриптор
Характеристика
Дескриптор
…
Рис.11.4.Структура GATT состоит из служб,характеристик и дескрипторов
316 Глава 11
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
||
|
|
C |
|
E |
|
|
|
|
|
C |
|
E |
|
|
||||||
|
X |
|
|
|
|
|
|
|
X |
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
- |
|
|
|
|
|
d |
|||
|
F |
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
|
D |
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|
P |
|
|
|
|
NOW! |
o |
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
BUY |
|
|
|
|
|
|
BUY |
|
||||||||
|
wClick |
to |
|
|
|
|
oРаботаm |
с BLE |
|
wClick |
to |
|
|
|
|
o m |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
w |
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
||
w |
|
|
|
|
|
|
.c |
|
w |
|
|
|
|
|
|
.c |
||||
|
. |
|
|
|
|
g |
|
|
. |
|
|
|
|
g |
||||||
|
p |
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
||||
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
e |
|||||
|
|
|
-xcha |
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
В этом разделе мы рассмотрим оборудование и программное обеспе- чение,необходимое для взаимодействия с устройствами BLE.Мы по- знакомим вас с оборудованием,которое вы можете использовать для установлениясоединенийBLE,атакжеспрограммнымобеспечением для взаимодействия с другими устройствами.
Необходимое оборудование BLE
Для работы с BLE вам доступен широкой выбор различных устройств. Для простой отправки и получения данных может быть достаточно встроенных в ноутбук модулей или дешевых внешних USB-адаптеров BLE. Но для сниффинга и взлома протокола низкого уровня вам понадобится что-то более сложное и надежное. Цены на эти устройства сильно различаются; вы найдете список оборудова- ния для взаимодействия с BLE в разделе «Инструменты для взлома интернета вещей».
ВэтойглавемыбудемиспользоватьмакетнуюплатуESP32WROOM
от Espressif Systems (https://www.espressif.com/), поддерживающую про-
токолы Wi-Fi 2,4 ГГц и BLE (рис. 11.5).
Рис.11.5.Плата разработки ESP32 WROOM
Bluetooth Low Energy (BLE) 317