Scroll Indicator
Pentestips : dont brick it - Introduction aux cartes magiques, UID et BCC
Ne le briquez pas !
Introduction aux cartes magiques, aux UID et aux BCC
- MIFARE" est une famille de cartes RFID à haute fréquence (13,56 MHz), fabriquées par Panasonic/NXP, qui appartiennent à la catégorie ISO 14443a.
- Il existe de nombreux types de cartes au sein de cette famille, chacun ayant une taille de stockage, un cryptage et des capacités différents : Mifare Classic, Ultralight, DESFire, NTAG, etc.
- Toutes les cartes MIFARE partagent les mêmes structures de base :
- UID (Unique ID)
- SAK/ATQS (voir notre précédent tutoriel)
- Espace mémoire
- La configuration de la carte est définie dans le "bloc 0" ou "bloc du fabricant". Dans les cartes originales, le bloc 0 ne peut pas être modifié. Il s'agissait d'un élément clé pour empêcher le clonage des cartes : le contenu du badge pouvait être modifié, mais le bloc du fabricant et l'UID ne pouvaient pas être changés.
- Aujourd'hui, des cartes modifiables ou "Magic" sont disponibles pour presque tous les types de cartes MIFARE, ce qui permet de modifier le bloc du fabricant.
- Cependant, un grand pouvoir implique une grande responsabilité. Si le bloc 0 est mal configuré, la carte peut être "brickée", c'est-à-dire cassée de manière irréversible.
- La façon la plus courante de "briquer" une carte magique est d'utiliser une mauvaise valeur BCC.
- Le BCC est une valeur de somme de contrôle pour l'UID - qui agit comme une "double vérification" pour s'assurer que l'UID est correct. Si la valeur BCC est erronée, la carte n'est plus détectable et ne peut donc plus être lue ou modifiée.
- Prenons un exemple.
- Ouvrons une carte MIFARE Classic 1K, avec un dump UID de 4 octets dans un éditeur hexadécimal, nous pouvons voir la valeur de l'UID dans le bloc 0.
- Si nous voulons modifier l'UID, nous changerons instinctivement les valeurs UID, disons 1 2 3 4 5 6 7 8.
- Cependant, la valeur BCC est dérivée de la valeur UID. Par conséquent, si nous modifions l'UID sans modifier le BCC, la carte sera bloquée au moment de la modification.
- Nous devons calculer la valeur BCC pour notre nouvel UID .
La nouvelle valeur BCC est calculée en faisant un XOR de chaque octet avec le résultat du XOR précédent - ne vous inquiétez pas, il existe de nombreux outils en ligne pour effectuer cette tâche, par exemple: https://bcc.beyerleinf.de/.
- Si nous entrons notre nouvel UID : 0x12345678 (sous forme de chaîne hexadécimale), nous obtenons la valeur BCC de 0x08. Nous modifions donc le BCC de la carte originale de 0xFC à 0x08, et nous écrivons la carte.
- Nous avons maintenant un nouvel UID, sans que la carte ne soit bloquée !
- Si vous mettez à jour manuellement les UID (en utilisant la commande hf mf wb0 de Proxmark), vous devez calculer le BCC correct, sinon vous risquez de faire disjoncter la carte.
- Heureusement, de nombreux outils effectuent ce calcul automatiquement :
- Android : Mifare Classic Tool dispose d'un calculateur de BCC
- Windows/Linux : nous pouvons utiliser l'outil LibNFC mf-setuid
- Pour plus d'informations sur les cartes magiques, consultez l'article de Lab401 Academy : Connaître ses cartes magiques : https://lab401.com/blogs/academy/know-your-magic-cards
Laisser un commentaire