- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
9
ВЗЛОМ ПРОШИВКИ
Прошивка, или микропрограмма, – часть программно-
го обеспечения, которая связывает аппаратный уровень устройства с его основным программным уровнем. Уяз- вимость в этой части устройства может оказать огромное влияние на все его функции.Вотпочему крайне важно выяв-
лять и устранять уязвимости прошивок для защищенных устройств интернета вещей.
В этой главе будет показано, что такое прошивка и как можно по- лучить к ней доступ; затем мы проанализируем ее на наличие уязви- мостей. Начнем с поиска учетных данных пользователя в файловой системе прошивки. Затем эмулируем некоторые скомпилированные двоичные файлы встроенного ПО в составе прошивки для выполне- ния динамического анализа. Также мы модифицируем общедоступ- ное встроенное ПО,добавляя механизм бэкдора,и обсудим,как обна- ружить уязвимую службу обновления прошивки.
Прошивка и операционные системы
Прошивка–этотиппрограммногообеспечения,котороеобеспечива- ет связь и контроль над аппаратными компонентами устройства.Это первый фрагмент кода, запускаемый устройством. Обычно он загру- жает операционную систему и предоставляет очень специфические
Взлом прошивки 245
|
|
|
|
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 |
|
устройств, если не все, имеют микропрограммное обеспечение. Хотя микропрограммное обеспечение является более простым
инадежным ПО,чем операционные системы,оно также имеет более строгие ограничения и предназначено для поддержки только кон- кретного оборудования. Напротив, многие устройства IoT работают под управлением чрезвычайно продвинутых сложных операцион- ных систем, которые поддерживают большое семейство продуктов. Например,IoT-устройства на базе Microsoft Windows обычно исполь- зуют операционные системы, такие как Windows 10 IoT Core, Win- dows Embedded Industry (также известна под названием POSReady
или WEPOS) и Windows Embedded CE. В устройствах интернета ве- щей на базе встроенных вариантов Linux часто используются такие операционные системы, как Android Things, OpenWrt и Raspberry Pi OS. С другой стороны, устройства IoT, предназначенные для обслу- живания приложений в реальном времени,которым необходимо об- рабатывать данные с определенными временными ограничениями
ибез задержек в буфере, обычно основаны на операционных систе-
мах реального времени (real-time operating systems,RTOS),таких как BlackBerry QNX, Wind River VxWorks и NXP MQX mBed. Кроме того, «пустые» устройства IoT (без операционной системы), разработан- ные для поддержки простых приложений на основе микроконтрол- леров, обычно выполняют ассемблерный код напрямую, без допол- нительных алгоритмов планирования операционной системы для распределения системных ресурсов. Тем не менее каждая из этих реализаций имеет свою собственную последовательность загрузки с совместимыми загрузчиками.
Вменее сложных устройствах IoT прошивка может играть роль операционной системы. Устройства хранят микропрограммное обе- спечение в энергонезависимой памяти, такой как ПЗУ, СППЗУ или флеш-память.
Важноизучитьмикропрограммноеобеспечение,азатемпопытать- ся изменить его, потому что мы можем раскрыть многие проблемы безопасности во время этого процесса.Пользователи часто изменяют прошивку, чтобы разблокировать новые функции или настроить ее. Но с помощью той же тактики злоумышленники могут лучше понять внутреннюю работу системы или даже воспользоваться уязвимостью системы безопасности .
Получение доступа к микропрограмме
Прежде чем вы сможете выполнить реверс-инжиниринг прошивки, вы должны найти способ получить к ней доступ. Обычно это можно сделать несколькими способами,в зависимости отустройства.В этом разделемырассмотримнаиболеепопулярныеметодыизвлечениями- кропрограмм в соответствии с методологией тестирования безопас
246 Глава 9
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ности микропрограмм OWASP (FSTM), которую вы можете найти по |
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
адресу https://scriptingxss.gitbook.io/firmware-security-testing-methodology/.df-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
Часто самый простой способ найти микропрограмму – это посе- тить сайт поддержки поставщика. Некоторые поставщики делают свои микропрограммы общедоступными, чтобы упростить устране- ние неполадок.Например,производительсетевого оборудования TP- Link предоставляет на своем веб-сайте репозиторий файлов проши- вок маршрутизаторов, камер и других устройств.
Если прошивка для конкретного устройства не опубликована, по- пробуйтеспроситьобэтомпоставщика.Некоторыепоставщикимогут просто предоставить вам прошивку. Вы можете напрямую связаться с командой разработчиков, производителем или другим клиентом поставщика. Убедитесь, что лицо, с которым вы связались, уполно- мочено поделиться с вами микропрограммой (имеет разрешение по- ставщика). Определенно стоит попробовать приобрести версию для разработки и окончательную сборку – это сделает ваше тестирование более эффективным, потому что вы сможете увидеть различия меж- ду двумя сборками. Кроме того, в предварительной сборке некоторые механизмы защиты могут отсутствовать. Например, Intel RealSense предоставляет рабочую и производственную версии прошивок для своих камер по адресуhttps://dev.intelrealsense.com/docs/firmware-releases/.
Иногда вам придется собирать прошивку вручную. Некоторых это пугает,но решение есть.Исходный код микропрограммы можетбыть общедоступным, особенно в проектах с открытым исходным кодом. В этих ситуациях можно создать микропрограмму, следуя опублико- ванным производителем пошаговым руководствам и инструкциям. Операционная система OpenWrt, использованная в главе 6,– один из таких проектов микропрограмм с открытым исходным кодом; в ос- новном она используется во встроенных устройствах для маршрути- зации сетевоготрафика.Например,микропрограмма маршрутизато-
ров GL.iNet основана на OpenWrt.
Другой распространенный подход – изучение мощных поисковых систем, таких как Google, с помощью Google Dork1. При правильном запросе в интернете можно найти почти все. Найдите в Google рас- ширения двоичных файлов, размещенные на платформах для обме-
на файлами, таких как MediaFire, Dropbox, Microsoft OneDrive, Google Drive или Amazon Drive. Часто можно встретить образы микропро- грамм, загруженные клиентами на форумы или в блоги клиентов и корпоративные блоги. Посмотрите раздел комментариев на сайтах для общения между покупателями и производителями. Вы можете найти информацию о том, как получить микропрограмму, или даже обнаружить, что производитель отправил заказчику сжатый файл либо ссылку для загрузки микропрограммы с платформы обмена файлами. Вот пример запроса Google Dork для поиска файлов про- шивки для устройств Netgear:
1GoogleDorkилиGoogleDorkQueries(GDQ)–этонаборпоисковыхзапросов для выявления грубейших дыр в безопасности .– Прим.ред.
Взлом прошивки 247
|
|
|
|
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 |
|
|
|
|
|
|
intitle:"Netgear" intext:"Firmware Download" |
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
Параметрintitle указываеттекст,которыйдолженприсутствовать в заголовке страницы,тогда как параметр intext указываеттекст,ко- торый должен существовать в содержимом страницы. Этот поиск дал результаты, показанные на рис. 9.1.
Рис.9.1.Обнаружение ссылок на прошивки для устройств Netgear с помощью
Google Dork
Не пренебрегайте и открытыми облачными хранилищами. По- пробуйте поискать в бакетах (корзинах) хранилища Amazon S3; если повезет, вы сможете найти микропрограммное обеспечение в неза- щищенной корзине поставщика. (Чтобы соблюсти законность, убе- дитесь, что бакеты раскрыты легально и что поставщик разрешил доступ к файлам.) Инструмент S3Scanner может перечислить бакеты Amazon S3 поставщика. Инструмент написан на Python 3, который предварительно установлен в Kali Linux.Вы можете загрузить прило- жение с помощью команды git:
$ git clone https://github.com/sa7mon/S3Scanner
Затем перейдите в папку приложения и установите необходимые зависимости с помощью команды pip3,котораятакже доступна в Kali Linux:
#cd S3Scanner
#pip3 install -r requirements.txt
Теперь вы можете найти бакеты Amazon S3, принадлежащие по- ставщику оборудования и выяснить, какие из них предоставляют до- ступ к встроенному ПО:
248 Глава 9
|
|
|
|
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 |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
|||
w Click |
|
|
|
|
|
|
|
$m python3 s3scanner.py vendor_potential_buckets.txt |
w Click |
|
|
|
|
|
|
m |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
|
g |
.c |
|
||||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
||||
|
|
|
df |
-xcha |
|
e |
2020-05-01 11:16:42 |
Warning: AWS credentials not configured. Open buckets will be shown as-x cha |
|
e |
|
|||||||||||||||
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
df |
|
|
|
n |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
closed. Run: `aws configure` to fix this. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:45 [found] : netgear | AccessDenied | ACLs: unknown - no aws creds |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:46 [not found] : netgear-dev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:46 [not found] : netgear-development |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:46 [not found] : netgear-live |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:47 [not found] : netgear-stag |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:47 [not found] : netgear-staging |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:47 [not found] : netgear-prod |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:48 [not found] : netgear-production |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:48 [not found] : netgear-test |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:52 [found] : tplink | AccessDenied | ACLs: unknown - no aws creds |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 11:16:52 |
[not found] : tplinl-dev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр vendor_potential_buckets.txt указывает файл потенци- альных имен сегментов,который можетпопробовать инструмент.Вы можете создать свой собственный аналогичный пользовательский файл и указать имена поставщиков, за которыми следуют популяр- ные суффиксы для сегментов S3, например -dev, -development, -live, -staging и -prod. Первоначально инструмент выводит предупрежда- ющее уведомление об отсутствии ваших учетных данных AWS,но это ожидаемо,и вы можете его проигнорировать.Затем выводятся обна- руженные бакеты S3 с указанием статуса доступа.
Если устройство поставляется с сопутствующим программным обеспечением,возможно,стоит попробовать попробовать проанали- зировать клиентские приложения. Анализируя сопутствующие мо- бильные приложения или так называемые толстые клиенты устрой- ства – полнофункциональные компьютеры, для работы которых не требуется сетевое соединение, – вы можете обнаружить жестко за- программированные конечные точки, с которыми взаимодействуют приложения. Одна из этих конечных точек может быть той, которая использовалась для автоматической загрузки микропрограммы во время процесса обновления. Независимо от того, аутентифицирова- на ли эта конечная точка, вы должны иметь возможность загружать микропрограммное обеспечение путем анализа клиентов. Можете найти методологию анализа таких приложений в главе 14.
Если устройство получает по сети обновления и исправления оши- бок от производителя, вы можете эффективно провести атаку типа «человек посередине» во время обновления прошивки. Эти обнов- ления передаются по сетевому каналу с центрального сервера или кластеров серверов на каждое подключенное устройство. В зависи- мости от сложности логики приложения, которое загружает микро- программное обеспечение, самым простым решением может быть перехват трафика. Для этого на устройстве должен быть установлен доверенный сертификат (при условии, что передача происходит по HTTPS),который позволит перехватыватьтрафик с помощью сетево- го сниффера,технологии отравления (например,отравление кеш-па-
Взлом прошивки 249