Den här gången är huvudpersonen skolans fattiga vattenkort (varmvattenkort)
Med MCT (Mifare Classic Tool) installerad på NFC-telefonen är vattenkortet faktiskt av Mifare Classic 1k-typen
Verktygen som används i denna knäckning är: en dator, en ACR122U, en mobiltelefon med NFC-funktion och ett vattenkort
Innan vi knäcker måste vi bygga en motsvarande miljö för datorn, och du måste installera den på datorn. NET Farmwork 4 och Java, vänligen ladda ner och installera det online, och programvaran som används senare beror på dessa två runtime-bibliotek.
Efter att ha installerat runtimen måste du installera ACR122U drivrutinen (artikeln är bifogad till mjukvarulänken), och för att underlätta vidareutveckling installerade jag även SDK:n.
Efter att ha installerat drivrutinen och SDK:n, koppla ACR122U till datorn så fungerar enheten som vanligt. Sätt på vårt vattenkort och ACR122U summer ringer och färgen på LED-lampan ändras
Programmet för att verifiera att sårbarheter kan utnyttjas är mfoc, och Windows-versionen av mfoc kallas mfocgui, men mfocgui är lite besvärligt för studenter som är nya inom RFID-säkerhet, så den här gången används direkt M1-korttjänstprogrammet (egentligen en förenklad version av mfocgui).
Efter att ha öppnat är programgränssnittet mycket enkelt, med bara en knapp, nämligen att börja knäcka. Jag har sett min ACR122U i kortläsarlistan, så tryck bara på start cracking
Vänta sedan på att programmet ska knäcka nyckeln av sig själv.
Det tog inte lång tid att se att alla sektorer var avkryssade och spruckna.
Efter att knäckningen lyckats genererar rotkatalogen dumpfilen för detta kort, storleken är 1 kb och hela kortet läses.
Dock kördes mfoc ursprungligen i Linux-miljön, och dumpfilen som genererades av mfocgui och portades till Windows kan inte användas direkt, och ett reparationsverktyg fixdump (download fixdump) behövs för att reparera 1 kb dumpfilen till en 4 kb dumpfil.
fixdump är en kommandoradsoperation och måste installeras med . NET Farmwork 4 runtime-bibliotek, för att underlätta kommandooperationen kopierar vi dumpfilen till fixdump-katalogen och öppnar cmd för att reparera den. Kommandot är enkelt, bara "fixdump", och den genererade filen skriver direkt över källfilen.
När reparationen är klar, öppna den med en hexadecimal redigerare som UltraEdit eller WinHex och du kan se datan från dumpfilen.
Ser du datan jag ramade in i rutan på bilden ovan? Detta är kontrollsegmentet i kortsektorn, där de första 6 bytena och de sista 6 bytena av FFFFFFFFFFFFFF är lösenordet för denna sektor, och FF078069 i mitten är kontrollbiten.
Efter att ha känt till lösenordet importerade jag det i MCT:n och började läsa kortdatan.
Tack vare MCT:s funktion med datamarkering kan vi tydligt se att det finns två rader värdeblock i de fyra sektorerna, och det aktuella saldot på mitt kort är 32,31. Värdet på värdeblocket vänds två gånger och en gång, och lagras i den lägsta adressen. Om man ser det första värdeblocket, 0C9F, eftersom datordata lagras i omvänd ordning, är den verkliga datan 9F0C, vilket är 3231 i decimalordning. 60F3 i mittsektionen är omvänd, och 60F3:s omvända ordning är F360, vilket är 1111001101100000 när den är omvänd, och den är 0000110010011111 när den är omvänd, och den är 3231 när den ändras till decimal. Det sista stycket, liksom det första, tas inte och bevaras. 11 och EE i slutet är adresserna, som kan ignoreras så länge adresserna är konsekventa senare. Hittills har kortets data knäckts eftersom det inte har krävt någon kryptering, nu kommer jag att ändra kortets pengar till 999,99 för att prova, 999,99 yuan ska vara decimal 99999, hexadecimal är 01869F, omvänd ordning är 9F8601, de andra bitarna beräknas enligt samma princip, eller så kan vi använda MCT:s eget värdeblockberäkningsverktyg för att beräkna och slutligen beräkna resultatet som visas i figuren nedan.
Skriv in datan på kortet, nu är det dags att gå till maskinträningen.
|