Tentokrát je hlavní postavou karta školy na chudou vodu (karta teplé vody)
Když jsem zkontroloval MCT (Mifare Classic Tool) nainstalovaný na NFC telefonu, vodní karta je skutečně typu Mifare Classic 1k
Nástroje použité v této prasklině jsou: počítač, ACR122U, mobilní telefon s funkcí NFC a vodní karta
Před crackováním musíme vytvořit odpovídající prostředí pro počítač a vy ho musíte nainstalovat přímo na počítač. NET Farmwork 4 a Java, prosím, stáhněte si je a nainstalujte online, a software použitý později závisí na těchto dvou runtime knihovnách.
Po instalaci runtime je potřeba nainstalovat ovladač ACR122U (článek je připojen k softwarovému odkazu) a abych usnadnil další vývoj, nainstaloval jsem také SDK.
Po instalaci ovladače a SDK připojte ACR122U k počítači a zařízení bude fungovat normálně. Nasadíme si vodní kartu a ACR122U zazvoní bzučák a změní se barva LED diody
Program pro ověření zneužití zranitelností je mfoc, a Windows verze mfocgui se nazývá mfocgui, ale mfocgui je trochu problematický pro studenty, kteří jsou v RFID bezpečnosti noví, takže tentokrát přímo používá program M1 card service (ve skutečnosti zjednodušenou verzi mfocgui).
Po otevření je programové rozhraní velmi jednoduché, s jediným tlačítkem, které slouží k začátku praskání. Viděl jsem své ACR122U v seznamu čteček karet, takže stačí stisknout tlačítko Start cracking
Pak počkejte, až program sám prolomí klíč.
Netrvalo dlouho a bylo vidět, že všechny sektory jsou rozbité a popraskané.
Po úspěšném prolomení kořenový adresář vygeneruje dump soubor této karty o velikosti 1kb a celá karta je přečtena.
Mfoc však původně běžel v prostředí Linux a soubor dump generovaný mfocgui portovaným na Windows nelze použít přímo, a k opravě 1kb dump souboru do 4kb dump souboru je potřeba fix dump (download fixdump).
fixdump je příkazová operace a musí být instalována pomocí . NET Farmwork 4 runtime knihovna, abychom usnadnili řízení příkazů, zkopírujeme dump soubor do adresáře fixdump a otevíráme příkaz pro jeho opravu. Příkaz je jednoduchý, stačí "fixdump" a vygenerovaný soubor přímo přepíše zdrojový soubor.
Po dokončení opravy jej otevřete pomocí hexadecimálního editoru, jako je UltraEdit nebo WinHex, a uvidíte data z dump souboru.
Vidíte data, která jsem zarámoval v rámečku na obrázku výše? Toto je řídicí segment sektoru karty, z jehož prvních 6 bajtů a posledních 6 bajtů FFFFFFFFFF tvoří heslo tohoto sektoru a FF078069 uprostřed je řídicí bit.
Po znalosti hesla jsem ho importoval do MCT a začal číst data karty.
Díky funkci MCT s zvýrazňováním dat jasně vidíme, že ve čtyřech sektorech jsou dva řádky hodnotových bloků a aktuální zůstatek na mé kartě je 32,31. Hodnota bloku hodnot je dvakrát a jednou obrácená a uložena na nejnižší adrese. Při pohledu na první blok hodnoty, 0C9F, protože data počítače jsou uložena v opačném pořadí, skutečná data jsou 9F0C, což je 3231 v desetinném pořadí. 60F3 ve střední části je obráceně a pořadí 60F3 je F360, což je 1111001101100000, když je obráceně, a 0000110010011111, když je obráceně, a 3231, když je změněno na desetinné. Poslední odstavec, stejně jako ten první, není převzat a zachován. Číslo 11 a EE na konci jsou adresy, které lze ignorovat, pokud jsou později konzistentní. Do této chvíle byla data karty prolomena, protože nebyla šifrována, nyní upravím hodnotu karty na 999,99, abych to zkusil, 999,99 jüanů by mělo být desítkové 99999, hexadecimální 01869F, výsledek v opačném pořadí je 9F8601, ostatní bity jsou vypočítány na stejném principu, nebo můžeme použít vlastní nástroj pro výpočet hodnotových bloků od MCT a nakonec vypočítat výsledek, jak je znázorněno na obrázku níže.
Zapiš data do karty, teď je čas jít na strojovou praxi.
|