- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 |
|
|
|
|
[+]successfully read block 1 of sector 0.
...
[+]successfully read block 3 of sector 15.
[+]time: 35 seconds
[+]Succeeded in dumping all blocks
[+]saved 1024 bytes to binary file hf-mf-B46F6F79-data.bin
|
|
|
|
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 |
|
|
|
|
Эта команда сохраняет данные в файле с именем hf-mf-B46F6F79- data.bin. Вы можете передавать файлы в формате .bin напрямую в другую RFID-метку.
Некоторые прошивки Proxmark3, поддерживаемые сторонними разработчиками, хранят данные еще в двух файлах с расширениями
.eml и .json. Вы можете загрузить файл .eml в память Proxmark3 для дальнейшего использования, а также использовать файл .json со сто- роннимпрограммнымобеспечениемидругимиустройствамиэмуля- ции RFID наподобие ChameleonMini.Этиданныелегко преобразовать изодногоформатафайлавдругойвручнуюилиспомощьюрядаавто- матизированных скриптов, которые мы обсудим в разделе «Автома- тизация RFID-атак с помощью скриптов для Proxmark3».
Чтобы скопировать сохраненные данные на новую карту,помести- те карту в зоне действия антенны Proxmark3 и используйте параметр restore Proxmark3:
proxmark3> hf mf restore
[=] Restoring hf-mf-B46F6F79-data.bin to card
Writing to block |
0: B4 |
6F |
6F |
79 |
CD 08 04 00 01 |
2A |
51 62 |
0B |
D9 |
BB 1D |
[+] isOk:00 |
|
|
|
|
|
|
|
|
|
|
Writing to block |
1: 00 |
00 |
00 |
00 |
00 00 00 00 00 |
00 |
00 00 |
00 |
00 |
00 00 |
[+] isOk:01 |
|
|
|
|
|
|
|
|
|
|
Writing to block |
2: 00 |
00 |
00 |
00 |
00 00 00 00 00 |
00 |
00 00 |
00 |
00 |
00 00 |
… |
|
|
|
|
|
|
|
|
|
|
Writing to block |
63: FF FF FF FF FF FF FF 07 80 |
69 |
FF FF FF FF FF FF |
|||||||
[+] isOk:01 |
|
|
|
|
|
|
|
|
|
|
[=] Finish restore |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Чтобы эта команда работала, карта не обязательно должна быть пустой, но команда restore снова использует файл dumpkeys.bin для доступа к карте. Если текущие ключи карты отличаются от ключей, хранящихся в файле dumpkeys.bin, операция записи завершится не- удачно.
Имитация RFID-метки
В предыдущем примере мы клонировали RFID-метку, сохранив дан- ные исходной метки в файлах с помощью команды dump и используя новуюкартудлявосстановленияизвлеченныхданных.Нотакжемож- но смоделировать RFID-тег с помощью Proxmark3, извлекая данные непосредственно из памяти устройства.
296 Глава 10
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Загрузите ранее сохраненное содержимое тега MIFARE в память |
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
Proxmark3, используя параметр загрузки. Укажите имя файла .eml,df-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
в котором хранятся извлеченные данные:
proxmark3> hf mf eload hf-mf-B46F6F79-data
Обратите внимание, что этой команде иногда не удается передать данные из всех сохраненных секторов в память Proxmark3. В этом случае вы получите сообщение об ошибке. Неоднократное использо- вание команды позволит решить эту проблему и успешно завершить передачу.
Чтобы смоделировать RFID-метку с использованием данных из па- мяти устройства, используйте параметр sim:
proxmark3> hf mf sim *1 u 8c61b5b4
mf sim cardsize: 1K, uid: 8c 61 b5 b4 , numreads:0, flags:3 (0x03) #db# 4B UID: 8c61b5b4
#db# SAK: 08 #db# ATQA: 00 04
Символ * выбирает все блоки тега, а следующее за ним число ука- зывает размер памяти (в данном случае 1 – для MIFARE Classic 1 КБ). Параметр u указывает UID имитируемой RFID-метки.
Многие устройства IoT, такие как интеллектуальные дверные зам- ки, используют UID метки для управления доступом в помещение. Эти замки основаны на списке идентификаторов меток, связанных с конкретными людьми, которым разрешено открывать дверь. На- пример,замок надвери офиса можетоткрыватьсятолькотогда,когда RFID-метка с UID 8c61b5b4, которая, как известно, принадлежит за- конному сотруднику, поднесена к замку.
Вы можете подобрать действительный UID, моделируя метки со случайными значениями UID. Это может сработать, если метки, ко- торые вы хотите взломать,используют UID с небольшим диапазоном значений, и возможны повторы.
Изменение содержимого RFID-меток
В некоторых случаях полезно изменить содержимое конкретного блока или сектора. Например, более продвинутый дверной замок офиса не будетпросто проверятьUID метки; онтакже проверитопре- деленное значение,связанное с законным сотрудником,сохраненное водномизблоковметки.Какивпримереизраздела«Моделирование RFID-меток», выбор произвольного значения может позволить вам обойти контроль доступа.
Чтобы изменить определенный блок MIFARE для метки, сохранен- ной в памяти Proxmark3,используйте параметр eset,за которым сле- дуют номер блока и содержимое, которое вы хотите добавить в блок,
Радио ближнего действия: взлом rFID 297
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
ние 000102030405060708090a0b0c0d0e0f в блоке номер 01: |
|
w |
|
df-x chan |
|
o |
|
||||
|
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f
Чтобы проверить результат,используйте команду eget,после кото- рой снова введите номер блока:
proxmark3> hf mf eget 01
data[ 1]:00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
Теперь можно еще раз использовать команду sim для имитации измененной метки. Вы также можете изменить содержимое памяти имитируемой физической метки, используя параметр wrbl, за кото- рым следует номер блока, тип используемого ключа (A или B) – зна- чение по умолчанию которого в нашем случае равно FFFFFFFFFFFF – и содержимое в шестнадцатеричном формате:
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f
--block no:1, key type:B, key:ff ff ff ff ff ff --data: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f #db# WRITE BLOCK FINISHED
isOk:01
Убедитесь, что конкретный блок был записан с помощью параме- тра rdbl,за которым следуетномер блока 01 с ключомтипа B,равным
FFFFFFFFFFFF:
proxmark3> hf mf rdbl 01 B FFFFFFFFFFFF
--block no:1, key type:B, key:ff ff ff ff ff ff #db# READ BLOCK FINISHED
isOk:01 data:00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
Вывод содержитто же содержимое в шестнадцатеричном формате, которое вы записали в этот блок.
Атака на MIFARE с помощью приложения для Android
На телефонах Android вы можете запускать приложения, атакующие карты MIFARE. Одним из распространенных приложений для этого является MIFARE Classic Tool, который использует предварительно загруженный список ключей для перебора значений ключей и чте- ния данных карты.Затем вы можете сохранитьданные для эмуляции устройства в будущем.
Чтобы прочитать метку, нажмите кнопку READ TAG (прочитать метку) в главном меню приложения. Должен появиться новый ин-
298 Глава 10
|
|
|
|
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 |
|
на рис. 10.6.
Рис.10.6.Интерфейс MIFARE Classic Tool для устройств Android
Сохраните эти данные в новую запись, щелкнув значок дискеты в верхней части интерфейса. Чтобы клонировать метку, нажмите кнопку WRITE TAG (записатьметку) в главном меню.В новом интер- фейсе выберите запись,нажав кнопку SELECT DUMP (Выбратьдамп), и запишите ее в другую метку.
Послеуспешнойоперациичтенияприложениеотображаетданные, полученные из всех блоков, как показано на рис. 10.7.
Команды RAW для небрендированных или некоммерческих RFID-тегов
В предыдущих разделах мы использовали специфичные для постав- щика команды для управления коммерческими RFID-метками с по мощью Proxmark3. Но системы интернета вещей иногда используют небрендированные(безымянные)илинекоммерческиеметки.Вэтом случае вы можете использовать Proxmark3 для отправки пользова- тельских необработанных команд. Необработанные команды очень полезны,когдавыможетеполучитьструктурыкомандизтехническо- го описания метки, и эти команды еще не реализованы в Proxmark3.
Радио ближнего действия: взлом rFID 299
|
|
|
|
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 |
|
|
|
|
Рис.10.7.Клонирование метки RFID
Вместо этого вследующем примере чтобы использоватькомандуhf mf,как мыделали в предыдущих разделах,мы будем использовать не- обработанныекомандыдлячтениятегаMIFAREClassicразмером1КБ.
Идентификация карты и чтение ее спецификации
Сначала используйте команду hf search, чтобы убедиться, что карта находится в зоне действия считывателя:
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
proprietary non iso14443-4 card found, RATS not supported No chinese magic backdoor command detected
Prng detection: WEAK
Valid ISO14443A Tag Found - Quiting Search
Затем проверьте спецификацию карты, которую вы можете найти на сайте поставщика (https://www.nxp.com/docs/en/data-sheet/
MF1S50YYX_V1.pdf и https://www.nxp.com/docs/en/application-note/AN10833. pdf). Согласно спецификации, чтобы установить соединение с картой и выполнить операцию с памятью, мы должны следовать протоколу, показанному на рис. 10.8.
300 Глава 10
|
|
|
|
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 |
|
ния аутентифицированного соединения с меткой MIFARE. Перваяdf-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
команда, Request all или REQA, заставляет метку отвечать кодом, который включает размер UID метки.На этапе цикла предотвраще- ния коллизий считыватель запрашивает UID всех меток в рабочем поле, а на этапе выбора карты выбирает отдельную метку для даль- нейших транзакций. Затем считыватель указывает место в памяти метки для операции доступа к памяти и аутентифицируется с по мощью соответствующего ключа. Процесс аутентификации будет описан ниже, в разделе «Извлечение ключа сектора из перехвачен- ного трафика».
Отправка необработанных команд
Использование необработанных команд подразумевает, что вы бу- дете вручную отправлять каждый конкретный байт команды (или ее части), соответствующие данные команды и в конечном счете байты CRC для карт, требующих обнаружения ошибок. Например, команда Proxmark3 hf 14a raw позволяетотправлятькоманды ISO14443Aв мет- ку, совместимую с ISO14443A. Затем вы вводите необработанные команды в шестнадцатеричном формате после параметра -p.
Идентификация |
Общий запрос |
Цикл антиколлизии |
Получитьидентификатор |
Выбратькарту |
Аутентификация |
Трехпроходная аутентификация |
на указанном секторе |
Операции с памятью |
Некая конкретная операция |
Рис.10.8.Протокол аутентификации тегов MIFARE |
Радио ближнего действия: взлом rFID 301
|
|
|
|
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 |
|
ции карты. Эти коды операций соответствуют шагам протокола ау- тентификации, показанным на рис. 10.8.
Сначала используйте команду hf 14a raw с параметром -p. Затем отправьте команду request all, которой соответствует шестнадца- теричный код операции 26. Согласно спецификации этой команде требуется 7 бит, поэтому используйте параметр -b 7 для определения максимального количества используемых битов. Значение по умол- чанию – 8 бит.
proxmark3> hf 14a raw -p -b 7 26 received 2 bytes:
04 00
Устройство отвечает сообщением об успешном выполнении под названием ATQA со значением 0x4. Этот байт указывает, что размер UID составляет четыре байта. Вторая команда – Anti-collision (пре- дотвращение коллизий), которой соответствует шестнадцатеричный код операции 93 20:
proxmark3> hf 14a raw -p 93 20 received 5 bytes:
80 55 4B 6C F2
Устройство отвечает,сообщая свой UID 80 55 4b 6c.Также возвраща- ется байт,сгенерированный операцией XOR,выполненной над всеми предыдущими байтами.Теперь нам нужно отправить команду SELECT Card (Выбрать карту),которой соответствует шестнадцатеричный код операции 93 70, а за ним следует предыдущий ответ, который содер- жит UID тега:
proxmark3> hf 14a raw -p -c 93 70 80 55 4B 6C F2 received 3 bytes:
08 B6 DD
Наконец, вы готовы к аутентификации с использованием ключа сектора типа A (шестнадцатеричный код операции 60) и паролю по умолчанию для сектора 00:
proxmark3> hf 14a raw -p -c 60 00 received 4 bytes:
5C 06 32 57
Теперь можете продолжить другие операции с памятью, перечис- ленные в спецификации, например чтение блока. Предлагаем вам самостоятельно завершить это упражнение.
302 Глава 10