На этот раз главный герой — карта с плохой водой школы (карта горячей воды)
Проверяя с помощью MCT (Mifare Classic Tool), установленного на NFC-телефоне, водяная карта действительно относится к типу Mifare Classic 1k
Инструменты, используемые в этом вскрытии: компьютер, ACR122U, мобильный телефон с функцией NFC и водяная карта
Перед взломам нужно создать соответствующую среду для компьютера, и установить её на компьютер. NET Farmwork 4 и Java, пожалуйста, скачайте и установите онлайн, а программное обеспечение, используемое позже, зависит от этих двух библиотек во время выполнения.
После установки среды выполнения нужно установить драйвер ACR122U (статья приложена к ссылке на программное обеспечение), а для дальнейшей разработки я также установил SDK.
После установки драйвера и SDK подключите ACR122U к компьютеру, и устройство заработает нормально. Если включить водную карту, сработает ACR122U зуммер, и цвет светодиода изменится.
Программа для проверки уязвимостей — это mfoc, а версия mfoc для Windows называется mfocgui, но mfocgui немного проблематична для студентов, новичков в RFID-безопасности, поэтому на этот раз она напрямую использует сервисную программу M1 (на самом деле упрощённую версию mfocgui).
После открытия интерфейс программы очень прост, с одной кнопкой — начать трещины. Я видел свой ACR122U в списке считывателей карт, так что просто нажмите «начать взломывать»
Потом ждите, пока программа сама взломает ключ.
Вскоре стало ясно, что все сектора отмечены и треснули.
После успешного взлома корневой каталог генерирует дамп-файл этой карты, размер которого составляет 1kb, и вся карта считывается.
Однако mfoc изначально работал в среде Linux, и файл дампа, сгенерированный mfocgui, портированный на Windows, нельзя использовать напрямую, поэтому для восстановления файла дампа 1 КБ в файл 4 КБ требуется инструмент для исправления (fixdump) (download fixdump).
fixdump — это операция командной строки, и она должна быть установлена с помощью . Библиотека NET Farmwork 4 для облегчения командной работы мы копируем файл дампа в каталог fixdump и открываем cmd для его восстановления. Команда проста: просто "fixdump", и сгенерированный файл напрямую перезаписывает исходный файл.
После завершения восстановления откройте его с помощью шестнадцатеричного редактора, такого как UltraEdit или WinHex, и вы увидите данные дампа.
Видите данные, которые я оформил в рамку на фото выше? Это управляющий сегмент сектора карты, где первые 6 байт и последние 6 байт FFFFFFFFFF являются паролем этого сектора, а FF078069 посередине — управляющий бит.
Узнав пароль, я импортировал его в MCT и начал читать данные карты.
Благодаря функции MCT с выделением данных мы чётко видим, что в 4 секторах есть две строки блоков значений, а текущий баланс на моей карте составляет 32.31. Значение блока значения переворачивается дважды и один раз, и хранится в самом низком адресе. Видя первый блок значения 0C9F, поскольку данные компьютера хранятся в обратном порядке, вещественные данные равны 9F0C, что соответствует 3231 в десятичном порядке. 60F3 в средней части перевёрнута, а 60F3 — это F360, что 1111001101100000 при обратном порядке, 0000110010011111 при обратном порядке, и 3231 при переходе на десятичную. Последний абзац, как и первый, не берётся и не сохраняется. 11 и EE в конце — это адреса, которые можно игнорировать, если позже адреса будут согласованы. До этого момента данные карты были взломаны, потому что она не использовала никакого шифрования, теперь я изменю стоимость карты на 999.99, чтобы попробовать: 999.99 юаня должен быть десятичным — 99999, шестнадцатеричным — 01869F, результат обратного порядка — 9F8601, остальные биты рассчитаны по тому же принципу, или мы можем использовать собственный инструмент блока значений MCT для вычисления и в итоге вычислить результат, как показано на рисунке ниже.
Запишите данные в карту, а теперь пора идти на тренировку с машинами.
|