Scroll Indicator
Pentestips: non fare mattoni - Introduzione alle carte Magic, agli UID e ai BCC
Non fare il mattoncino!
Introduzione alle carte MIFARE, agli UID e ai BCC
- MIFARE" è una famiglia di carte RFID ad alta frequenza a 13,56 MHz, costruite da Panasonic / NXP, che rientrano nella categoria ISO 14443a.
- Esistono diversi tipi di carte all'interno della famiglia, ciascuna con dimensioni di memoria, crittografia e capacità diverse: Mifare Classic, Ultralight, DESFire, NTAG e così via.
- Tutte le carte MIFARE condividono le stesse strutture di base:
- UID (Unique ID)
- SAK/ATQS (vedere il nostro precedente tutorial)
- Spazio di memoria
- La configurazione della scheda è definita nel "Blocco 0" o "Blocco produttore". Nelle schede originali, il blocco 0 non può essere modificato. Questo era un elemento chiave per impedire la clonazione della scheda: il contenuto del badge poteva essere modificato, ma il blocco produttore e l'UID non potevano essere cambiati.
- Ora sono disponibili carte modificabili o "Magic" per quasi tutti i tipi di carte MIFARE, che consentono di modificare il blocco produttore.
- Tuttavia, da un grande potere derivano grandi responsabilità. Se il blocco 0 è configurato in modo improprio, la carta può essere "brickata", cioè rotta in modo irreversibile.
- Il modo più comune per "brickare" una scheda Magic è un valore BCC errato.
- Il BCC è un valore di checksum per l'UID, che funge da "doppio controllo" per garantire che l'UID sia corretto. Se il BCC è sbagliato, la carta non è più rilevabile e quindi non può essere letta o modificata.
- Vediamo un esempio.
- Apriamo una scheda MIFARE Classic 1K, con un dump dell'UID a 4 byte in un editor esadecimale, e possiamo vedere il valore UID nel blocco 0.
- Se vogliamo modificare l'UID, istintivamente modificheremmo solo i valori UID, ad esempio 1 2 3 4 5 6 7 8.
- Tuttavia, il valore BCC deriva dal valore UID. Pertanto, se si modifica l'UID senza modificare il BCC, quando si effettua la modifica la scheda viene bloccata.
- È necessario calcolare il valore BCC per il nuovo UID .
Il nuovo valore BCC si calcola facendo lo XOR di ogni byte con il risultato dello XOR precedente - non preoccupatevi, ci sono molti strumenti online per eseguire questa operazione, ad esempio: https://bcc.beyerleinf.de/.
- Se inseriamo il nostro nuovo UID: 0x12345678 (come stringa esadecimale), otterremo il valore BCC di 0x08. Quindi, cambiamo il BCC della scheda originale da 0xFC a 0x08 e scriviamo la scheda.
- Ora abbiamo un nuovo UID, senza che la scheda venga bloccata!
- Se si aggiornano manualmente gli UID (usando il comando hf mf wb0 di Proxmark) è necessario calcolare il BCC corretto, altrimenti si rischia di bloccare la scheda.
- Fortunatamente, molti strumenti eseguono questo calcolo automaticamente:
- Android: Mifare Classic Tool ha un calcolatore BCC
- Windows/Linux: si può utilizzare lo strumento LibNFC mf-setuid
- Per ulteriori informazioni sulle Magic Card, consultate l'articolo di Lab401 Academy: Conoscere le carte magiche: https://lab401.com/blogs/academy/know-your-magic-cards
Lascia un commento