Взлом ключей Mifare или Мой вариант MFCUK, собранный под винду.
odinokij_kot — 20.12.2013 Раз пошла такая пьянка у Дарка, выкладываю собранную мною версию mfcuk с исправленными ошибками работы с ридером. http://ifolder.ru/28194416 пароль на архив: odinokij_kotОчень хотелось это сделать в складчину, и написfть цикл статей на хабре, но год назад многоуважаемые комрады (dark_simpson и dlinyj) проигнорировали моё предложение.
В оригинале mfcuk была ошибка работы с ридером, из-за которой неправильно проходила первоначальная верификация ключей и программа начинала атаковать все ключи на карте, даже заранее известные. В моей сборке это дело было исправлено. Пытался связаться с автором mfcuk, чтоб патч добавили в репозитарий, но безрезультатно.
Процитирую собственноручно написанную редмишку для него и станет понятно как и что пользовать:
Утилита MFCUK.exe предназначена для восстановления забытых или утерянных ключей доступа к секторам бесконтактных смарт-карт семейства Mifare Classic. При восстановлении используется атака, описанная в статье "THE DARK SIDE OF SECURITY BYOBSCURITY" http://eprint.iacr.org/2009/137.pdf
Для работы данной утилиты необходим считыватель бесконтактных смарт-карт ACS ACR-122U (подойдёт как в оригинальном исполнении, так и в OEM исполнении для проекта TouchTag). Так же необходим ПК или ноутбук с производительным процессором для минимизации задержек, нетбуки для использования данной утилиты не подходят. При недостаточной производительности процессора утилита будет функционировать, но ключи находиться не будут. В таком случае рекомендуется сменить ПК на более мощный.
Результатом работы программы является файл, имеющий структуру, аналогичную структуре адресного пространства семейства смарт-карт Mifare Classic. При этом все найденные ключи будут записаны в файл по тем же адресам, что и на карте.
Внимание! В выходном файле содержатся только восстановленные ключи! Считывание битов доступа и данных блоков не производится, поэтому не пытайтесь записать полученный дамп сразу на карту, она будет безвозвратно испорчена.
Данный формат входных и выходных файлов полностью совместим с форматами дампов утилиты MFCUK.exe проекта libnfc. http://www.libnfc.org По этому для чтения содержимого блоков данных и битов доступа смарт-карты можно использовать данную утилиту.
Ключи запуска утилиты:
-i mifare.mfd - имя файла, из которого будут загружены ключи, для дальнейшей проверки.
-o mifare.mfd - имя файла, в который будут записаны результаты восстановления.
-V сектор[:A/B[:ключ]]- проверить ключи для сектора с указанным номером, если указан сектор -1, то проверка проводится для
всех секторов.
Если после номера сектора через двоеточие указать тип ключа (A/B), то будет проверен только указанный
тип ключей. Далее через двоеточие можно указать вручную полный 12-ти значный hex ключ для проверки,
при этом проверяться будет только указанный ключ.
-R сектор[:A/B] - восстановить ключи для сектора с указанным номером, если указан сектор -1, то проверяются все сектора.
Если после номера сектора через двоеточие указать тип ключа (A/B), то будет восстанавливаться только
указанный тип ключей.
-M тип_карты - принудительно задать тип смарт-карты.
8 - Mifare Classic 1K,
24 - Mifare Classic 4K,
32 - Mifare DESFire.
-D - при проверке ключей первоначально использовать список часто используемых ключей по умолчанию.
Данный список содержит в себе следующие ключи:
000000000000
ffffffffffff
a0a1a2a3a4a5
b0b1b2b3b4b5
4d3a99c351dd
1a982c7e459a
d3f7d3f7d3f7
aabbccddeeff
-d ключ - добавление дополнительного полного 12-ти значного hex ключа в таблицу используемых по умолчанию
ключей в текущем запуске утилиты. Для добавления нескольких ключей - используйте данную опцию
необходимое число раз.
-v уровень - установка уровня детализации процесса работы программы.
При установке уровня 1 дополнительно выводится на экран матрица ключей и состояний.
При установке уровня 2 дополнительно к информации уровня 1 выводятся сообщения об ошибках авторизации.
При установке уровня 3 дополнительно к информации уровня 2 выводится детальная информация в процессе
восстановления ключей.
Примеры применения утилиты:
MFCUK.exe -o out_card.mfd -V -1 -R -1 -D -v 1
Производится проверка всех ключей карты с использованием таблицы часто используемых ключей, последующее восстановление
необнаруженных ключей и сохранения результатов в файл out_card.mfd. При этом на экран выводится матрица ключей и состояний.
MFCUK.exe -i card.mfd -o out_card.mfd -V -1 -R -1 -D -v 1
Производится загрузка ранее сохранённых ключей из файла card.mfd, проверка всех ключей карты с использованием таблицы часто
используемых ключей, и загруженных ключей из файла, последующее восстановление необнаруженных ключей и сохранения результатов
в файл out_card.mfd. При этом на экран выводится матрица ключей и состояний.
Для последующего снятия полного дампа карты можно использовать утилиту nfc-mftool.exe из проекта libnfc, указав ей в качестве
файла с ключами полученный при работе файл out_card.mfd
nfc-mftool.exe r a out_card.mfd out_card.mfd
В результате ключи будут загружены из файла out_card.mfd и в него же впоследствии будет прочитано содержимое секторов смарт-карты
и битов безопасности, а ключи доступа останутся в файла даже если их невозможно считать с карты.
Из опыта использования утилиты могу отметить, что не на всех картах удаётся восстановить ключи, попадались карты, который ни в какую не поддавались данной атаке. Если первый ключ карты долго не восстанавливается - запускам программу с ключом -v 3 и наблюдаем за тем, как изменяются значения "diff Nt" и "auths". На ломабельной карточке "diff Nt" либо не увеличивается, либо увеличивается очень медленно, а на невскрываемых "diff Nt" обычно равен "auths" и увеличивается вместе с ним.
Ну и на последок хочу напомнить - подделка проездных билетов преследуется по закону!