Домофонные ключи (Mifare Classic) в Mi band 4 NFC

Требования

  1. NFC карта/брелок/ключ должен быть Mifare Classic 13,56 МГц (если зашифрована, будем расшифровывать)
  2. Mi Band
  3. Знание командной строки линукс
  4. 2-4 часа времени.

Вариант точно работает на

  1. домофонах, которые читаю UID, формируют секретный ключ на его основое и пытаются аутентифицироваться к блоку 0 ключем keyA;
  2. домофонах без строгой проверки карт доступа на клоны (Mifare Zero/uid/cuid/fuid /ufuid).

Добавление ключей

Ми бенд умеет копировать карты доступа и создавать новые. Для записи каждой карты требует интернет (на сколько понимаю сервер дает добро на запись карт). Ми бенд эмулирует mifare карту (можно читать и писать как на обычную). В режиме клонирования mi band копирует UID, в режиме создания новой карты генерирует случайный.

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

Инструкции:

  1. Вариант 1. Добавление ключей и карт с 4pda
  2. Вариант 2. Добавление ключей и карта с 4pda

 

 

Если видим, что карта доступа зашифрована

Ми бенд отказывается клонировать карту.

Общая идея решения:

  1. Получить секретный ключ
  2. Скопировать всю карту куда-нибудь (забэкапить)
  3. Поменять секретный ключ на общеизвестный (я проверял только на FFFFFFFFFFFFFF) и переписать его на карте
  4. Склонировать карту в Mi Band
    1. Ми бенд считает все данные, в том числе скопирует UID. Но manufaturer данные в блоке 0 сектора 0 вставит свои.
  5. Вернуть секретные ключи (в карте и Mi Band) — перезаписать их.

Linux+Pn532+FTDI232

  1.  Коротко об идее: покупаются дешевые модули для ардуино для работы с NFC. 
    1. PN532 — плата для работы с NFC на 13,56 МГц. Переводится в режим UART
    2. FTDI232 подключается к компьютеру по USB и эмулирует COM порт. Не забываем при подключении плат сверить напряжение и выставить перемычками (например 5В). Соединяем VCC-VCC, GND-GND, RT-TX, TX-RX.
    3. В линуксе используется софт, который подбирает ключи keyA/keyB
  2. Запускаем в VirtualBox ubuntu 20.04 LTS, пробрасываем USB порт в виртуалку.
  3. RFID модуль PN532: как я домофонный ключ скопировал
    1. Только в начале нужно сделать
      $ sudo apt-get install libusb-dev dh-autoreconf
    2. Что еще:
      1. источник автора
      2. Можно обратить внимание на этот mfoc от vk496
      3. mfcuk часто вылетает с segfault
  4. Более стабильный подбор 
    1.  4pda
    2. Только опять же, рабочий репозиторий https://github.com/vk496/crypto1_bs
    3. Идея тулзы: используется ускоренный перебор на основе известных ключей на кате. На карте обычно есть общеизвестные ключи типа FF FF FF FF FF FF. Указываем на этот ключ и сектор, где такой ключ (т.е. тот ключ, который мы знаем).
      1. ./libnfc_crypto1_crack ffffffffffff 4 A 3 A
      2. В секторе 1 блоке 0 (сектор 1 * 4 + блок 0 = 4 блок) ключ keyA нам известен (т.е. он прочитался или через командную строк или через MCT) — ffffffffffff. Нужно подобрать ключ keyA для блока 3 (сектор 0 * 4 + блок 3 = 3 блок).

Как было в моем случае

У меня было два брелка от разных cyfral ccd-20. Ключ keyA подобрал: в одном случае mfoc, в другом libnfc_crypto1_crack. Дальше я брал MIFARE Classic Tool — MCT на телефоне с NFC чипом (например, дервний Samsung Galaxy S3). Создал файл с ключами и ввел в него найденные ключи. При чтении и записи нужно выбирать стандартный файл ключей и свой. Прочитал и сохранил брелки в файлы. Скопировал 4ую строку сектора 0. Поменял keyA на FFFFFFFFFFFF. Перезаписал сектор 0 блок 3 (там получается что-то вида FFFFFFFFFFFFFF078069FFFFFFFFFFFF — keyA подчеркнут). Склонировал брелок ми бендом. Дальше записал оригинально значение блока 3 сектора 0 в брелок и в ключ.

Кстати, чтобы не рисковать сильно своими брелками лучше записывать на болванку mifare zero c многократно перезаписываемым UID). Встречаются брелки, в которых права доступа не дают менять keyA. Права доступа это, часть где FF078069. MCT умеет дешифровать их. Если видите, что права не дают писать keyA  меняйте права на FF078069, иначе больше не удасться записать на болванку в этот блок.

Полезное

  1. 4pda.ru NFC
    1. Супер удобная тулза для андройда c NFC, чтобы не ковыряться в консоли: MIFARE Classic Tool — MCT —  4PDA google play  github
    2. Если на андройде нету NFC можно через OTG подключить: Внешний NFC MCT поддерживает такую работу.
  2. Захват криптоключей Mifare и копирование ключей домофонов IronLogic своими руками / Хабр nfc sniffer андройде — вместо подбора можно «прослушать» обмен домофона и брелка.
  3. https://github.com/Proxmark/proxmark3 https://github.com/pwpiwi/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *