Tokrat je glavni lik šolska kartica za revno vodo (karta tople vode)
Preveril sem z MCT (Mifare Classic Tool), nameščenim na NFC telefonu, je vodna kartica res tipa Mifare Classic 1k
Orodja, uporabljena v tej razpoki, so: računalnik, ACR122U, mobilni telefon z NFC funkcijo in vodna kartica
Pred razbijanjem moramo zgraditi ustrezno okolje za računalnik in ga namestiti nanj. NET Farmwork 4 in Java, prosimo, prenesite in namestite prek spleta, programska oprema, ki se uporablja kasneje, pa je odvisna od teh dveh knjižnic za izvajanje.
Po namestitvi runtime morate namestiti gonilnik za ACR122U (članek je priložen programski povezavi), in da bi olajšal nadaljnji razvoj, sem namestil tudi SDK.
Po namestitvi gonilnika in SDK-ja povežite ACR122U z računalnikom in naprava bo delovala normalno. Vklopili smo vodno kartico in ACR122U zvonec bo zazvonil ter barva LED diode se bo spremenila
Program za preverjanje, ali je ranljivosti mogoče izkoristiti, je mfoc, Windows različica mfocgui pa se imenuje mfocgui, vendar je mfocgui nekoliko problematičen za študente, ki so novi v RFID varnosti, zato tokrat neposredno uporablja program storitev M1 kartice (pravzaprav poenostavljeno različico mfocgui).
Po odprtju je programski vmesnik zelo preprost, z le enim gumbom, ki se začne lomiti. Videla sem svoj ACR122U na seznamu bralnikov kartic, zato samo pritisnite začni razpokati
Nato počakaj, da program sam razbije ključ.
Ni trajalo dolgo, da so videli, da so vsi sektorji pokvarjeni.
Ko je razbijanje uspešno, korenska mapa ustvari datoteko za izpis te kartice, velikosti 1 kb, in celotna kartica se prebere.
Vendar je mfoc sprva deloval v Linux okolju, datoteka za izpis, ustvarjena z mfocgui prenesena na Windows, pa ni mogoča biti neposredno uporabljena, zato je za popravilo 1kb datoteke za izpis v 4kb datoteko potreben fix dump (download fixeddump).
fixdump je operacija ukazne vrstice in jo je treba namestiti z . NET Farmwork 4 runtime knjižnica, da bi olajšali izvajanje ukazov, kopiramo datoteko dump v mapo fixdump in odpremo cmd za popravilo. Ukaz je preprost, samo "fixdump", in generirana datoteka bo neposredno prepisala izvorno datoteko.
Ko je popravilo končano, ga odprite s heksadecimalnim urejevalnikom, kot sta UltraEdit ali WinHex, in lahko vidite podatke datoteke za izpis.
Vidite podatke, ki sem jih uokviril v škatli na zgornji sliki? To je kontrolni segment sektorja kartice, katerega prvih 6 bajtov in zadnjih 6 bajtov FFFFFFFFFFF predstavlja geslo tega sektorja, FF078069 na sredini pa je kontrolni bit.
Ko sem poznal geslo, sem ga uvozil v MCT in začel brati podatke o kartici.
Zaradi funkcije MCT z označevanjem podatkov jasno vidimo, da sta v štirih sektorjih dve vrstici blokov vrednosti, trenutno stanje na moji kartici pa je 32,31. Vrednost bloka vrednosti se obrne dvakrat in enkrat obrne ter je shranjena na najnižjem naslovu. Če vidimo prvi blok vrednosti, 0C9F, ker so računalniški podatki shranjeni v obratnem vrstnem redu, so pravi podatki 9F0C, kar je 3231 v decimalnem vrstnem redu. 60F3 v srednjem delu je obrnjen, obrnjen vrstni red 60F3 je F360, kar je 1111001101100000, ko je obrnjeno, in 0000110010011111, ko je obrnjeno, ter 3231, ko je spremenjeno v decimalno. Zadnji odstavek, tako kot prvi, ni vzet in ohranjen. 11 in EE na koncu sta naslova, ki ju lahko ignoriramo, dokler so naslovi kasneje dosledni. Do tega trenutka so bili podatki kartice razbiti, ker ni bila šifrirana, zdaj bom spremenil vrednost kartice na 999,99, da poskusim, 999,99 juana naj bo decimalno 99999, šestnajstiško 01869F, obratni vrstni red rezultat je 9F8601, ostali biti se izračunajo po istem principu, ali pa uporabimo MCT-jevo orodje za izračun vrednostnih blokov in na koncu izračunamo rezultat, kot je prikazano na spodnji sliki.
Zapiši podatke na kartico, zdaj je čas za vadbo stroja.
|