RFID – Le clone parfait

Cet article fait partie de la série Expériences NFC / RFID (4 articles au total)

Quand j’ai écrit, il y a 2 ans, l’article qui expliquait comment dupliquer le contenu d’une puce RFID, je n’imaginais pas qu’il susciterait un tel engouement. Pourtant, encore aujourd’hui c’est un des articles les plus consultés du site et c’est également un de ceux pour lequel je reçois de plus en plus de questions. Aussi, je me suis dit qu’il était temps d’écrire cette seconde partie que tant attendent : comment réaliser un clone parfait et complet d’une puce rfid.

On travaille toujours sur la famille de tag Mifare

Même s’il en existe différentes familles, les puces (ou tags) les plus répandues sont de type « Mifare Classic ». Cela tombe bien, c’est justement le type de tag sur lesquels nous allons travailler aujourd’hui. Personnellement je les ai rencontrés sur tout un tas d’applications différentes : badge de porte d’immeuble, carte d’accès à un parking, carte d’accès à une chambre d’hôtel, porte monnaie électronique pour la machine à café, ou encore carte de consommation de boissons dans certains bars et boîtes de nuit.

Pourquoi écrire un nouvel article sur la copie de tag RFID ?

Si vous êtes familier du 1er article que j’ai écrit sur le sujet, vous pouvez vous demander ce que vous allez apprendre de plus ici, voici les 2 raisons principales qui vous motiveront :

  • Si dans le 1er article on se contentait de copier les données d’un tag RFID à l’autre, aujourd’hui on va voir comment modifier l’identifiant du TAG (le fameux UID ou Unique ID) qui est gravé en usine, non modifiable et inviolable… enfin presque
  • Dans le premier article, il fallait installer linux sur une machine, avant d’installer ensuite les outils de manipulation des tags RFID. Une manoeuvre un peu compliquée pour les plus novices. Aujourd’hui je vous montre comment créer en 3 clics une clé USB sur laquelle vous pourrez démarrer votre ordinateur. Vous arriverez ainsi sur un bureau temporaire contenant tous les outils qui vous seront nécessaires, sans que cela n’altère votre machine.

C’est quoi cette histoire d’UID ?

Les tags RFID sont généralement composés de 2 zones : une zone de stockage de données, généralement ré-inscriptible, et une zone de stockage de l’identifiant du tag. Le fameux UID. L’UID est un identifiant unique au monde (il n’existe donc pas 2 tags avec le même UID). Il est gravé en usine au moment de la fabrication du tag et se trouve sur une partie du tag qui n’est pas ré-inscriptible. On ne peut donc pas le modifier.

A titre d’information, les tags Mifare Classic 1K (les plus répandus) contiennent 64 blocs de données. L’UID est stockée sur le premier bloc (souvent appelé dans la litterature « block 0 ») et les 63 suivants sont dédiés au stockage de données.

Dans ce cas comment dupliquer un UID ?

Si on ne peut pas modifier l’UID stocké sur ce fameux bloc 0, comment avoir 2 cartes avec le même identifiant ? C’est là que nos amis les chinois arrivent à la rescousse :)

Depuis quelques années, on a vu arriver sur le marché des tags mifare avec une petite particularité : légèrement modifiés, ils possèdent un bloc 0 réinscriptible. On peut donc modifier l’UID sur ces tags (et uniquement ceux-là !). La première fois que j’ai réussi à mettre la main sur un tag de ce type, c’était en 2014, et j’estimais avoir fait une bonne affaire en dépensant environ 20 dollars pour ce tag. En 2017, les prix ont été divisés par 10 et mettent donc ce type de tag à la portée de tous les curieux !

Où trouver ces tags chinois avec UID modifiable ?

Évidemment, ces tags sont moins évidents à dénicher mais pas de panique, j’ai tout prévu :) Vous pouvez les commander sur la Boutique de l’Atelier du Geek sous forme de badges, sous forme de cartes, sous forme de bracelets ou encore sous forme de stickers, à chaque fois par lot de 5. Les commandes sont en général dans votre boîte aux lettres en moins de 3 jours !

Un mot sur sur la norme VIGIK

VIGIK : ce nom peut sembler barbare, mais c’est la norme créée par La Poste pour standardiser l’accès aux immeubles. On lit donc très souvent le nom de cette norme sur les interphones. C’est donc VIGIK qui permet à votre facteur, mais aussi aux pompiers, policiers et autres services d’urgence d’ouvrir n’importe quelle porte d’immeuble avec un badge unique. Si je vous en parle aujourd’hui c’est que je reçois beaucoup de questions à ce sujet, car nombreuses sont les personnes qui se rêvent la possession d’un tel badge (et oui, ces badges ne sont ni plus ni moins que des tags RFID Mifare).

Malheureusement, ce n’est pas si simple. S’il est tout à fait possible de dupliquer le badge de votre ami le facteur, la norme est faite de telle sorte que pour que le badge reste valide il faut qu’il soit « rechargé » toutes les 48h. En d’autre terme, si par je ne sais quel hasard, vous arriviez à copier un de ces passes VIGIK, il ne fonctionnerait que pendant quelques heures avant de devenir complètement inutile.

Est-ce que ça veut dire que je ne peux pas dupliquer mon badge d’accès d’immeuble si je lis « VIGIK » sur l’interphone ?

Puisque ça ne fonctionne pas pour le badge du facteur, on pourrait se dire que ça ne fonctionnera pas davantage pour les résidents… Mais en fait si ça fonctionne. Les badges résidents n’ont pas besoin d’être rechargés comme ceux des facteurs, par conséquent si vous en dupliquez un cela fonctionnera et vous donnera les mêmes accès que le badge original.

Motivés à tenter l’expérience ? Il est temps de passer aux choses sérieuses :)

Cloner un tag mifare

Matériel nécessaire

Etape 1 : Création de la clé USB de démarrage

Pour ne pas avoir à installer de Linux sur le disque dur, il faut créer une clé USB de démarrage. Le principe est simple : lors de son lancement, le PC démarrera le système d’exploitation présent sur la clé USB comme s’il s’agissait de son propre disque dur. Cela nous permettra d’obtenir un système linux complet pour notre session de travail sur les tags RFID. A l’extinction de l’ordinateur, il suffira de retirer cette clé USB pour que la machine retrouve son fonctionnement normal.

J’ai choisi de travailler avec la distribution linux « Kali ». Cette distribution, orientée sécurité, contient de nombreux outils dont les fameux « NFC Tools » qui nous seront utiles aujourd’hui. Il faut commencer par télécharger kali (version 64 bits live) ici https://www.kali.org/downloads/. Ce tuto a été réalisé avec la version 2017.1 qui est sortie voilà quelques jours au moment où j’écris ces lignes.

Edit du 29/03/2020 : Ce tuto marche parfaitement jusqu’à la version de Kali 2019.3. Si vous souhaitez utiliser une version plus récente il faudra entrer quelques commandes supplémentaires que je vous ai préparé et surtout bénéficier d’une connexion internet.

Une fois le fichier ISO récupéré, il va falloir le transférer sur la clé. Pour cela j’utilise comme à mon habitude le logiciel RUFUS qui est très simple. Une fois RUFUS téléchargé et installé, il suffit de sélectionner la clé USB sur laquelle installer Kali, et de lui indiquer l’endroit où votre fichier ISO de kali est situé. Chez moi cela donne quelque chose comme ça :

L’écran de RUFUS, prêt à créer la clé USB de démarrage avec Kali.

Cliquez ensuite sur le bouton Démarrer pour lancer l’opération.

Notez que si vous souhaitez gagner du temps, vous pouvez également trouver des clés USB pré-configurées avec Kali sur la Boutique de l’Atelier du Geek.

Etape 2 : Lancement du système et préparation de l’environnement

Une fois votre clé préparée, éteignez l’ordinateur que vous souhaitez utiliser, branchez la clé et démarrez sur la clé USB. Attention pour sélectionner un périphérique de démarrage, sur certains ordinateur il faut appuyer sur une touche particulière. Sur le mien par exemple, il s’agit de la touche Echap, mais j’ai déjà croisé des ordinateurs où il fallait utiliser la touche F2, F8, F10, F11 ou Suppr par exemple…

Après quelques instants nécessaires au chargement du système, vous devriez atterrir sur un bureau vierge. On y est presque.

Le bureau de Kali au démarrage

Par défaut, le clavier est configuré en QWERTY, ce qui n’est pas très pratique si votre ordinateur est équipé comme le mien d’un clavier AZERTY. Pour rétablir cela, il suffit de lancer le terminal via l’icône suivante :

L’icône du terminal se trouve sur la barre de gauche.

Une fenêtre d’invite de commande va s’ouvrir, et il faudra saisir à l’intérieur la commande suivante : setxkbmap fr (ce qui nécessitera sur votre clavier d’appuyer sur les touches setxb,qp fr). Cette fenêtre de terminal va nous servir dans toutes les manipulations suivantes, vous pouvez donc la garder ouverte.

La commande doit être tapée dans le terminal, ce sera la même chose pour toutes les autres commandes de ce tuto.

Si vous utilisez une version récente de Kali Linux

Si  vous souhaitez utiliser une version de Kali 2020 ou supérieure, vous devez vous connecter à internet à ce moment et exécuter quelques commandes supplémentaires. En effet, depuis la version 2020 de kali, vous n’êtes plus identifié comme un super-utilisateur et surtout, les NFC Tools utilisés dans cet article ne sont plus présents par défaut, il va donc falloir les réinstaller ! Pour remédier à tout cela, entrez les commandes suivantes. 

kali@kali:~$ sudo su
root@kali:/home/kali# apt-get update
root@kali:/home/kali# apt-get upgrade -y
root@kali:/home/kali# apt-get install libnfc-bin mfoc -y

Configuration du système

Maintenant que le clavier est en français, il va falloir configurer le système pour que les NFC Tools puissent interagir correctement avec votre lecteur RFID. Pour ce faire, commencez par branchez votre lecteur RFID (si ça n’est pas déjà fait). Kali va alors charger automatiquement en arrière plan des modules qui vont perturber les NFC Tools. Pour décharger ces modules, toujours dans votre fenêtre du terminal, entrez les commandes suivantes.

root@kali:~# modprobe -r pn533_usb
root@kali:~# modprobe -r pn533
On dsactive avec ces 2 commandes les modules standard de linux qui perturberaient les NFC Tools

L’environnement est désormais fin prêt pour notre petite expérience, on va pouvoir entrer dans le vif du sujet.

Etape 3 : Vérifier le bon fonctionnement du lecteur

Pour être sûr que le lecteur fonctionne correctement avec les NFC Tools, il suffit de lancer la commande suivante et de passer un tag RFID devant le lecteur.

root@kali:~# nfc-list

Si tout est bien configuré, le lecteur devrait vous afficher quelques informations sur le tag, dont le fameux UID, comme dans la capture ci-dessous. Ici mon UID, ce fameux numéro unique est le ea b5 8f 4b. Si vous essayez maintenant avec votre puce RFID chinoise, vous devriez obtenir un numéro d’UID différent, ce qui est tout à fait normal.

L’UID est visible avec la commande nfc-list, sur la ligne « UID ». Ici la puce à copier à un UID avec la valeur suivante : eab58f4b.

Si jamais vous obtenez un message d’erreur ou si rien ne s’affiche plusieurs possibilités :
Votre tag n’est pas un tag RFID compatible avec votre lecteur
Il y a eu une erreur lors de l’étape 2, recommencez donc à cette étape en vérifiant méticuleusement vos commandes.

Etape 4 : Extraire les clés de chiffrement de la puce RFID chinoise dans un fichier

Cette étape au nom un peu barbare ne devrait vous prendre que quelques secondes. Son principe ? Pour pouvoir écrire sur une puce RFID, il faut en posséder les clés de chiffrement. Une sorte de mot de passe qui permet d’encoder et de décoder les informations de la puce. Ces clés de chiffrements vont être stockées avec le contenu de la clé, dans un fichier. Ce fichier nous servira lors de l’étape finale pour copier les données de la puce originale sur la puce chinoise.

Pour lancer l’extraction des clés de chiffrement, placez votre puce sur le lecteur et saisissez dans un terminal la commande suivante.

root@kali:~# mfoc -P 500 -O carte-vierge.dmp

Les clés de chiffrement seront stockées dans le fichier « carte-vierge.dmp ».

La commande mfoc permet de copier le contenu d’une puce dans un fichier. Cette commande va notamment se charger de trouver les différentes clés de chiffrement qui empêchent normalement de lire le contenu de la puce RFID.

Etape 5 : Copiez le contenu de la puce RFID d’origine dans un fichier

Maintenant que les clés de chiffrement de la puce chinoise sont extraites, il va falloir faire de même avec la puce originale. Cette opération va copier les clés de chiffrement et le contenu de la puce d’origine dans un fichier. Ce fichier contiendra toutes les données de la puce, ainsi que son UID. C’est en quelques sorte une « sauvegarde » de votre puce RFID. N’hésitez pas à la conserver en lieu sûr, ainsi si vous perdez votre puce RFID vous pourrez en créer de nouvelles à l’identique à partir de ce fichier de sauvegarde.

Pour ce faire, placez la puce originale sur votre lecteur, et entrez la commande suivante :

root@kali:~# mfoc -P 500 -O carte-originale.dmp

Vous l’aurez surement compris, cette commande va créer un fichier « carte-originale.dmp » c’est le fameux fichier de sauvegarde de votre puce originale.

A nouveau on a recourt à la commande mfoc, toujours pour les mêmes raisons que dans l’étape précédente. Avec la puce originale c’est généralement plus long car les clés de chiffrements sont rarement celles d’origine, et la commande mfoc doit donc exploiter une faille des puces mifare pour réussir à obtenir les clés de chiffrement manquantes.

Etape 6 : Ecrire le contenu de la puce originale sur la puce chinoise

On arrive au bout ! Vous n’êtes plus qu’à une dernière commande de la victoire ! Maintenant que l’on possède une copie du contenu de la puce originale, ainsi que les clés de chiffrement de la puce chinoise, nous allons pouvoir transférer le contenu et l’UID de la puce originale sur la puce chinoise.

Pour se faire, et toujours dans le terminal, saisissez la commande suivante.

root@kali:~# nfc-mfclassic W a carte-originale.dmp carte-vierge.dmp
On touche au but avec la dernière commande du tuto. On va ici demander à la commande mfc-classic d’écrire le cntenu de la puce originale sur la puce chinoise vierge, UIS compris.

L’opération devrait prendre 1 grosse seconde avant d’aboutir sur un message de succès. Si vous êtes attentifs, vous remarquerez que la seule différence par rapport au précédent article est le fait que le « W » est écrit en capital. ça n’est pas une erreur, cela demande au lecteur de transférer le contenu de la puce ainsi que le bloc 0 qui contient l’UID. En cas de succès, un message devrait vous confirmer l’écriture de 64 secteurs sur 64 (dans le précédent article, on n’en copiait que 63 car il manquait le fameux bloc 0).

Vous pouvez vérifier le succès de l’opération en répétant l’étape 3 avec votre puce chinoise. Si tout a correctement fonctionné, la commande nfc-list appliquée à votre puce chinoise vous affichera un UID identique à celui de votre puce originale.

Et voilà, vous venez de contourner l’incontournable :)

En conclusion

Avec quelques dizaine d’euros de matériel et une poignée de minutes, vous aurez pu dupliquer à la perfection une puce RFID officielle. Aucun lecteur ne pourra faire la différence entre la copie et l’originale. Vous comprenez désormais que la sécurité des systèmes basés sur ce type de puce est toute relative. Comme d’habitude, vous êtes seuls responsables de l’usage que vous faites de ces connaissances. Si vous avez des questions, ou souhaitez tout simplement partager vos expériences sur le sujet, n’hésitez pas à vous exprimer dans les commentaires ! Enfin, si vous cherchez à vous équiper tout en soutenant le blog, n’hésitez pas à faire un tour dans la boutique de l’Atelier du Geek pour y trouver votre bonheur !

Tous les articles de la série Expériences NFC / RFID

RFID – Le clone parfait

342 réflexions au sujet de « RFID – Le clone parfait »

  1. Bonjour tous.
    Ce fameux message d’erreur:
    error libnfc.driver.acr1222_usb Unable to set alternate setting on USB interface (Connection time out) semble être le propre des lecteurs ACR122 récents, pour lesquels un petit quelque chose a du évoluer par rapport aux générations précédentes.
    Je n’ai toujours pas vu de solution relativement simple pour s’en sortir. L’éventuelle solution de contournement proposée dans Github, avec recompilation d’un noyau Linux, n’est pas à la portée du quidam que je suis, sans compter que son efficacité semble encore hypothétique car très faiblement commentée.
    Une solution palliative plus simple et éprouvée serait appréciée pour que nos ACR122 maudits servent enfin à quelque chose :)

  2. Bonjour Alex,
    Réponse tardive, tu avais raison, après avoir acheté les bons badges sur ton site, la copie s’est déroulée à la perfection.
    J’ai une dernière question, lorsque je compare 2 badges copiés avec des sommes différentes, il y a plusieurs code hexa différents et aucun ne correspond à la somme du badge, existe-t-il un logiciel ou une manip pour savoir ou modifier la somme?
    Je peux envoyer les fichiers si tu le souhaites.
    D’avance merci et encore merci pour ton aide très précieuse
    Cdt

  3. Bonjour Alex,
    En attendant ta réponse, je me lui laissé tenté par un mobile Androïd … Du coup, je pense utiliser l’application Mifare Classic Tool. Cette idée de « cliquer et c’est peser » m’enchante
    Mon choix, le Xiaomi MI 9T … Le NFC est listé dans sa fiche technique, j’espère que tout ira bien.
    Merci encore pour tes articles si pédagogiques sur ce sujet.

  4. Bonjour Helpme , cherche donc dans le secteur 12 , 3 eme bloc . C est souvent la . Quel est le montant de ta puce ?

  5. Bonjour Luc,
    Depuis toutes ces mesaventures je suis en lien direct avec la marque qui produit le ACR122U, et je peux vous garantir que depuis Avril 2018, tous les lecteurs vendus sur la boutique sont épargnés par le phénomène :)
    Bien à vous,
    Alexandre

  6. Bonjour,
    Ci-joint les infos que je trouve sur la clé après 2 copies avec des sommes différentes
    j’ai mis uniquement les données ou il y a une différence

    Badge avec 4,45€
    ……
    b9eb 6af6 09b9 b8d6 f6af 9519 0549 314c
    3fbf 39ea ea57 c35b 2216 f266 7dc1 b3de
    6bca 3467 62bc d57f b9eb 6af6 09b9 b8d6
    a0a1 a2a3 a4a5 0f00 ffff 415a 5445 4b4d
    004e 75ec 0ac8 2c5a e2c4 ecd8 9e0c 530e
    b9eb 6af6 09b9 b8d6 7a49 fa2b e418 2453
    8a0c 7fa2 8031 8261 b9eb 6af6 09b9 b8d6
    a0a1 a2a3 a4a5 0f00 ffff 415a 5445 4b4d
    ………

    Badge avec 4,65€
    ……..
    b9eb 6af6 09b9 b8d6 f6af 9519 0549 314c
    5682 d0b0 3ff2 1a94 2236 a822 245b 6bf6
    e0e5 d3ee b941 ad96 b9eb 6af6 09b9 b8d6
    a0a1 a2a3 a4a5 0f00 ffff 415a 5445 4b4d
    004e 75ec 0ac8 2c5a 17ba 2cc5 8330 3537
    b9eb 6af6 09b9 b8d6 2086 ef3f 015f 2a3c
    8a0c 7fa2 8031 8261 b9eb 6af6 09b9 b8d6
    a0a1 a2a3 a4a5 0f00 ffff 415a 5445 4b4d
    ……………

    Merci

  7. OK Merci pour la réponse Alex. Je suis mal tombé alors, pas de chance, mais je me console car j’ai réussi à faire fonctionner le mien, après quelques jours et nuits d’échecs continus.
    J’en peux plus de error libnfc.driver.acr1222_usb Unable to set alternate setting on USB interface (Connection time out) !

    Malgré ce temps passé mon mérite reste minime car je n’y connais pas grand chose en Linux, mais j’ai essayé de rassembler ce que j’ai pu glaner par ci par là, et surtout ici https://debian-facile.org/viewtopic.php?id=22356.
    Comme le problème touche quand même apparemment plusieurs utilisateurs malheureux, je résumerai à la suite de ce fil là la façon dont j’ai procédé pour enfin parvenir à faire fonctionner mon lecteur sous Kali.
    Pour l’instant je suis obligé de taper une longue liste de commandes à la main après avoir booté avec une clé usb live. Ce n’est pas très pratique mais au moins au final ça marche. ça me convient pour un usage occasionnel. Je n’ai pas réussi à faire la même chose avec un installation fixe sur un disque dur, je ne sais pas pourquoi mais une étape ne fonctionne pas.
    S’il était possible de faire un fichier image, un instantané, ce serait pratique mais je ne sais pas si ça existe.

  8. Bonjour, j’ai envie de tenter de cloner une carte pass partout vigik tel que celle de la poste , je dispose d un tel nfc, dois je prendre les cartes ou les badges dans la boutique, et pense tu l’opération réalisable?, les codes changent mais si on répète l’opération , les cartes sont réinscriptibles nonl?
    merci
    pas de possibilité de message privé?

  9. Bonjour,

    J’aimerais me lancer, mais quels sont les soucis rencontrés encore aujourd’hui?
    Je pense prendre un petit pc portable, (genre tablette sous windows 10).

    Est ce suffisant?

    Merci

  10. Bonjour, pour moi toutes les étapes se passent comme prévu exepté la derniere (étape 6: la commande s’execute mais à la place de la ligne « received bits: a (4bits) » j’ai « unlock failure! » et fin de la commande…

  11. Salut Alex,
    Je vois que dans la boutique les badges compatibles MCT sont en ruptures, allez-vous bientôt en avoir de nouveaux ?
    Sinon les LIBNFC pourraient-ils convenir avec l’appli MCT ?
    D’avance merci.

  12. Hello Cédric, soit rassuré, le nouveau stock est arrivé :)
    Attention si tu utilises les badges « libnfc » (badges de generation 1) tu ne pourras pas modifier l’UID depuis un smartphone, il faudra passer par un lecteur USB comme le ACR122U.
    Alexandre

  13. Bonjour,
    J’ai un souci lorsque j’essaye de copier mon badge d’immeuble après la commande suivante :
    root@kali:~# mfoc -P 500 -O badgeoriginale.dmp

    Message
    Sector 15 – Unknown Key A Unknown Key B
    mfoc: ERROR:
    No sector encrypted with the default key has been found, exiting..

    Si j’essaye de le recopier sur un autre badge j’ai le message suivant :
    root@kali:~# nfc-mfclassic W a badgeporte.dmp badgevierge.dmp
    NFC reader: ACS / ACR122U PICC Interface opened
    Expected MIFARE Classic card with UID starting as: b92babde
    Got card with UID starting as: fa972321
    Aborting!

    Merci d’avance pour votre aide

  14. hello Seb17,
    Voici 2 erreurs différentes. J’ai au mojns la réponse pour votre premier problème :

    Pour l’erreur « No sector encrypted with the default key has been found, exiting. » cela vient du fait que le badge d’immeuble est encodé avec des clés non-standards. Pour que mfoc arrive à ses fins, il faut donc lui passer un fichier de clés additionnelles. Par expérience, avec le fichier suivant, on frôle les 100% de réussite ;) https://raw.githubusercontent.com/ikarus23/MifareClassicTool/master/Mifare%20Classic%20Tool/app/src/main/assets/key-files/extended-std.keys

    Donc concrètement il faut télécharger le fichier, et relancer mfoc avec la commande suivante : root@kali:~# mfoc -P 500 -f extended-std.keys -O badgeoriginale.dmp

    Pour votre deuxième problème, quelle version de Kali utilisez-vous ?

    Bien à vous,

    Alexandre

  15. Bonjour Alex,
    Merci pour ta réponse, j’ai bien réussi à copier le badge avec le fichier mais le message lors de la recopie est toujours le même.
    La version de Kali est 3.30.2 (Using VTE version 0.54.2+GNUTLS)

  16. Salut les ami je souhaite dupliquer un badge de parking sans piste noire mais celui n’ai pas detecté sur mon lecteur contrairement a ma carte de machine qui a café qui elle marche tres bien lecture et copie ?

    une idée ?

    merci

  17. Bonjour Alex,

    Tout se passe très bien lors de la création des deux fichiers mais dans la dernière étape qui affiche ce message ci-après tout se bloque après « Sent bits: 50 00 57 cd ».
    NFC reader: SCM Micro / SCL3711-NFC&RW opened
    Found MIFARE Classic card:
    ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00 04
    UID (NFCID1): 01 23 45 67
    SAK (SEL_RES): 08
    Guessing size: seems to be a 1024-byte card
    Sent bits: 50 00 57 cd

    La suite « Sent bits: 40 (7 bits) »Received bits: a (4 bits) etc… » n’apparaît pas et et je n’ai aucun retour à la ligne root@gkali. Une explication ?

    Merci d’avance.

  18. Bonjour, pour tester sur une machine a café avec une carte mifare classic 1k, j’ai bien suivi toutes les étapes, j’ai bien copié mon badge, tout s’est déroulé correctement, l’uuid est identique, . j’ai refait une extraction du badge copié pour comparer au dump du badge original et tout est identique.
    Seul le SAK est différent, j’ai 88 au lieu de 08 ( ou l’inverse )
    La copie n’est pourtant pas reconnue par la machine a café…
    Est-ce que ca viendrais du SAK?

  19. Hello cmoi,
    Quels types de badges as-tu utilisé ?
    2 possibilités : soit le SAK pose problème soit le type de badge utilisé (generation 1 généralement) est détecté (et bloqué) par le lecteur.
    Tiens nous au courant,
    Alexandre

  20. Bonjour et merci :) le badge d’origine est de type mifare classic 1k et le badge copié est un badge mifare classik 1k aussi avec bloc 0 modifiable, fourni en pack avec un lecteur de type acr122 ,( je ne sais pas si c’est ca la question.)
    J’arrive a mettre le bon uuid dedans, j’ai une copie parfaite en faisant un dump de ce qu’il y a dedans et en comparant les hashages et le contenu des fichiers, mais le SAK est différent, sauf quand le badge chinois reprends son UUID d’origine, la le SAK recherché (08) est bon mais quand je mets les données copiés de l’original il prends la valeur 88… j’ai recherché , apperement le seul moyen serais de prendre proxmark :(

  21. Excellent article très pédagogique. Toutefois je n’arrive pas à savoir si l’ACR122U est compatible pour le type de tag « ISO 1443-3A NXP MIFARE Ultralight (Ultralight).
    Un grand merci si je peux obtenir cette précision.
    Cordialement

  22. Bonjour,
    J’aurais besoin de copier mon badge de co-pro ( vigik intratone NfcA, MifareClassic, NdefFormatable ), cependant tout le monde me dit que ca va désactivé l’original et qu’il fallait le code que la co-pro à soumis.
    Ma question quel est le moyen de copier mon badge sans désactivé l’original?
    Cordialement.

  23. Bonjour Julien,
    Qui est ce « tout le monde » ? Pour détecter le type de contrainte que vous mentionnez, scannez avec mfoc votre badge avant, et après utilisation, et comparez les fichiers obtenus.
    S’ils sont identiques, vous n’avez pas à vous inquiéter. Si au contraire le contenu change, là vous pourriez effectivement observer la désactivation du badge original en cas de copie…

    Bien à vous,

    Alexandre

  24. Bonjour j’ai le même problème que thomas :

    root@kali:~# nfc-mfclassic W a carte-origine.dmp carte-vierge.dmp
    NFC reader: ACS / ACR122U PICC Interface opened
    Found MIFARE Classic card:
    ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00 04
    UID (NFCID1): 00 74 c1 60
    SAK (SEL_RES): 08
    Guessing size: seems to be a 1024-byte card
    Sent bits: 50 00 57 cd
    error libnfc.driver.acr122_usb Invalid RDR_to_PC_DataBlock frame
    Sent bits: 40 (7 bits)
    error libnfc.driver.acr122_usb Invalid RDR_to_PC_DataBlock frame
    unlock failure!
    root@kali:~#

  25. Hello JJ,
    Pour l’erreur error libnfc.driver.acr122_usb Invalid RDR_to_PC_DataBlock frame essayez de débrancher/rebrancher votre lecteur ACR122U.
    Et enfion pour le « unlock failure », cela peux avoir plusieurs origines. Pouvez-vous me dire sur quel tags NFC vous essayez d’écrire (si vous avez le lien c’est le mieux) et quelle version de kali et des NFC Tools (si ce n’est pas la version par défaut de Kali).
    Bien à vous,
    Alexandre

  26. Bonjour,
    J’ai toutes les étapes en OK ou Done etc mais malheureusement, le UID n’est pas copié alors que j’ai un beau « Done, 64 of 64 blocks written. »
    As-tu une idée du problème ?

  27. Bonsoir Alex,
    J’ai le même pb que certains à l’étape 6 , message : « incorrect bcc in mfd file »
    J’ai kali linux large v2019.3, et les tags nfc vendu par l’atelier du geek reçu aujourd’hui.

    J’ai fait un dump du tag que je voulais copier avec mon téléphone (mifare classic tool) et en voulant écrire ce dump sur le tag (avec le uuid réinscriptible en utilisant kali et le lecteur ACR122U), j’ai ce message.
    Comme si le badge reçu n’avait pas le block 0 de réinscriptible :-\.
    sur github, ils parlent de recompiler le libnfc, tu en pense quoi ? : https://gist.github.com/alphazo/3303282
    Franck

  28. Bonjour Alex,

    j’ai un petit soucis avec le « tag » d’une carte :
    j’ai dump la carte original non sans soucis , mais c’est ok j’ai mon dmp
    je dump ma clé vierge : ok
    je fais mon nfc-mfcclassic W a dumporiginal dumpvierge : OK 64/64
    je fais un nfc-list sur les 2 cartes :
    UID (NFCID1): 04 62 24 8a 93 54 80
    et UID (NFCID1): 26 59 a4 3d

    du coup je fais un dump de la clé pour voir et je compare en hexa
    newcleprogrammé == clevide
    comme si la programmation n’avait pas eu lieu

    Merci d’avance ;p

    Cdt

  29. Bonjour à tous,

    Intratone utilise un numéro qui est gravé sur le badge qui n’est pas celui inscrit dans le badge. Savez-vous comment le numéro gravé est calculé par rapport à celui inscrit dans le badge ?

    Merci d’avance pour vos réponses.

  30. Bonjour Alex,
    Tout comme Seb17 et d’autres, je suis tombé sur un badge (Noralsy pour ma part) dont les clés ne sont pas standards et donc pas reconnues par la commande de clonage mfoc classique. J’ai donc essayé de passer par mfcuk, en vain, ca tourne dans le vide, même après une nuit entière à laisser mon PC tourner.
    J’ai donc wget le fichier extended-std.keys d’Ikarus23 et là ,en rentrant la commande  » mfoc -P 500 -f extended-std.keys -O badgeoriginale.dmp », le résultat me donne: « mfoc: invalid option — ‘f' »
    Après avoir lancé un man mfoc, j’ai pu m’apercevoir que la commande « f » (ou F) n’apparaissait pas.
    Je tiens à préciser que je suis un débutant sur linux et ai surement du faire une erreur… de débutant quelque part!
    Cependant, après des heures de recherche sur le net, j’ai bien l’impression d’être le seul à connaître ce problème – ou du moins à chercher la solution sur la toile.
    Pour info, je suis sous Kali linux avec un ACR122U qui m’a confronté au fameux problème « Unable to set alternate… » qui j’ai pu solutionner grace à toi (Merci!!) et qui m’a permis de réussir à cloner mon badge d’immeuble avec réussite mais là, je tombe sur un os avec ce Noralsy résistant.
    Un grand merci pour ce que tu pourras faire pour moi :)

  31. Hello Fabio,
    La commande est pourtant bonne, j’ai l’impression que tu as saisi un double tiret avant le f.
    Pour avoir l’ensemble des paramètres disponibles, tu peux exécuter la commande mfoc -h

    Bien à toi,

    Alexandre

  32. Hello Bennyhill,
    Désolé je n’en ai pas sus la main pour essayer de deviner :/ Peut-être que l’un des lecteurs en saura plus ?
    Bien à toi,

    Alexandre

  33. Hello Nico,
    Quelle version de Kali et quels badges vierges utilises-tu ? Je n’ai jamais vu le soucis. Sur certaines version il existe la commande nfc-mfsetuid pour définir manuellement uniquement l’UID.
    Bien à toi,
    Alexandre

  34. Hello Franck,
    Je ne suis pas sûr de bien comprendre.
    Le message d’erreur « incorrect bcc in mfd file » apparait sous kali ou MCT ? Pour moi ce message indique un soucis dans le dump de ton badge original, pas dans le badge vierge.
    En tous cas le bout de code github me semble bien trop vieux pour en espérer quoi que ce soit…

    Bien à toi,

    Alexandre

  35. Bonjour Yannick,
    J’aimerais bien vous aider mais je ne comprends pas le problème… Pouvez-vous essayer de le réexpliquer ?
    Bien à vous,
    Alexandre

  36. Bonjour Alex,
    Merci pour ton retour. Si je te file, le numéro gravé et le numéro inscrit tu peux m’aider ?
    Benny Hill

  37. Bonjour,
    une piste pour ceux qui n’ont pas des clés standards et que l’ajout du fichier extended-std.keys ne règle pas le problème.
    Vous pouvez utiliser sous Kali miLazyCracker qui pour moi a réussi à trouver les 2 clés manquantes pour dupliquer mon badge.
    On peut le recuperer ici :
    https://github.com/nfc-tools/miLazyCracker
    Décompacter le fichier miLazyCracker-master.zip
    se rendre dans le sous-dossier et l’installer en faisant :
    ./miLazyCrackerFreshInstall.sh

    Lancer ensuite la commande :
    miLazyCracker
    Et se laisser guider :)
    Attention dans mon cas la recherche des clés a pris près d’une heure…

    Le logiciel propose directement la copie sur un autre badge, mais nous donne aussi les clé trouvées que l’on peut réutiliser avec mfoc si on le souhaite en les ajoutant :
    Exemple pour les clés 4a2b29123456 et 43454212344e :

    mfoc -P 500 -O carte-a-copier.dmp -k 4a2b29123456 -k 4345412344e

    Placez ensuite la carte chinoise sur le lecteur et tapez :

    mfoc -P 500 -O carte-chinoise.dmp

    Et copier le contenu de la carte sur la carte chinoise :

    nfc-mfclassic W a carte-a-copier.dmp carte-chinoise.dmp

  38. Bonjour,

    Tout d’abord merci pour ce tutoriel très clair grâce auquel j’ai réussi a cloner ma carte mfare.
    Les deux carte fonctionne!

    Par contre je constate que sur la carte clone, le SAK a changer de 08 a 88:
    1) y’a il un moyen de le modifier pour en faire une copie exact?
    2) le clone va il être reconnu en tant que copie par le système?

    Objectif: Ayant droit a une place de parking accessible via la carte Mfare mais utilisant deux véhicule, j’aurais aimais avoir une carte a laisser dans chaque voiture.

    Merci d’avance pour vos réponses.

  39. Bonjour,

    Tout d’abord merci pour ce tutoriel très clair grâce auquel j’ai réussi a créer un clone de ma carte mfare.

    Je constate que le SAK de la carte clone est désormais 88 au lieu de 08 comme il était au début, et comme il est sur l’original.
    1) Y’aurait il une façon de corriger ce problème afin d’avoir une carte clone a 100 pour-cent?
    2) es ce que cette carte va être reconnu par le système comme une copie a cause de cela?

    Objectif: Ayant droit a une place de parking accessible avec cette carte et utilisant des véhicules différents, j’aimerais avoir deux carte fonctionnelles afin d’en laisser une dans chaque voiture.

    En vous remerciant par avance pour vos réponses.

  40. Salut, merci pour cet article de qualité.

    J’aimerais savoir si c’est possible de cloner un badge mifare desfire ev1. J’imagine que si c’est faisable, ca doit être bien plus galère ?

    Merci :)

  41. Bonjour,
    J’ai un problème avec mon Tag original.
    Lors de l’étape 3 : le lecteur reconnait bien le taf et affiche son UID.
    Par contre, lors de l’étape 5 :
    Je lance root@kali:~# mfoc -P 500 -O carte-originale.dmp
    et la console renvoi :
    mfoc : ERROR: No tag found.

    Est-ce que cela veut dire que le Tag est protégé?

    Merci d’avance,
    Corzer

  42. Bonjour Alex,

    sais tu s’il est possible de mettre deux identifiants RFID sur un même badge ? (je suppose que non mais sais t on jamais ^^)

    Merci

  43. Hello à tous,

    Je rencontre un problème lors de la tentative de copie de la puce d’origine. Le lecteur ne semble pas réussir à décrypter les clés avec une erreur mfoc. Je précise que j’ai reussi à le faire via le smartphone et l’application android, le badge fonctionne bien. J’ai voulu passer par le lecteur pour comprendre exactement comment fonctionnait les commandes sans l’IHM. Voici le détail du code obtenu:

    mfoc -P 500 -O carte-originale.dmp
    Found Mifare Classic 1k tag
    ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00 04
    * UID size: single
    * bit frame anticollision supported
    UID (NFCID1): 3e b2 3e ab
    SAK (SEL_RES): 08
    * Not compliant with ISO/IEC 14443-4
    * Not compliant with ISO/IEC 18092

    Fingerprinting based on MIFARE type Identification Procedure:
    * MIFARE Classic 1K
    * MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1
    * SmartMX with MIFARE 1K emulation
    Other possible matches based on ATQA & SAK values:

    Try to authenticate to all sectors with default keys…
    Symbols: ‘.’ no key found, ‘/’ A key found, ‘\’ B key found, ‘x’ both keys found
    [Key: ffffffffffff] -> […………….]
    [Key: a0a1a2a3a4a5] -> […………….]
    [Key: d3f7d3f7d3f7] -> […………….]
    [Key: 000000000000] -> […………….]
    [Key: b0b1b2b3b4b5] -> […………….]
    [Key: 4d3a99c351dd] -> […………….]
    [Key: 1a982c7e459a] -> […………….]
    [Key: aabbccddeeff] -> […………….]
    [Key: 714c5c886e97] -> […………….]
    [Key: 587ee5f9350f] -> […………….]
    [Key: a0478cc39091] -> […………….]
    [Key: 533cb6c723f6] -> […………….]
    [Key: 8fd0a4f256e9] -> […………….]

    Sector 00 – Unknown Key A Unknown Key B
    Sector 01 – Unknown Key A Unknown Key B
    Sector 02 – Unknown Key A Unknown Key B
    Sector 03 – Unknown Key A Unknown Key B
    Sector 04 – Unknown Key A Unknown Key B
    Sector 05 – Unknown Key A Unknown Key B
    Sector 06 – Unknown Key A Unknown Key B
    Sector 07 – Unknown Key A Unknown Key B
    Sector 08 – Unknown Key A Unknown Key B
    Sector 09 – Unknown Key A Unknown Key B
    Sector 10 – Unknown Key A Unknown Key B
    Sector 11 – Unknown Key A Unknown Key B
    Sector 12 – Unknown Key A Unknown Key B
    Sector 13 – Unknown Key A Unknown Key B
    Sector 14 – Unknown Key A Unknown Key B
    Sector 15 – Unknown Key A Unknown Key B
    mfoc: ERROR:

    No sector encrypted with the default key has been found, exiting..

  44. Bonjour, la question au niveau du sak 88 au lieu du 08 une solution a ete trouvé ou pas ? Je n ai pas essayé si cella fonctionne ou pas !
    Merci

  45. Bonjour Miamigui,
    Cette erreur signifie simplement que mfoc ne connait pas les lcés de chiffrement utilisées pour votre badge.
    Vous pouvez l’aider en lui passant en paramètre un fichier de clés additionnel (le fichier de clés de MCT par exemple) via le paramètre -f
    Cela résoudra votre problème.

    Bien à vous,

    Alexandre

  46. Hello Bob, et si vous commenciez par essayer ? Peut-être que vous verriez que cela n’a pas d’importance ? En vérité cela dépend du système, donc peut-être n’avez-vous pas besoin de pousser plus loin :) Bien à vous, Alexandre

  47. Bonjour Alex,
    Je viens d’acheter un lecteur NFC ACR122 à l’atelier du geek, bien que n’étant pas très geek, pour copier un badge de parking.
    J’ai suivi la procédure de création de la clé Kali avec Rufus (étape 1 du tuto). La version de Kali est la version 2019.4-amd64.
    Quand je redémarre mon ordi sur cette clé j’ouvre Kali et la console et je tape les commandes de l’étape 2; mais ensuite la commande nfc-list (étape 3 du tuto) n’est pas reconnue.
    Quelle étape me manque-t-il ? Faut-il télécharger à part les Nfctools ? Et si oui dans quel répertoire les installer ?
    Merci de votre réponse
    Emmanuel

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *