Scroll Indicator
Pentestips: dont brick it - Introducción a las cartas Magic, UIDs y BCC's
No lo bloquees
Introducción a las tarjetas MIFARE, UID y BCC
- "MIFARE" es una familia de tarjetas RFID de alta frecuencia de 13,56 MHz, fabricadas por Panasonic / NXP que entran dentro de la categoría ISO 14443a.
- Hay muchos tipos de tarjetas dentro de la familia, cada una con diferentes tamaños de almacenamiento, encriptación y capacidades: Mifare Classic, Ultralight, DESFire, NTAG, etc.
- Todas las tarjetas MIFARE comparten las mismas estructuras básicas:
- UID (identificación única)
- SAK/ATQS (Vea nuestro tutorial anterior)
- Espacio de memoria
- La configuración de la tarjeta se define en el "Bloque 0" o "Bloque del Fabricante". En las tarjetas originales, el Bloque 0 no puede modificarse. Este era un elemento clave para evitar la clonación de tarjetas: se podía modificar el contenido de la tarjeta, pero no el Bloque del Fabricante ni el UID.
- Ahora, existen tarjetas modificables o "Magic" para casi todos los tipos de tarjetas MIFARE, que permiten modificar el bloque del fabricante.
- Sin embargo: un gran poder conlleva una gran responsabilidad. Si el Bloque 0 se configura incorrectamente, la tarjeta puede "brickearse", es decir, romperse irreversiblemente.
- La forma más común de "brickear" una tarjeta magic es con un valor BCC erróneo.
- El BCC es un valor de suma de comprobación para el UID, que actúa como "doble comprobación" para asegurar que el UID es correcto. Si el BCC es incorrecto, la tarjeta deja de ser detectable y, por tanto, no se puede leer ni modificar.
- Veamos un ejemplo.
- Abramos una tarjeta MIFARE Classic 1K, con un volcado del UID de 4 bytes en un editor hexadecimal, podemos ver el valor del UID en el Bloque 0
- Si queremos modificar el UID, instintivamente cambiaríamos sólo los valores del UID, digamos a 1 2 3 4 5 6 7 8.
- Sin embargo, el valor BCC se deriva del valor UID. Así que si cambiamos el UID sin cambiar el BCC, cuando hagamos el cambio - la tarjeta se bloqueará.
- Debemos calcular el valor BCC para nuestro nuevo UID .
el nuevo valor BCC se calcula XOR-ing cada byte con el resultado de la anterior XOR - no te preocupes hay muchas herramientas en línea para realizar esta tarea, es decir: https://bcc.beyerleinf.de/
- Si introducimos nuestro nuevo UID: 0x12345678 (como cadena hexadecimal), obtendremos un valor BCC de 0x08. Por lo tanto, cambiamos el BCC de la tarjeta original de 0xFC a 0x08, y escribimos la tarjeta.
- Ahora, tenemos un nuevo UID, ¡sin brickear la tarjeta!
- Si actualizas manualmente los UIDs (usando el comando hf mf wb0 de Proxmark) debes tener calculado el BCC correcto, o bloquearás la tarjeta.
- Por suerte, muchas herramientas hacen este cálculo automáticamente:
- Android: Mifare Classic Tool tiene una calculadora de BCC
- Windows/Linux: podemos usar la herramienta LibNFC mf-setuid
- Para más información sobre las tarjetas mágicas, consulta el artículo de la Academia Lab401: Conozca sus tarjetas mágicas: https://lab401.com/blogs/academy/know-your-magic-cards
Dejar un comentario