Overview
- Why?
- MIFARE Classic?
- MIFARE Ultralight?
- Reading and capturing contents of the card
- About this manufacturer block (Sector 0 – Block 0)
- The UID thing that messes with my head
- Writing a 4Byte dump on a different card
Why?
The MIFARE NFC card is used in many environments. I got a trash card, a card that I have to use to open the underground trash bin, that I want to clone. As the replacement costs for a lost / broken card is €10 a clone would be a good investment.
By holding the card in front of the reader, I can open the trashcan, ohw happy days.
In my search for information, I found the following pages interesting:
- https://www.blackhat.com/docs/sp-14/materials/arsenal/sp-14-Almeida-Hacking-MIFARE-Classic-Cards-Slides.pdf
- http://www.proxmark.org/forum/viewtopic.php?id=1535
- http://www.shopnfc.it/en/content/7-nfc-device-compatibility
- http://publications.icaria.de/mct/releases/2.0/
- http://www.scnf.org.uk/smartstore/4-7_B_ID_Questions_Answeres_V8.pdf
- http://cache.nxp.com/documents/data_sheet/MF1S70YYX_V1.pdf?pspll=1
- https://learn.adafruit.com/adafruit-pn532-rfid-nfc/mifare
- http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf (Ultralight / 7Byte UID)
- https://www.kismetwireless.net/code-old/svn/hardware/kisbee-02/firmware/drivers/rf/pn532/helpers/
- http://stackoverflow.com/questions/21700718/serials-on-nfc-tags-truly-unique-cloneable
- http://stackoverflow.com/questions/28409934/editing-functionality-of-host-card-emulation-in-android
- https://store.ryscc.com/products/new-proxmark3-kit
MIFARE Classic?
Some informational dumps:
- 16 bits CRC per block
- Anticollision loop
- 1kB or 4kB of EEPROM
- CRYPTO1 strem cipher (mjah, close to zero security)
- Manufacturer / data / value blocks
MIFARE Ultralight?
MiFare Ultralight cards typically contain 512 bits (64 bytes) of memory, including 4 bytes (32-bits) of OTP (One Time Programmable) memory where the individual bits can be written but not erased.
MiFare Ultralight cards have a 7-byte UID that uniquely identifies the card.
Reading and capturing contents of the card
After some investigation I noticed that my Samsung mobile phone has a NFC reader.
I used the https://github.com/ikarus23/MifareClassicTool on my Samsung S6, the the result was a bit disappointing:
After some googling, I found that the hardware chip, used to read NFC tags, was just not on my S6.
But it showed that it was on an old S3, that I had laying around, it just worked like a charm on my Samsung Galaxy S3 with Android 6:
In order to read the contents of the card, the MIFARE card can be red easily.
So the only interesting information is in Sector: 0, also called the manufacturer block.
I also noticed that the UID was 7Byte, making it a MIFARE Ultralight card grrrrrrr…
About this manufacturer block (Sector 0 – Block 0)
This part of the card is the only interesting part, as no other data is written to any sector/block as far as I can see.
In order to understand the difference between a 4Byte and 7Byte UID (i.e. MIFARE Classic vs MIFARE Utralight), I have added some pictures:
A more detailed picture explains some more information is included after the serial number on block 0:
A more detailed picture of the 7byte UID:
The UID thing that messes with my head
As you could see on my tag info, the UID on my trash card is 7 byte, so it works a bit different than the 4 byte one.
The different types of UID are explained as follows:
ISO/IEC 14443 Type A defines a Unique IDentifer to be used for card selection and activation. The standard defines single, double and triple size UIDs which correspondingly consist of 4, 7 and 10 Byte.What is the difference between a 4 Byte UID and a 4 Byte ID?A 4 byte UID is an identifier which has been assigned by the card manufacturer using a controlled database. This database ensures that a
single identifier is not used twice. In contradiction, a 4 byte ID is an identifier which may be assigned to more then one contactless chip over the production time of a product so that more then one card with the same identified may be deployed into one particular contactless system.
Writing a 4Byte dump on a different card
As it is just cool to write a cards dump back, I have found a 4Byte UID MIFARE Classic 1kB card.
Ebay has a solution for everyting. UID writable MIFARE Classic cards. These cards make it possible to write Sector 0 – block 0 (i.e. the manufacturer block).
Compare the two tags, only the SAK is different, I hope that will still work in a real live situation
Is het ook mogelijk om een app te gebruiken om het nfc te broadcasten?
Dus dat je je telefoon gewoon als kaart gebruikt.
Een mobiele telefoon zou dat moeten kunnen (draadloos betalen met je NFC chip tegen een pinapparaat aan).
Maar niet in de app gevonden die ik zelf gebruik.
Een proxmark3 aanschaffen zou echt top zijn: https://store.ryscc.com
Is afhankelijk van de reader.
Sommige readers ondersteunen enkel passieve kaarten, andere ook actieve (emulatie).
Dit is misschien een domme vraag, maar is het mogelijk om een Dump van een kaart met een 7 byte UID te schrijven op kaart met een 4 Byte UID?
Dit is mij nog niet gelukt.
Wat ik zoek zijn 7 byte UID cards die changeable block/sector 0 hebben.
Als iemand weet waar ik deze kan halen….dan hoor ik dat heel graag
Heb je die al gevonden?
Hi Tim,
Mooi werk. Ik was het zelf ook al aan het uitvogelen toen ik jouw pagina tegenkwam. Ik heb deze gevonden met 7 byte UID: https://www.amazon.co.uk/Genuine-Philips-Mifare-Cards-Byte/dp/B016DQBO2W maar ik weet niet of het merk iets uitmaakt.
so did it work?
Hi, so interesting.
i have a question: i’d like to emulate de dump with the mobile.
do you think is possible?
i have been looking for an app in google play but I didnt find anything yet.
i would like to emulate my card access.
thanks a lot
Is het je ooit gelukt de afval pas te copyeren, ik kan tot nu toe geen herschrijfbare 7 bytes UID card vinden.
het lukt me wel met een jailbreak iphone 6.
op mijn s7 edge ook.
je moet pad laden dan die bytes fixen. staan op Google.
pas is je adres daarom staan die vast. op pas.
via fix kan je deze laden
hoi Harry
graag meer info a.u.b ……..byte fixen ??
link naar site , link naar software,
waar kun je pas kopen ??
remon
Sorry maar het is nooit gelukt de afval pas te copyeren, ik heb zak van 10 UID (sleutelhanger) en jouwe structie de UID is 7byte en sector 0 writeble
de probleem is niet schrijf op sector 0 maar A/B key , ik heb CRC error (key not match ) dus ik mess stapje waar de key decoded !!??
graag help ik heb nog meer UID besteld van china en ik hope meer info van je . Ray
kort corectie :BCC error (key not match )
Is het mogelijk om de data op de kaart zelf aan te passen
“only the SAK is different, I hope that will still work in a real live situation”
Did you get it working?
I am getting a “BCC of block 0 is not valid” error when trying to write block 0.
I don’t get all the stuff you’re staying about Figure 6 and Figure 7, it’s not well explained.
I used the app to try to copy a fob, and it seems to have corrupted each copy so now it’s unreadable.
i have the exact same blue keyring nfcs.
but sector 0 is not writable, wtf.
Waarom moeilijk doen als het makkelijk kan ?
Ik heb de kaart met mijn mobieltje (Sony) gekopieerd en simuleer nu voortaan de kaart ! (20 seconde app downloaden en 1 sec. kopie, gelijk werken)
Bij mij thuis hebben we dus allemaal ons eigen mobieltje en toch altijd “dezelfde” kaart bij ons :))
(Nooit meer je kaart kwijt of niet bij je !)
Mijn advies: nooit je kaart uitlenen (of je mobiel laten hacken) anders kunnen ze op jou naam lekker afval dumpen ! !
Welke app heb je dit mee gedana?
Dave5568 met welke app simuleer je de kaart?
Interessant Tim. Vandaag begonnen met checken hoe ik eenvoudig een vuilcontainer card kan kopieren voor alle gezinsleden. Zou een device zoals dit werken?
https://www.aliexpress.com/item/English-Rfid-NFC-Copier-Reader-Writer-Cloner-Copy-10-Frequency-Programmer-5Pcs-125khz-EM4305-Keyfobs-5Pcs/32814673337.html
Welke Android app is hiervoor gebruikt?
Laat maar zitten, ik heb niet goed gekeken zie ik al.
I tried with one of those UID writable cards, and Mifare Classic Tools gave me an error.
Maybe changing a phone would work? I’ve heard that Android actually doesn’t support the command of writing a UID.
Hi Tim, great write up!
Maybe you want to update the post because your assumptions about Mifare Classic vs. Mifare Ultralight are wrong. Even the tag with the 7 byte UID is a Mifare Classic tag. There are Mifare Classic tags with 4 or 7 byte UIDs! Check out section 1.3 of the datasheet http://www.nxp.com/documents/data_sheet/MF1S50YYX.pdf Also, MCT app can only read Mifare Classic tags and not Mifare Ultralight.
Hi All im newbie here. Good post! Thx! Love your stories!
Good article. Where can I get UID / Block 0 changable cards with a 7byte UID?