Този път главният герой е лошата водна карта на училището (карта за топла вода)
Проверих с MCT (Mifare Classic Tool), инсталиран на NFC телефона, водната карта наистина е от типа Mifare Classic 1k
Инструментите, използвани в тази пукнатина, са: компютър, ACR122U, мобилен телефон с NFC функция и водна карта
Преди да разбием, трябва да изградим съответна среда за компютъра и трябва да я инсталирате на компютъра. NET Farmwork 4 и Java, моля, изтеглете и инсталирайте го онлайн, а софтуерът, използван по-късно, зависи от тези две библиотеки за изпълнение.
След като инсталирате runtime, трябва да инсталирате драйвера за ACR122U (статията е приложена към софтуерния линк), а за да улесня последващата разработка, инсталирах и SDK.
След като инсталирате драйвера и SDK, свържете ACR122U към компютъра и устройството ще работи нормално. Сложихме водната карта и звънецът за ACR122U ще се включи и цветът на LED лампата ще се промени
Програмата, която проверява, че уязвимостите могат да бъдат използвани, е mfoc, а версията на mfoc за Windows се нарича mfocgui, но mfocgui е малко проблематичен за студенти, които са нови в RFID сигурността, затова този път директно използва програмата за обслужване на M1 карта (всъщност опростена версия на mfocgui).
След отваряне интерфейсът на програмата е много прост, с един бутон – да започнеш да се пука. Видял съм ACR122U си в списъка с четци на карти, така че просто натисни "start crack"
После изчакай програмата сама да разбие ключа.
Не отне много време да видя, че всички сектори са отбелязани и напукани.
След като пробиването е успешно, кореновата директория генерира dump файла на тази карта, размерът му е 1kb, и цялата карта се чете.
Въпреки това, mfoc първоначално работеше в Linux средата, а dump файлът, генериран от mfocgui, портнат за Windows, не може да се използва директно, затова е необходим fixdump (download fixdump), за да се поправи 1kb dump файлът в 4kb dump файл.
fixdump е командна операция и трябва да се инсталира с . Библиотеката за изпълнение на NET Farmwork 4, за да улесним работата на командите, копираме dump файла в директорията fixdump и отваряме cmd, за да го поправим. Командата е проста – просто "fixdump", а генерираният файл директно ще презапише изходния файл.
След като ремонтът приключи, отвори го с хексадецимален редактор като UltraEdit или WinHex и ще видиш данните от dump файла.
Виждате ли данните, които съм рамкирал в кутията на снимката по-горе? Това е контролният сегмент на сектора на картата, от който първите 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, за да изчислим и накрая да изчислим резултата, както е показано на фигурата по-долу.
Запиши данните в картата, сега е време да отидеш на тренировка с машини.
|