Mifare classic tool инструкция на русском


Опубликовано вс, 12/12/2021 — 11:38 пользователем admin

Язык
Undefined

Mifare ClassicTool скачать

Mifare Classic Tool  — это низкоуровневая программа для чтения, записи и анализа NFC меток MIFARE® Classic. Она разработана для пользователей, которые хоть немного знакомы с технологией MIFARE® Classic. Программа предоставляет несколько функций для взаимодействия (и только с) MIFARE® Classic RFID-меток. Главная функция — перезапись секторов 0 и 1 в чипе Mifare, что позволяет создавать копии такиж же чипов.

Функции Mifare Classic Tool:

  • Чтение меток MIFARE Classic
  • Сохранение и редактирование данные меток
  • Запись в метки MIFARE Classic (по блокам)
  • Клонирование чипов MIFARE Classic
  • Запись дамп метки в другую метку
  • Запись UID чипов в файл (словарь).
  • Форматирование меток в заводское состояние
  • Декодирование и кодирование блоков значений MIFARE Classic
  • Декодирование и кодирование условий доступа MIFARE Classic
  • Сравнение дампов (Diff Tool)
  • Отображение общей информации тегов
  • Отображение данных тега как выделенное шестнадцатеричное.
  • Отображение данные тега как 7-битный US-ASCII
  • Отображение условий доступа MIFARE Classic в виде таблицы
  • Отображение блоков значений MIFARE Classic как целые числа
  • Вычисление BCC
  • Функция быстрого клонирования UID
  • Импорт / экспорт в разные типы файлов
  • Справка и информация в приложении (офлайн)
  • Открытый исходный код (GPLv3);)

ВАЖНЫЕ ЗАМЕТКИ

  • Этот инструмент предоставляет несколько функций для взаимодействия с классическими RFID-метками MIFARE Classic (и только с ними). Он разработан для пользователей, которые хоть немного знакомы с технологией MIFARE Classic. Вам также необходимо знать шестнадцатеричную систему счисления, потому что все данные вводятся и выводятся в шестнадцатеричной системе счисления.

  • Этот инструмент предоставляет очень простые функции. Нет таких наворотов, как сохранение URL-адреса в RFID-метке с красивым графическим пользовательским интерфейсом. Если вы хотите сохранить что-либо в теге, вы должны ввести необработанные шестнадцатеричные данные.

  • Это приложение не может взломать / взломать какие-либо ключи MIFARE Classic.

  • В этом приложении не будет возможности атак методом «брутфорса».

  • Будьте внимательны! Удаление этого приложения приведет к окончательному удалению всех файлов (дампов / ключей), сохраненных им.

  • Первый блок первого сектора исходного тега MIFARE Classic доступен только для чтения, т.е. не доступен для записи. Но есть специальные теги MIFARE Classic Zero, которые поддерживают запись в блок производителя с помощью простой команды записи. Это приложение может писать в такие метки и поэтому может создавать полностью правильные клоны. Для клонирования существуют два поколения чипов: первое поколение  Mifare Zero EV1 предназначено для работы только с настольными USB считывателями, типа ACR122u, Mifare Zero UID Magic Tag 2nd Gen имеет поддержку мобильных устройств на Android.

  • Купить чипы Mifare Zero UID Magic Tag 1st и 2nd Gen в форме стикеров, карт и брелков можно у нас в магазине.

Mifare Classic Tool скачать

ЗАГРУЗКИ

  • Скачать Mifare ClassicTool для Android
  • Скачать MIFARE Classic Tool (recovery Tool) для Windows

Обзор работы программы Mifare ClassicTool под Windows

Взлом проездных и банковских карт. Как создаются вечные проездные

Темная сторона

Всем привет!

Прежде чем приступить хотел бы предупредить, что за действия, описанные далее в статье, вы можете получить уголовный срок. Не стоит проделывать это, если вы не уверены на 100%, что всё пройдет гладко.

Итак, хочу сразу сказать, что касаться взлома банковских карт я не буду. Приложение, которое мы сегодня рассмотрим, позволяет работать и с проездными билетами, и с банковскими картами. Но мы остановимся подробнее только на проездных.

Но даже с ними всё просто не будет. Во-первых, найти в открытом доступе актуальную информацию по этой теме очень не просто. К тому же, система безопасности постоянно улучшается и не факт, что описанные способы окажутся рабочими. Придется додумывать и экспериментировать. Здесь я предоставлю все имеющиеся источники, которые смог найти.

Что нам понадобится:

  • смартфон с NFC или специальный ридер, который будет считывать вашу карту
  • карты MIfare Zero для записи

Программа, с которой мы сегодня будем работать, называется Mifare Classic Tools (скачать её можно даже в Play Market). Она предоставляет возможность для взаимодействия с Mifare Classic RFID-тегами. Также еще можно использовать MFClassic (скачать её можете в моем втором телеграм канале).

Функции и возможности:

• Чтение Mifare Classic тегов

• Сохранение и редактирование данных тегов.

• Запись в Mifare Classic тегов (блочным)

• Клон Mifare Classic

• Управление ключами

• Создание, редактирование и сохранение файлов ключей

• Decode & Encode Mifare Classic Value Blocks

• Decode & Encode Mifare Classic условия доступа

• Сравните отвалов (Diff Tool)

• Отображение общей информации тегов

• Отображение данных тегов, как 7-Bit US-ASCII

• Отображение карты Mifare Classic и условия доступа в виде таблицы

• Дисплей Mifare Classic Value блоков, как целое число

• In-App (в автономном режиме) помощь и информация

Что мне удалось найти

Сам я подобное делать не пробовал да и нет возможности, так как у меня нет подходящих проездных карт и NFC модуля. Ниже будет информация с других сайтов. Ну а так как статьи с подобным содержимым подчищаются, я решил на всякий случай скопировать текст статей сюда (источник я, конечно, укажу). Например, на habr было две статьи посвященные тому, как легко взламываются карты «Тройка» (Москва) и «Подорожник» (Санкт-Петербург). Сейчас они удалены.

Содержимое статьи

Спешу предупредить читателей: Данная статья написана только для ознакомления, и ни в коем случае не призывает заниматься подделкой проездных билетов, так как это противоречит статье 327 УК РФ. Автор не несет ответственности за любые неправомерные действия совершенные людьми с использованием информации из данной статьи.

Я обычная девушка, сравнительно недавно работающая в сфере ИТ, не имею знаний в хакинге и взломе. Но вдохновленная статьями на Хабре про взлом транспортных карт «Тройка» и «Подорожник» (которые уже не доступны, авторы Ammonia и antoo), я решила рассказать про свой собственный опыт взлома транспортных карт «Ситикарт», которые действуют в Нижнем Новгороде.

Сразу скажу, я не хакер и не взломщица, а простой фронт-энд разработчик, мои знания по работе с ПК, если отбросить знания во фронт-энд разработке, можно охарактеризовать, как «опытный пользователь».

Я не разрабатывала специальные приложения, как делали это авторы упомянутых статей, а покажу, как доступными средствами можно легко взламывать транспортные карты. Методы взлома известны давно (лет 5-7 точно).

Если бы я, как разработчик, использовала старые версии фреймворков с известными уязвимостями, мне бы давно оторвал работодатель голову, но на разработчиков транспортных систем это, по-моему, не распространяется. Возможно, это связано с низкой подкованностью самих разработчиков.

Но вернусь к взлому. Итак, обо всем по порядку.

Все описанные мною действия я проводила осенью прошлого года, но, насколько мне известно, все работает и сейчас.

Итак, у меня есть недорогой смартфон с NFC. Я в свое время покупала транспортные карты «Ситикард» (так получилось, что у меня их несколько – порой забывала карту то дома, то на работе и приходилось покупать новую).

Я скачала официальное приложение производителя карт Mifare NXP Taginfo и просканировала свою транспортную карту:

Оказалось, что карта основана на чипе Mifare Plus S, но что самое важное, работает она в режиме безопасности № 1. А это значит, что по сути это простая карта Mifare Classic, которая легко взламывается.

Я скачала в Google Play замечательное приложение Mifare Classic Tool и просканировала транспортную карту стандартными ключами:

Тут меня постигло разочарование – ни один из известных ключей не подошел. Соответственно, использовать взлом способом, как было описано в статье про «Подорожник», было не возможно.

«Постойте-ка» — подумала я, «но ведь можно попробовать способ, как описано в статье про взлом «Тройки».

Действительно, у «Ситикард» тоже есть приложение из Google Play, которое позволяет проверять баланс карты, а впоследствии прикрутили возможность и пополнять карту.

Я скачала и установила это приложение. Но теперь передо мной встала дилемма: ключи к карте зашиты или в самом приложении, или «прилетают» с сервера. Декомпиллировать Android-приложения достаточно просто, но я в этом не очень хорошо разбираюсь.

Наверняка, более или менее соображающий разработчик может это достаточно легко сделать. Я такими умениями не обладала и обратилась к брату, который занимается ремонтом домофонов, думала, у него есть знакомый программист, но он предложил более элегантное и простое решение.

Он к тому времени получил плату с Кикстартера, которая позволяет подсматривать протокол между ридером и картой. Оказывается, в домофонах стали использовать брелки, внутри которых зашит все тот же чип Mifare, и эта плата ему понадобилась для каких-то дел, связанных с этими брелками (я в подробности не вдавалась).

Итак, он взял свою плату, поместил ее к моему смартфону, который выступил в роли ридера, а в роли карты выступила собственно транспортная карта, и снял лог обмена данными между ридером и картой.

Дальше встал вопрос, что делать с полученным логом. Но непродолжительный поиск в Интернете привел к утилите под название crapto1gui. Ссылки приводить не будут, достаточно легко находится и так.

Скриншот утилиты привожу ниже (взято с одного из сайтов в интернете, так что данные там не реальные, которые мы использовали).

В общем, достаточно в эту утилиту вставить нужные куски лога и 6-байтный ключ мгновенно вычисляется. Я сама удивилась, как легко это делается, самое сложное было скопировать нужные части из лога и вставить в соответствующие поля программы.

Затем я открыла все тоже приложение Mifare Classic Tool (MCT), вставила в приложение полученный ключ и на этот раз мне отобразилось содержимое 0-го и 8-го секторов.

В нулевом секторе в основном были одни нули, а вот в восьмом были какие-то данные, из чего я сделала вывод, что данные по транспортной карте хранятся в 8-м секторе (как и в карте «Тройке» — неужели один и тот же разработчик?), а полученный ключ оказался ключом B (у сектора два ключа A и B).

Дальше, ради интереса, я с помощью опенсорсной утилиты libnfc и ридера бесконтактных карт получила и все остальные ключи от карты (подробнее об этом было написано в статье про «Подорожник» — я тоже использовала этот способ. Он также описан на сайте libnfc).

С помощью полученных ключей я попробовала прочитать содержимой другой транспортной карты. Оказалось, что ключ A совпадал, а ключ B – нет. Но с помощью упомянутой утилиты его тоже оказалось легко получить.

Дальше я принялась исследовать содержимое транспортной карты. 8-й сектор состоит из 4-х блоков по 16 байт. С помощью MCT стало понятно, что первый блок является т. н. Value-блоком. Первым делом пришла мысль, что в этом блоке и хранится баланс карты. С помощью MCT удалось его декодировать – он содержал число 2147483647. На баланс карты, будь он даже в копейках, это явно было не похоже.

Потом я совершила поездку по этой карте и обнаружила, прочитав содержимое сектора, что значение не поменялось, а вот содержимое других блоков изменилось. Из чего был сделан вывод, что баланс карты хранится в них.

Разбирать содержимое карты особого желания не было, ведь я хотела попробовать так называемую replay attack (это я уже потом узнала, как она правильно называется).

Утром перед поездкой в метро я сохранила содержимое восьмого сектора, приложила карту к турникету и отправилась на работу. Днем же, отправившись по делам, я с помощью MCT записала предыдущее состояние карты и попробовала проехать в метро… И у меня получилось!

Так я поняла, что таким образом можно делать «вечный проездной». Я решила немного побаловаться и записала содержимое сектора транспортной карты в домофонный брелок.

(вот такой же брелок я использовала для записи в него транспортной карты)

Я попробовала пройти через турникет, приложив брелок, но тут меня постигло разочарование – брелок, к моему удивлению, не сработал. Я подумала, что мою транспортную карту заблокировала (ведь брелок был ее клоном), но при прикладывании «оригинала» (транспортной карты) пройти через турникет удалось.

Я поговорила с братом, хотела узнать, что он думает по этому поводу, и он мне рассказал, что у каждой карты и брелка есть свой идентификационный номер. По всей видимости, мой «клон» был не полным, а содержимое в карте неким образом завязано на ее номер.

Но оказалось, что был выход и из этой ситуации: есть некоторые виды брелков, которые по виду точно такие же, но у них можно менять их номер (у обычных транспортных карт это сделать не получится). Более того, в MCT есть такая функция по перезаписи номера, поскольку он храниться в первом блоке нулевого сектора.

Правда, почему-то поменять номер с помощью MCT не получилось. Но получилось это сделать с помощью ридера и все того же libnfc.

На сей раз у меня получился полный клон транспортной карты в виде брелка, ведь даже номер совпадал. Я попробовала пройти через турникет по домофонному брелку, и это у меня легко получилось. В автобусе прикладывать брелок не рискнула, поскольку тетенька кондуктор могла бы очень удивиться, а вот «вечная» транспортная карта сработала тоже без проблем.

Содержимое статьи

RFID

Конечно же я начал с поиска в гугле и без особых усилий нашёл название данной — RFID (Radio Frequency IDentification) или в переводе на русский Радиочастотная Идентификация. Прочитав статью на википедии, я понял что метки (карты) делятся на 3 диапазона работы, Метки диапазона LF (125—134 кГц), Метки диапазона HF (13,56 МГц), Метки диапазона UHF (860—960 МГц). В общественном транспорте используются метки второго диапазона — HF.

Карты

Сами же карты выпускаются под именем торговой марки Mifare, которая объединяет несколько типов микросхем смарткарт, микросхемы считывателей и продукты на их основе.

На данный момент производятся 5 видов микросхем для карт:

Mifare Classic 1k, Mifare Classic 4k

Mifare Ultralight

Mifare Ultralight C

Mifare Plus

Mifare DESFire EV1

В нашем общественном транспорте используются первый и второй виды карт.

Социальная карта москвича сделана на основе Mifare 1k

Социальная карта студента сделана на основе Mifare 4k

Билет на несколько поездок на метрополитене сделан на основе Mifare Ultralight

1k и 4k означают объём памяти на карте 1 и 4 килобайт соответственно.

Так же у меня в наличии была социальная карта жителя московской области, которая отличалась от первой только названием и дизайном.

image
image
image
image

Практика

Естественно чтобы посмотреть данные записанные на карте и как то с ними поработать нужен был ридер для этих карт. В процессе поиска я наткнулся на модель под названием ACR122U. По цене он меня вполне устраивал, с доставкой с интернет-аукциона ebay вышло около 60 долларов.

Вот наконец 3 недели спустя я получил заветную посылку, в ней лежал сам ридер, две пустые белые карты Mifare 1k и диск с драйверами и дистрибутивом.

Собственно ридер

Я сразу же подключил его к ноутбуку, установил нужные драйвера, ридер определял карту, всё шло как надо. Теперь же у меня возник вопрос о том, как считать свою карту. Изначально я думал, что на диске будут все необходимые для этого программы и это будет проще простого, но оказалось не тут то было. Из того что было на диске, полезными, как бы это смешно не звучало, оказались только драйвера. Пришлось снова воспользоваться поиском.

Софт

После нескольких дней поиска я нашёл такой комплект средств разработки под названием libNFC. Немного изучив его я понял, что это именно то, что нужно. Одновременно с этим я наткнулся на блог одного человека по имени Александр darksimpson Симонов, который рассказывал о системе работы турникетов метрополитена, а также о данном проекте. Более того, он даже собрал все необходимые программы под винду, что было весьма удобно. Дальше я приступил к испытаниям. Но для начала расскажу о структуре карты.

Структура карты

Здесь я рассмотрю структуру карт Mifare 1k и 4k. Карта 1k разделена на 16 секторов, от 0 до 15. Нулевой сектор, это блок производителя, в котором записан индивидуальный серийный номер карты UID он прописывается на производстве и не поддаётся изменению. Остальные 15 секторов доступны для считывания/записи. Каждый сектор имеет два ключа вида A и B, а также LOCK-биты.

Комбинация последних даёт считывающему устройству информацию о том, разрешена ли запись/чтение и то с помощью какого вида ключей это можно сделать. В основном считывание происходит через ключи вида А, запись через ключи вида B. На пустых картах во всех секторах стоят ключи FFFFFFFFFFFF.Для 4k ситуация аналогичная, но вместо 16 секторов на ней 40. То есть чтобы считать содержимое карты на компьютер нужно знать ключи от всех 16 секторов, но так как на всех проездных билетах все ключи изменены, возникает логичный вопрос, как же узнать эти ключи? В этом мне помогла утилита MFCUK доработанная и собранная под винду другим блоггером под никнеймом Odinokij_kot. О работе этой программы вы можете прочитать в его статье

Пример работы MFCUK

Считывание карты

Для считывания карты мне понадобилась скачанная программа mfclassic_d.exe, найденные ключи для моей социальной карты жителя московской области и командная строка. В последней я указал путь к программе, файл с ключами от моей карты, вид ключей, запрос на считывание и имя файла в который запишется дамп карты. После нажатия заветной кнопки Enter пошёл процесс считывания, через пару секунд всё закончилось, о чем свидетельствовала надпись Done, 64 of 64 blocks read. Writing data to file: card.mfd… Done. После этого я попытался разобраться в тех данных, которые были записаны на карте, но меня это ни к чему не привело, так как в файле была лишь куча шестнадцатиричных чисел, единственное более менее понятными оказались паспортные данные записанные в одном из секторов. Запись карты производится аналогично, только нужно указать файл с ключами для той карты на которую мы записываем.

Пример работы mfclassic_d

Начало экспериментов. Тест номер №1

Сначала я считал карту до прохода через турникет автобуса, и после. Тоже самое я сделал с турникетом в метро. После сравнения дампов карты, я выяснил, что после прохода в автобусах, трамваях и троллейбусах изменяются только данные записанные в 4 секторе, остальные данные оставались теми же, в метрополитене менялись только данные 1 сектора. Отсюда вывод, метрошники используют 1 сектор, наземники 4.

Тест №2. Наземка

Вторым вопросом стояла возможность клонирования моей карты на одну из двух белых, которые шли в комплекте к ридеру. Указав в программе файл моей карты, а также ключи от пустой карты я начал процесс записи, времени ушло немного больше чем при считывании, примерно 4 секунды. В окне командной строки появилась надпись Done, 64 of 64 blocks written, что свидетельствовало об успешной записи на карту. После этого я отправился на Боевое крещение. Подошёл автобус, на остановке было 3 человека, я заходил последним, чтобы не создать очередь в случае непредвиденной ситуации. Итак, я подхожу к турникету, прикладываю только что записанную карточку, и о чудо, турникет показал срок действия моей социальной карты, заморгал зелёной лампой и дружелюбно пропустил меня в салон. Моему счастью не было предела. Позже я проверил карту на троллейбусах и трамваях, результат был тем же.

Тест №3. Метрополитен

Воодушевлённый успехами на наземном транспорте, я отправился в метро. Спустившись, я подошел к турникету, приложил ту же самую белую карту, на мониторе турникета высветилась надпись Действителен до: чч.мм.гг, после чего я спокойно прошел через турникет. Для меня, конечно, результат был ожидаем, но нотки сомнения всё равно присутствовали. Я был доволен как слон, в моей голове была мысль о безоговорочной победе над общественным транспортом города Москвы. Заехав в одно место, примерно через час мне снова пришлось спуститься в метро и тут меня ждал самый большой сюрприз. Приложив белую карту к турникету я увидел зловещую надпись Билет не исправен. Я приложил её ещё к паре турникетов, результат был тем же. Тогда я достал настоящую социальную карту и лишь с её помощью успешно прошёл через турникет. В метро я продолжал думать что же всё таки произошло. Выйдя на улицу пошёл на остановку, сел на автобус, приложил белую карту, она сработала. Странно, подумал я. Вернувшись домой я стал выяснять что же не так. Не найдя никакого логического объяснения я лёг спать. Следующим утром я спустился в метро, приложил свою оригинальную социальную карту и увидел ту самую пресловутую надпись Билет не исправен. После чего я проследовал в кассу за получением объяснения происходящего, где мне сказали что «возможно вы передали карту другому человеку, который по ней прошёл и это заметили. Из-за этого вашу карту занесли в СТОП-лист» Потом мне объяснили что нужно делать и куда ехать чтобы карту разблокировали. Через 2 недели по моему заявлению карту разблокировали и я продолжал по ней ездить.

image

СТОП-лист

Об этом самом листе в интернете не так много информации, всё что я о нём знаю, я услышал от людей не понаслышке знающих эту систему. В него заносятся серийные номера карт (UID) тех карт, которые ведут себя не корректно, а также например номера студенческих карт, владельцы которых были отчислены из университета. Данный СТОП-лист хранится в каждом турникете в метро и синхронизируется с общей базой примерно каждые 10 минут. Если вы прикладываете карту, с UID занесенным в этот лист, то турникет вас не пропустит, пусть даже срок действия карты ещё не закончился. Теперь объяснение того почему заблокировали мои карты. После того как я приложил белую карту, турникет отправил данные в базу для проверки, где сопоставляется UID и остальная информация о карте, срок действия и её номер (не UID). В ходе проверки база выясняет, что на данный UID нету выданной карты, она ищет настоящий UID по этим данным и после этого отправляет оба UID в СТОП-лист. То есть карты заблокировали из-за того, что серийный номер белой картой отличался от оригинального. Почему такого не произошло на наземном транспорте? Да потому что у всех наземных турникетов не существует общей базы данных, в которой могли бы сопоставляться данные, её нету из-за того что невозможно соединить все турникеты воедино. Таким образом турникет считывает только тип карты и срок её действия, не обращая внимания на UID, который в свою очередь может быть любым.

MIfare Zero

Остановиться в своих экспериментах я не мог, а в размышлениях так тем более. И вот меня посетила мысль, что если вдруг как то изменить UID на такой же как и у оригинальной карты. И вот после поисков в гугле я наткнулся на блог ещё одного человека по имени Андрей, который писал о способе клонирования Mifare карт. Оказалось что существуют неофициально выпускаемые карты под названием Mifare Zero. В этих самых картах блок производителя то бишь UID можно изменить на любой другой. Пообщавшись с Андреем я выяснил, что у него имеются данные карты, и что для экспериментов он готов продать мне одну из них. Мы договорились о встрече на одной из станций метро, где я и обзавёлся этой картой.

Изображение Mifare Zero из блога Андрея

Эксперимент №5. Возвращение в метро

Записав свою карту на карту Mifare Zero, с помощью утилиты mfsetuid_d.exe я поставил на неё UID своей социальной карты. Теперь это были две идентичные карты, которые отличались лишь рисунком, на одной он был, на другой нет. Спустившись в метро я успешно прошёл по данной карте, но радоваться было рано, надо было через некоторое время повторить проход, чтобы точно удостовериться в работоспособности карты и том, что её не заблокируют. Целую неделю я проходил через турникет по белой карте, всё было отлично, в СТОП-лист её не вносили. Успех!

Эксперимент №6

Следующим что я захотел испытать получится ли осуществить проход сразу нескольких людей, потому как по моей карте можно было пройти 1 раз в 7 минут. Взяв обе карты, мы с другом пошли в метро. Сначала прошёл я по оригинальной карте, затем друг по белой на соседнем турникете, пока что всё отлично, посидев в макдаке, мы поехали обратно, но к сожалению обе карты оказались заблокированными. Объяснение этому в том, что после моего прохода в базу пришли данные о моей карте, они проверились, всё сходится, следом прошел друг и данные снова верны. Но система увидела то, что по одной карте прошли 2 раза не выдержав 7 минутный интервал, такого быть не может, карта ведет себя не корректно и поэтому система её заблокировала. Вывод из этого такой, клонировать карту всё таки можно, но система защиты в метрополитене работает отлично и обойти её всё-таки наверное невозможно. Но пара задумок всё ещё оставалась.

Эксперимент №7

Предметом этого испытания стали карты студента. Однажды я предположил что если к примеру есть два студенческих проездных. Один из них продлен на данный месяц, второй нет. Так вот, если банально скопировать 1 сектор с продлённого проездного на непродлённый, то может что и выйдет?.. Начало месяца. Я не стал продлевать студенческую карту и взял на несколько часов продленную карту своей подруги, считал содержимое 1 сектора и записал на свою карту. После этого я отправился в метро со своей картой, приложив её я увидел что срок действия карты до конца текущего месяца. В результате я в течении всего дня ездил по данной карте, её не блокировали. Тут я снова подумал теперь точно победа, карта на блокируется и продлевать её можно с любого продленного студенческого, но как обычно не тут то было. Следующим утром карта была заблокирована. Видимо это случается потому, что в конце каждого дня база проверяет был ли действительно данный студенческий билет продлён на текущий месяц, в нашем случае нет, следовательно карту в СТОП-лист

Выводы

Система осуществления оплаты проезда в московском метрополитене создана с точным знанием всех открытий в сфере Mifare. Нет, конечно можно пройти по неоригинальному билету, но сделать это вы сможете всего несколько раз, после чего её заблокируют. Система СТОП-листа работает на должном уровне. Как говорится «бесплатный сыр только в мышеловке».

Ну и конечно же куда без нашего старого доброго Youtube. Роликов демонстрирующих работу программы Mifare Classic Tolls там тоже достаточно.

Так что, если кто-то хочет поэкспериментировать и поиграться — добро пожаловать. Как я и предупреждал, легко точно не будет, и найти полный и актуальный мануал по взлому карт вряд ли получится. Придется поработать ручками и пошевелить мозгами.

NFC метки

MIFARE Classic Tool — это приложение для смартфонов под управлением Андроид, которое позволяет заглянуть внутрь механизма взаимодействия по протоколу NFC с метками стандарта Mifare. Разработчиком указано, что приложением поддерживается только этот стандарт. Стоит отметить, что MIFARE Classic Tool распространяется по лицензии GPLv3, то есть оно бесплатно для использования и исходный код программы доступен для каждого. 

Возможности

Для использования данного приложения вам необходимо NFC метка с записанной на нее информацией. Основной функционал приложения заключается в следующем: чтение меток, запись меток, редактирование и анализ файла дампа, редактирование и добавление ключа. Доступны также дополнительные инструменты в виде калькуляторов различных систем счисления, перевод значений в разных кодировках и так далее. 

Интересной функцией является возможность клонирования Mifare метки. Отображение данных тегов по умолчанию выводится в HEX виде.

Особенности приложения

  • доступно для скачивания бесплатно;
  • поддерживаются все актуальные версии андроид;
  • позволяет считывать и записывать Mifare NFC метки;
  • приложение включает в себя инструменты по работе с дампами и криптографическими ключами;
  • вывод данных поддерживается в нескольких режимах;
  • Mifare Classic Tool обладает открытым исходным кодом, что дает возможность любому заинтересованному лицу внести свои модификации в приложение;
  • приложение обладает простым и удобным оформлением;
  • при возникновении затруднений с работой можно воспользоваться оффлайн разделом Помощи;
  • для использования приложения необходимы базовые знания в области протокола NFC и стандарта Mifare Classic Technology.

Бесплатная

Загрузок:
967

Размер:
1,1 Мб

Версия ОС:
2.2.4

Похожее

РуТрекер

Android 4.1

Бесплатно

Неофициальный мобильный клиент для использования популярного портала RuTracker. С его помощью можно скачивать torrent файлы, магнет ссылки и общаться на форуме.

Версия 2.1.1

TapTap

Android 6.0

Бесплатно

Магазин приложений для установки эксклюзивных игр. Утилита содержит аркады, раннеры, стратегии, РПГ, симуляторы, шутеры, гонки, пазлы, файтинги и многое другое.

Версия 2.6.1

ВК видео мастер

Android 4.4

Бесплатно

Приложение для скачивания видеозаписей из соцсети ВКонтакте. Утилита позволяет бесплатно сохранять ролики в высоком качестве со своей страницы или других сайтов.

Версия 1.14

SaveOff

Android 4.4

Бесплатно

Приложение для скачивания роликов из популярного видеохостинга TikTok. Утилита позволяет бесплатно сохранять файлы и просматривать через стандартный проигрыватель.

Версия 1.0.2

GetVideo

Android 5.0

Бесплатно

Приложение для скачивания видеороликов и музыки из YouTube и ВК. Есть возможность выбрать качество, формат, разрешение, размер и папку для сохранения файлов.

Версия 2.75

МТС Вторая память

Android 5.0

Бесплатно

Приложение представляет собой облачное хранилище для переноса медиафайлов и контактов. Утилита рассчитана на абонентов хорошо известного мобильного оператора.

Версия 1.7.2

Можете найти, например: PUBG Mobile

Update: Удалось скопировать, обзор обновлен.

В одном из своих обзоров (Atmega8A в корпусе TQFP-32 прошивка через Arduino ISP), я уже упоминал о сборке считывателя/эмулятора для контактных домофонных ключей по проекту clusterr’а.

Устройство получилось хорошим, и решив, не останавливаться на достигнутом, принялся изучать теорию по работе с бесконтактными ключами (далее RFID). В частности интересовала возможность, создание копии ключа или полной копии, так называемого magic key (копируется не только содержание, но и ID-устройства), просмотрев информация в интернете решил заказать данный набор.

Доставка и внешний вид

Товар пришел в обычном желтом пакете без пинов был обмотан воздушно-пузырьковой пленкой и в целом отлично упакован. Продавец предоставил отслеживаемый трек.

Состав лота:
— МодульPN532 NFC Чтение/Запись (3.3V-5V);
— S50 Белая карта;
— S50 Ключ карта.

Характеристики

На плате установлен чип NXP Pn532, который позволяет производить операции чтения и записи для Mifare Classic Card (13.56 МГц).

— Размер: 10.5см X 4.9см;
— Питание: 3.3V-5.0V;
— Интерфейсы: I2C, SPI, HSU(3.3V-5V совместимость);
— Кнопка Reset на плате;
— Шаг между пинами: 2.54 мм.

Подключение

Для подключения к компьютеру, лучше всего использовать HSU — High-speed UARTs и USB TTL основанный на чипе FT232RL, так же есть возможность подключения Pn532 NFC Module по SPI с Arduino и использовать последнюю, как USB TTL, более подробно можно прочитать по проекту mfocuino. К сожалению, у меня возникли проблемы с Cp2102, который я уже неоднократно упоминал в своих обзорах.

— Pn532 NFC Module TX -> FTDI TTL RX
— Pn532 NFC Module RX -> FTDI TTL TX
— Pn532 NFC Module VIN -> FTDI TTL VCC
— Pn532 NFC Module GND -> FTDI TTL GND

Установка и настройка программной части

Для работы с Mifare Classic существует свободная библиотека libnfc, которая содержит необходимый набор утилит для RFID. Установка поддерживается на множество популярных ОС, но я рекомендую использовать GNULinux и в частности DebianUbuntu.

Установка libnfc

Открываем Terminal, получаем права привилегированного пользователя (root) и устанавливаем необходимые пакеты.

sudo apt-get install autoconf libtool libpcsclite-dev libusb-dev git

Для удобства создадим папку nfc в домашней директории и перейдем в неё:

mkdir ~/nfc
cd ~/nfc

Получаем текущую версию из git-репозитория:

git clone https://github.com/nfc-tools/libnfc.git

Собираем libnfc из исходных кодов, которые были получены:


cd ./libnfc
autoreconf -vis
./configure --with-drivers=pn532_uart
make
sudo make install
sudo ldconfig

Установка mfoc

MFOC — это открытая реализация «offline nested» атаки от Nethemba.

Программа позволяет восстановить ключи аутентификации от MIFARE Classic card, только если известен один из ключей, кроме того список наиболее популярных ключей уже захаркодин в утилите, по которым будет идти проверка.

Получаем текущую версию из git-репозитория:

git clone https://github.com/nfc-tools/mfoc.git

cd ./mfoc
autoreconf -vis
./configure
sudo make

Установка mfcuk

MFCUK — это открытая реализация Darkside Attack. Данная утилита не требует знаний какого-либо из ключей.

Получаем текущую версию из git-репозитория:

git clone https://github.com/nfc-tools/mfcuk.git
cd ./mfcuk
autoreconf -vis
./configure
sudo make

Использование

Подключаем Pn532 NFC Module к USB TTL, а его в свою очередь к порту компьютера и прикладываем RFID ключ — пустой, который шел в комплекте.

Запускаем команду:

sudo nfc-list

В ответ получаем:

nfc-list use libnfc libnfc-1.7.1-89-g403650a
Connected to NFC device: Adafruit PN532 board via UART - PN532 v1.6 (0x07)
1 ISO14443A passive target(s) found:
    ATQA (SENS_RES): 00  04 
       UID (NFCID1): dc  b8  f9  2d 
      SAK (SEL_RES): 08

Пробуем получить dump карты через утилиту mfoc.


cd ./mfoc/src
mfoc -O dump.mfd

Получаем дамп карты в файл dump.mfd
Ключи Key A: ffffffffffff Found Key B: ffffffffffff

Вывод команды


./mfoc -O dump.rfd
Found Mifare Classic 1k tag
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
* UID size: single
* bit frame anticollision supported
       UID (NFCID1): dc  b8  f9  2d  
      SAK (SEL_RES): 08  
* Not compliant with ISO/IEC 14443-4
* Not compliant with ISO/IEC 18092

Fingerprinting based on MIFARE type Identification Procedure:
* MIFARE Classic 1K
* MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1
* SmartMX with MIFARE 1K emulation
Other possible matches based on ATQA & SAK values:

Try to authenticate to all sectors with default keys...
Symbols: '.' no key found, '/' A key found, '' B key found, 'x' both keys found
[Key: ffffffffffff] -> [xxxxxxxxxxxxxxxx]
[Key: a0a1a2a3a4a5] -> [xxxxxxxxxxxxxxxx]
[Key: d3f7d3f7d3f7] -> [xxxxxxxxxxxxxxxx]
[Key: 000000000000] -> [xxxxxxxxxxxxxxxx]
[Key: b0b1b2b3b4b5] -> [xxxxxxxxxxxxxxxx]
[Key: 4d3a99c351dd] -> [xxxxxxxxxxxxxxxx]
[Key: 1a982c7e459a] -> [xxxxxxxxxxxxxxxx]
[Key: aabbccddeeff] -> [xxxxxxxxxxxxxxxx]
[Key: 714c5c886e97] -> [xxxxxxxxxxxxxxxx]
[Key: 587ee5f9350f] -> [xxxxxxxxxxxxxxxx]
[Key: a0478cc39091] -> [xxxxxxxxxxxxxxxx]
[Key: 533cb6c723f6] -> [xxxxxxxxxxxxxxxx]
[Key: 8fd0a4f256e9] -> [xxxxxxxxxxxxxxxx]

Sector 00 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 01 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 02 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 03 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 04 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 05 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 06 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 07 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 08 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 09 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 10 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 11 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 12 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 13 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 14 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 15 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff

We have all sectors encrypted with the default keys..

Auth with all sectors succeeded, dumping keys to a file!
Block 63, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 62, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 61, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 60, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 59, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 58, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 57, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 56, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 55, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 54, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 53, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 52, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 51, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 50, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 49, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 48, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 47, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 46, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 45, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 44, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 43, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 42, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 41, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 40, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 39, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 38, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 37, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 36, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 35, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 34, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 33, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 32, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 31, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 30, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 29, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 28, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 27, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 26, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 25, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 24, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 23, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 22, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 21, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 20, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 19, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 18, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 17, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 16, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 15, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 14, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 13, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 12, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 11, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 10, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 09, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 08, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 07, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 06, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 05, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 04, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 03, type A, key ffffffffffff :00  00  00  00  00  00  ff  07  80  69  ff  ff  ff  ff  ff  ff  
Block 02, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 01, type A, key ffffffffffff :00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  
Block 00, type A, key ffffffffffff :dc  b8  f9  2d  b0  08  04  00  01  09  67  1b  75  49  46  1d

Убираем пустой RFID и прикладываем домофонный, выполняем команду:

./mfoc -O domofon_dump.rfd

Не получилось со стандартными ключами No sector encrypted with the default key has been found, exiting…

Если нам известен один из ключей, то можно воспользоваться параметром -k key

Вывод команды

./mfoc -O domofon_dump.rfd
Found Mifare Classic 1k tag
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
* UID size: single
* bit frame anticollision supported
       UID (NFCID1): f7  b2  d9  b9  
      SAK (SEL_RES): 08  
* Not compliant with ISO/IEC 14443-4
* Not compliant with ISO/IEC 18092

Fingerprinting based on MIFARE type Identification Procedure:
* MIFARE Classic 1K
* MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1
* SmartMX with MIFARE 1K emulation
Other possible matches based on ATQA & SAK values:

Try to authenticate to all sectors with default keys...
Symbols: '.' no key found, '/' A key found, '' B key found, 'x' both keys found
[Key: ffffffffffff] -> [................]
[Key: a0a1a2a3a4a5] -> [................]
[Key: d3f7d3f7d3f7] -> [................]
[Key: 000000000000] -> [................]
[Key: b0b1b2b3b4b5] -> [................]
[Key: 4d3a99c351dd] -> [................]
[Key: 1a982c7e459a] -> [................]
[Key: aabbccddeeff] -> [................]
[Key: 714c5c886e97] -> [................]
[Key: 587ee5f9350f] -> [................]
[Key: a0478cc39091] -> [................]
[Key: 533cb6c723f6] -> [................]
[Key: 8fd0a4f256e9] -> [................]

Sector 00 - Unknown Key A               Unknown Key B
Sector 01 - Unknown Key A               Unknown Key B
Sector 02 - Unknown Key A               Unknown Key B
Sector 03 - Unknown Key A               Unknown Key B
Sector 04 - Unknown Key A               Unknown Key B
Sector 05 - Unknown Key A               Unknown Key B
Sector 06 - Unknown Key A               Unknown Key B
Sector 07 - Unknown Key A               Unknown Key B
Sector 08 - Unknown Key A               Unknown Key B
Sector 09 - Unknown Key A               Unknown Key B
Sector 10 - Unknown Key A               Unknown Key B
Sector 11 - Unknown Key A               Unknown Key B
Sector 12 - Unknown Key A               Unknown Key B
Sector 13 - Unknown Key A               Unknown Key B
Sector 14 - Unknown Key A               Unknown Key B
Sector 15 - Unknown Key A               Unknown Key B
mfoc: ERROR: 

No sector encrypted with the default key has been found, exiting..

Попробуем осуществить взлом через mfcuk.
Переходим в директорию

cd ~/nfc/mfcuk/src
mfcuk -C -R 0 -s 250 -S 250

Неудача
ERROR: mfcuk_key_recovery_block() (error code=0x03)
ERROR: mfcuk_key_recovery_block() (error code=0x03)
ERROR: mfcuk_key_recovery_block() (error code=0x03)

Вывод команды

libnfc - 1.7.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, zveriu@gmail.com, http://andreicostin.com


INFO: Connected to NFC reader: pn532_uart:/dev/ttyUSB0


VERIFY:
        Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
        Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER:  0ERROR: mfcuk_key_recovery_block() (error code=0x03)
ERROR: mfcuk_key_recovery_block() (error code=0x03)
ERROR: mfcuk_key_recovery_block() (error code=0x03)

Оставлял на сутки, ошибка циклически повторяется, при этом если запустить с ключём -v 3 процесс идет.

Ответ в интернете, я так и не нашел, перепробовал разные версии libnfc и mfcuk, оставлял вопросы разработчикам и пытался использовать специализированные дистрибутивы, типа kali linux, пытался взломать пустую карту, та же самая ошибка, результат одинаковый.

В одной из статей упоминается о успешном взломе с ACR122U reader libnfc-1.5.1 и mfcuk r65, но у меня сейчас нет такого устройства.

Решение проблемы

Как оказалось, существуют ‘weaker’ ключи, а в mfcuk не существует логики по данному типу. Огромное спасибо пользователю Stewart8 и его сообщению, где он описал проблему и пути её решения.

Для удобства я выкладываю отредактированные файлы crapto1.c и mfcuk.c, которые необходимо подменить в папке mfcuk/src и собрать утилиту заново.

Запускаем mfcuk

./mfcuk -C -R 0:A -s 250 -S 250

И ждем пока maxhii=00ffffff и maxloi=00ffffff начнут повторяться:

Вывод mfcuk

mfcuk — 0.3.8
Mifare Classic DarkSide Key Recovery Tool — 0.3
by Andrei Costin, zveriu@gmail.com, andreicostin.com

INFO: Connected to NFC reader: pn532_uart:/dev/ttyUSB0
VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0

254592 candidates found, nonce 78882a2f
maxhi=3 maxhii=0030b0c5 maxlo=3 maxloi=00080e51
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
44928 candidates found, nonce 5578882a
maxhi=3 maxhii=000bee31 maxlo=3 maxloi=00080e51
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
354816 candidates found, nonce 5578882a
maxhi=4 maxhii=00895568 maxlo=3 maxloi=0000a513
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
153600 candidates found, nonce 688df49b
maxhi=4 maxhii=0030028f maxlo=4 maxloi=0016ef51
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
49152 candidates found, nonce a2701b19
maxhi=4 maxhii=0030028f maxlo=4 maxloi=0016ef51
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
59136 candidates found, nonce 02aa92c0
maxhi=5 maxhii=00ffffff maxlo=5 maxloi=00ffffff
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
206080 candidates found, nonce 32a03931
maxhi=6 maxhii=00ffffff maxlo=6 maxloi=00ffffff
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
40256 candidates found, nonce 78882a2f
maxhi=7 maxhii=00ffffff maxlo=7 maxloi=00ffffff
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
349440 candidates found, nonce a2701b19
maxhi=8 maxhii=00ffffff maxlo=8 maxloi=00ffffff
mfcuk: ERROR: mfcuk_key_recovery_block() (error code=0x03)
1344 candidates found, nonce 688df49b
maxhi=9 maxhii=00ffffff maxlo=9 maxloi=00ffffff

Обычно maxhi, maxlo не превышают в этот момент 5-6. На ошибки error code=0x03 не обращаем внимание.

Далее получаем ключ:ffffffffffff
maxhi=5 maxhii=00ffffff maxlo=5 maxloi=00ffffff

Запускам mfoc:

mfoc -O dump.mfd -k ffffffffffff

-k ffffffffffff (ключ, который был получен через mfcuk)

В конце должны получить сообщение:

We have all sectors encrypted with the default keys..

Auth with all sectors succeeded, dumping keys to a file!

Мы получили полный дамп, домофонного ключа, теперь запишем его в пустой ключ.

Делаем дамп пустого ключа:

mfoc -O blank_dump.mfd

И используя утилиту nfc-mfclassic (идет в комплекте с libnfc) записываем дамп в пустой ключ:

nfc-mfclassic w A  ./blank_dump.mfd ./dump.mfd 

NFC reader: Adafruit PN532 board via UART opened
Found MIFARE Classic card:
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
       UID (NFCID1): dc  b8  f9  2d  
      SAK (SEL_RES): 08  
Guessing size: seems to be a 1024-byte card
Writing 64 blocks |...............................................................|
Done, 63 of 64 blocks written.

Если у вашей болванки Changeable UID или unlocked, т.е. у которой, можно изменить идентификатор и сделать полный дубликат, то запустив:

nfc-mfclassic W a  ./blank_dump.mfd ./dump.mfd

и получим magic key.

Можно скопировать полученные ключи в любой RFID Emulator на том же Android и использовать свой телефон, как ключ.

Заключение

Как итог, я получил большой опыт в работе с RFID,

но к сожалению создать копию без знания одного из ключей в данный момент не представляется мне возможным

благодаря Stewart8 удалось сделать копию. Всем спасибо и я очень счастлив!

Ссылки

Страница проекта nfc-tools на GitHub
ACR122U, mfcuk, and mfoc: Cracking MIFARE Classic on Arch Linux
Can’t recover keys from ‘weaker’ cards
Исправленные файлы mfcuk

Как работает ключ mifare и как его скопировать.

Передовая технология MIFARE разрабатывалась специалистами для обеспечения безопасного доступа во многих сферах человеческой деятельности. Главные критерии ключей – конфиденциальность и безопасность гарантируются благодаря использованию особых алгоритмов сокрытия данных.

Системы идентификации RFID Mifare получили широкое распространение в системах платежей, на режимных объектах и в домофонах с криптографической защитой. Самыми часто встречающимися вариантами систем считаются MF Classic и Plus.

Содержание

  1. Основные характеристики
  2. Как работает
  3. Копирование идентификатора
  4. Процесс копирования
  5. Как программируют брелоки
  6. Можно ли взломать кодировку и каким образом?
  7. Как взломать?
  8. Выводы

Основные характеристики

Изготовление ключей основывается на использовании главных критериев моделей бесконтактных карт ISO 14443. Этот стандарт позволяет использовать ключ вместе с остальными технологиями доступа.

Сейчас в банковские карты массово внедряют технологию MF-идентифицирования. Также во многих современных телефонах есть встроенная программа NFC, позволяющая осуществлять беспроводную передачу данных на небольшом радиусе.

Брелок Mifare и ключ-карты Mifare – крайне удобные устройства с возможностью бесконтактного распознавания. Они характеризуются следующими преимуществами:

  • Для них не нужны отдельные источники питания, которые требовали бы постоянной замены.
  • Не нужно контактировать со считывающим устройством, процесс осуществляется на расстоянии до 10 см.
  • Данные ключа считываются быстрее, чем за секунду.

Брелок Mifare

Разновидность брелка Mifare

Как работает

Каждый ключ Mifare оснащен индивидуальным номером идентификации, памятью с возможностью перезаписывания. Идентификационный номер не нуждается в защите и не является секретным. В некоторых случаях указывается на брелоке или карте. Доступ к памяти ключа надежно защищен.

Считывание данных из карты памяти и запись информации на нее осуществляется исключительно при наличии специальных кодов доступа. Данные, которые передаются между ключом и считывателем зашифрованы. Считыватели одновременно распознают как UID-код, так и информацию, расположенную в зашифрованной памяти. Недорогие системы доступа не обладают такой возможностью и считывают только UID.

UID – это не секретный идентификатор, поэтому сделать дубликат ключа не составит труда. Нужно лишь переписать данные UID, которые обеспечивают доступ в данное место. Дорогие считывающие системы поддерживают работу с двумя способами идентификации одновременно – с памятью и UID, поэтому копирование Mifare, взлом или кража данных в таких системах становится практически невозможной задачей.

Копирование идентификатора

Самые простые системы Mifare можно взломать, сделав дубликаты ключей. SMKey отлично подойдет для такой цели. Копирование ключей Mifare происходит следующим образом:

  • Копировальщик делает дубликаты меток с закрытыми отделами.
  • Полученные данные после используются для переноса на заготовки под ключ, заменяющие оригинальные брелоки.

Процесс копирования

Изначально на основании всей информации из считывателя рассчитывается криптоключ. Mifare-ключи не нужно подбирать, поэтому процесс осуществляется гораздо быстрее чем обычно. При помощи программы производится копирование основных меток MF Classic 1K и Ultralight. Частота выполнения процедуры составляет 13,56 МГц.

Метки MF Classic копируются, после чего программа-дубликатор брелоков от домофона Mifare записывает все полученные данные на заготовленный брелок. MF Zero и MF OTP считаются самыми популярными моделями для заготовок. Они позволяют однократно записать UID, благодаря чему можно обходить фильтры систем считывание идентификационных данных Iron Logiс. Дублированные метки Ultralight переписываются на заготовки типа MF UL.

SMKey – копировальщик информации с электронных ключей торговой марки Mifare, владеющий встроенной картой памяти, рассчитанной на 100 ячеек. При помощи него возможно считывать и записывать данные с различных ключей, осуществляя копирование карт Mifare.

Вся дублированная база данных может храниться на пользовательском компьютере с целью создания следующих дубликатов ключей. Это делается при помощи особой программы iKeyBase, работающей под основными операционными системами.

На видео: Как работать с SMKey

Как программируют брелоки

Специальное оборудование под названием программатор Mifare карт позволяет легко программировать брелоки для работы с системами доступа на основе криптоключей MF.

Важно! Понадобится не только программатор, но и готовая запрограммированная карта объекта.

Чтобы осуществить простой процесс программирования брелока, нужно сделать следующие действия:

  1. К оборудованию нужно поднести готовую карту объекта, чтобы он смог считать и запомнить все необходимые данные.
  2. Далее подносится заготовка ключа, которую нужно запрограммировать.
  3. Информация с устройства тут же переписывается на брелок.

Важно! Без данных, расположенных на ключ-карте невозможно запрограммировать новый объект, сделав из него ключ от домофона.

На видео: Копирование MIFARE на TMD 5s, инструкция дубликатора домофонных ключей

Можно ли взломать кодировку и каким образом?

Процесс взлома Мифайр карты займет немало времени и сил. Однако сделать это возможно. Для примера возьмем использование считывателя бесконтактных карт RD-03AB, обеспеченного специальным программным обеспечением.

Для взлома часто используют три основных программы:

  1. Mfoc производит взлом только при условии наличия хотя бы одного известного криптоключа.
  2. Mfcuk взламывает ключи Мифайр при помощи накопления информации Random генератора при помощи четырехбитных ответов процесса активации данных.
  3. Mfks применяется с целью восстановления ключей Мифайр на считывающих устройствах нового поколения.

Как взломать?

Для получения доступа к криптоключам необходим считыватель бесконтактных карт RD-03AB, а также готовая карта доступа. Чтобы подключить считывающее устройство к пользовательскому компьютеру, нужно использовать один из имеющихся портов: USB или COM.

Для программирования единственного криптоключа уходит до 30 минут. По окончании систему можно остановить и начать работу с другой программой – Mfoc.

Внимание! Эта программа выполняет алгоритмы гораздо быстрее, поэтому перед взломом Mifare ключей стоит удостовериться в возможности изъятия данных с карты-идентификатора.

Для чего нужно сделать следующие действия:

  • Запустить программу Mfks, применить опцию «verbose_level 2», после чего нужно подождать в течение 40 минут. Если процесс не увенчался успехом, то его стоит прекратить.
  • Программа Mfcuk запускается с этой же опцией, после чего длительное время ожидаются результаты. Скорость накопления данных статистики может меняться и составить до нескольких дней.

Обе программы могут взломать огромное количество криптоключей, однако в некоторых случаях их бывает недостаточно – идентификаторы просто не поддаются взлому и дублированию.

На видео: Клонирование Mifare карт с помощью Nfc модуля ACR122U

Выводы

Использование ключей Mifare повысило уровень безопасности на множестве объектов, таких как закрытые предприятия, строения жилого сектора, в домофонах которых технология Mifare активно используется уже долгое время.

Даже несмотря на высокий уровень безопасности существуют способы ее обхода. При выполнении взлома и дублирования ключей нужно помнить, что копия ключа от домофона не может использоваться в корыстных целях.

Вам будет полезно узнать – дубликатор домофонных ключей.

Понравилась статья? Поделить с друзьями:
  • Miele w1 selection active инструкция
  • Miele w1 excellence active инструкция
  • Miele w classic инструкция по применению на русском
  • Miele t1 classic сушильная машина инструкция
  • Miele steamfinish eco t1 инструкция