NFC – Récupérer les clés d’un dump mfoc

Salut à tous,

Pardonnez moi pour l'article qui va suivre, promis, je relirais les fautes ... mais là il est 23h30, et après une petite chicha et quelques verres de Wisky Coca ... Youhouuuu ... je n'ai plus trop les yeux en face des trous ..

Bon comme vous le savez, j'adore bidouiller, et chercher à faire des trucs coool :)
Et en ce qui concerne les trucs cool c'est vraiment par période, et là je reviens un peu sur ma période NFC que j'ai lachement délaissé, au détriment d'Android, puis de mes projets de proxy, de chiffrement ...

 

Alors avec des collègues nous avions commandé une puce NFC avec le bloc 0 disponible en écriture ... du chinois quoi ...

 

J'avais pour projet de by-passer la sécurité d'une machine qui se fiait de prime abord a l'UID (l'identifiant de la puce NFC) avant de s'interroger au contenu de celle-ci :)

 

Cette puce a fini par arriver ... au bout de 3 mois !

 

Et donc j'avais fais quelques dumps des puces NFC officielle.
(Celle qui fonctionne sur la dite machine)

 

Mais bon comme vous le savez, pour faire un dump d'une puce NFC dont les "clés" de sécurité des "blocs" ne sont pas celle pas défaut, on utilise des outils comme mfoc ou mfcuk, qui sont long ... très long
(Petit rappel : une puce NFC dispose de 12 blocs, protégés pour chacun par 2 clés).

 

Dans mon cas, 3 blocs sont sécurisés ...

Aussi, pour faire le dump, MFOC devra bruteforcer ces 3 blocs ... et ça met parfois beaucoup de temps ...

Alors pour gagner du temps, MFOC propose d'ajouter vos propres clés, pour aller plus vite (vu qu'il "bruteforce" avec une liste de clé)

Dans mon cas, je n'avais que des vieux dumps, et vu que le contenu de la puce NFC que je souhaite cloner évolue, et que je n'avais pas pensé à l'époque, lorsque je les avais réalisé à noter quelques parts les clés ... je me suis retrouver comme une andouille à devoir repasser à la moulinette de MFOC ....

 

Mais bon ... en fait, en cherchant un peu, durant l'interminable traitement de MFOC, j'ai fini, par trouver où ces clés sont stockées ... dans le dump.
Mais pour cela, il faut savoir comment ça fonctionne :

 

Votre puce NFC est composé de 12 blocs, protégé pour chacun, par 2 clés, une clé A et une clé B
Voici un visuel que je vous ai concocté :

 

Screenshot - 01092015 - 22:45:57

 

En rouge, les clés A et en vert, les clés B.
Entre chaque, il y a 3 lignes, rempli pour la plupart de 0000000000 .... , ce sont les données ! Et les 0000 c'est du vide, en gros, de la place pour rajouter des données si le cœur vous en dit.
Pour être encore plus précis, voici une jolie image que j'ai récupéré et qui illustre la chose :

 

Memory_large

 

 

Pour obtenir un dump d'un composant nfc si vous ne connaissez pas les clés, il vous faut utiliser l'outils MFOC de la manière suivante :

mfoc -O DumpDeVotrePuceNFC

 

MFOC réalisera ensuite un dump de votre puce NFC, en testant tout un paquet de clés par défaut ... ça peu être très rapide comme tréééés loooong ...

 

Et nous allons voir comment une fois le premier dump réalisé, vous pouvez accélérer les prochains

 

Une fois votre dump terminé :
Ce qui est notre cas, car les dumps avaient été réalisés quelques mois auparavant.
Il vous faut ouvrir le fichier de dump

vim DumpDeVotrePuceNFC

Une fois dans ce fichier "binaire", vous allez taper

:%!xxd

 

Et là magie vous obtiendrez un écran similaire à celui que je vous avais présenté un peu plus haut dans l'article.

 

Il vous faudra alors maintenant récupérer toutes les clés A et B selon votre besoin ...
mfoc vous dira plus ou moins lesquelles ... (si vous le lancez sans paramètre - cf. commande mfoc un peu plus haut)

Mifare-Classic-Offline-Cracker-MFOC

Dans le cas de cette image, on vois qu'il y a 4 clés que MFOC n'arrive pas à trouver.
Mais dans mon cas j'ai eu juste besoin des clés B des 3 premiers secteurs alias "Block" (cf. ma capture ci-dessus)

 

Aussi, si mfoc parvient à vous faire un dump, et que quelques temps plus tard vous devez refaire une copie et que vous ne voulez pas attendre 100 ans qu'MFOC trouve les clés Inconnues.

Il vous suffira de réouvrir le fichier de dump, et de récupérer les clés.
Ensuite, vous pourrez lancer pour vos prochains dump une commande du style :

mfoc -O MonDump -k CLE_A_1

-k CLE_B_1 -k CLE_B_2

Attention, vos clés, contrairement à la capture d'écran "Hexa", doivent être indiquée sans les espaces.

Pour un exemple plus parlant :

mfoc -O dumpNFC.mfd -k 3b2a07b661d0 -k 0b1b2b3b4b5 -k e7e95974e31f

24 comments

  • Salut je suis intéressé par ton études, je voudrais bien que nous prenions contact afin que je te donne certaine info et que toi aussi tu m’en donne. Je cherche en effet une personne qui s’intéresse à cette technologie afin que nous puissions faire des projets ensemble. Contactez moi sur facebook (Valour Valentin) ou mon email [email protected].
    Il sera possible de mettre au point de nouveau projet car mon aussi je m’intéresse au bidouillage
    Merci

  • Salut à toi Valentin ;)

    Flatté que mon article t’intéresse.
    Je t’ai envoyé une invitation Facebook sur le groupe « Coffee Dev ».
    Nous pourrons échanger depuis ce groupe ;)
    Si tu préfères un contact plus privé, je suis également dispo sur l’adresse email affiché sur cette page (anti – spam)
    https://dyrk.org/contact/

    • Salut,

      Quand tu dis que c’est tres long pour forcer une clé, tu parle de 1 heure, 10 heures ou plus ?

      Si on crée un badge en modifiant avec soin toutes les clés tu pourras toujours casser les clés ?

      Tu as une solution pour durcir le cryptage ?

      Merci

  • Une grand merci.
    Ma carte fonctionne nickel.
    C’est un badge pour la machine de model Necta.
    Il me reste a trouver comment décrypter mon image DUMP afin de pouvoir recharger le crédit simplement en modifiant le code Hexa dans le fichier DUMP.
    Ci vous avez une idée ?

  • Hello,
    J’ai le meme soucis, Mfoc n’arrive pas a retrouver la clé B pour le secteur 1-2-3 et mfcuk tourne en rond sans rien trouver non plus sur une carte selecta.
    Est-ce que quelqu’un sait s’il s’agit d’un changement de carte ? une nouvelle securité ? Ou juste je se sais pas le faire correctement ?

  • Des nouvelles cartes avec un nouveau chip RNG sont à présent dispo. Comme mfoc exploite une faiblesse de ces chips (qui donnai toujours les même génération de chiffre)…. J’ai bien peur qu’il ne soit plus possible de dumper ces cartes.
    Il est bien normal que les failles soient fixées !!!

  • Idem j’ai laissé tourner mfcuk pendant 24h (!) sans aucun résultat sur une clé de machine à boissons sans résultat idem avec mfoc.

  • Bonjour,

    Merci pour le post très intéressant et très complet.

    Personnellement, j’ai réussi à décrypter mon badge d’origine et à le ré-écrire sur un badge chinois.
    Mais j’ai un soucis, le nouveau badge fonctionne mais plus le badge d’origine.
    En faisant, une nouvelle copie sur un 3eme badge en partant du dump d’origine, le denier badge fonctionne mais pas les 2 premiers.
    Ce comportement me semble très bizarre.

    Pour information, le badge d’origine est un intratone et la badgeuse ressemble à cela (https://www.intratone.fr/media/interphonevideointracodezamak__026220000_1131_05052017.jpg)

    Je me permets aussi de rajouter une astuce sur le tuto, que je n’ai pas vu dans beaucoup de site.
    C’est la possibilité de rajouter un fichier de clé aux clé par défaut lors de la commande mfoc
    mfoc -P 500 -F key.file -O badge.dump
    On peut trouver des fichiers tout fait sur github et cela permet de trouver les clés en quelques minutes au lieu de plusieurs heures pour moi.

    Merci d’avance pour votre aide pour mon problème.

    • Salut benny, jai eu le même soucis que toi, mon badge d’origine ne fonctionnait plus après une copie sur une carte chinoise, est ce que ta pu trouver quelque chose depuis ?

      • Bonjour

        à priori, il faut un badge réinscriptible une seule fois, car intratone vérifie si le badge est réinscritible en envoyant une commande 0x40. Si c’est réinscritible , le badge copié ne marche pas. les badges chinois réinscriptibles une seule fois s’appellent des badges FUID. voir ici : badge-vigik-selecta-copie.fr/index.php/bienvenue-sur-le-forum/badge-vigik/23-original-intratone-ne-fonctionne-plus

        Sinon pour les personnes utilisant windows 10 64 bits, j’ai cross compilé les différents outils mfoc, mfcuk, bs_cropto, nfc-list, nfc-mfc classic pour windows, voir sur mon blog ici : legacy.averbouch.biz/libnfc-and-nfc-utils-binaries-on-windows-10/

  • Pour benny26:

     

     

     

    J’ai lu un autre article qui explique le système anticopie d’Intratone qui correspond parfaitement à ce que tu décrit.

    regarde ce lien:

     

    https://badge-vigik.fr/forum/viewtopic.php?t=5

  • Bonjour,

    Je suis interesse par un dump d’une clef servant sur les machines pelican rouge. (On a une machine mais pas de clef…). J »ai sur moi un dump selecta si vous voulez.

    • Salut SYLER,

      Je suis intéresse par les clés du dump selecta stp :) tu pourrais les mettres dans un com ou partager le Dump sur un lien ?

      Merci d’avance

       

    • Bonjour je suis intéresse par ton dump sélecta si tu peux me l’envoyer stp , merci

    • Salut Syler,

      désolé je viens un peu après la guerre mais je serai trés intéréssé par une de tes dump pour les machines selecta.

      Si cela te déranges pas de m’en faire part ça serait super sympa!

      Merci d’avance

      Ikay

       

       

  • nfc-mfclassic ne fonctionne pas pour cloner un fichier dont la ‘Key B’ a été decodée via une clé B identifiée ‘mfoc -O carte_origine.mfd -k 415a54454b4d’
    j’ai essayé plusieurs options
    nfc-mfclassic W a u
    nfc-mfclassic W b u
    nfc-mfclassic W A B
    je n’arrive pas à faire copier les block qui sont codés avec la key B..; quand le clonage des 64 block est terminé, il n’y a que les valeurs codées avecf la Key A….
    Comment faire pour indiquer l’utilisation de la KEY B [415a54454b4d] ?
    Merci

    • Bonsoir,

      la réponse est tardive mais peut reser utile. Il suffit mettre la clef_B à la suite de la clef A : mfoc -k clef_A 1 -k Clef_B -P 500 -O cartesource.dmp pour enregistrer la carte à cloner.

      Puis nfc-mfclassic W a b carte_source.dmp carte_cible.dmp

      et cela devrait fonctionner.

      Bon amusement

      • Bonjour

        Je suis désolé, mais je reprends ce fil, qui date…

        J’ai exactement le même souci, je n’arrive visiblement pas à écrire tous les blocs liés à la clé B.

        Si j’ai bien compris la commande

        nfc-mfclassic W a b carte_source.dmp carte_cible.dmp

        Elle prend les clés se trouvants dans le Dump de la carte cible, pour écrire les nouvelles de la carte source, ainsi que les données du bloc.

        Est ce cela ?, par conséquent pourquoi est ce que les zones à écrire avec les clés B (cassées) ne fonctionne pas.

        Je me demande si il n’y a pas un fichier de type « Keyfile » dans lequel les nouvelles clés pourraient être rajoutées ?

        Cordialement

        Alain

         

  • Bonjour, si on veux faire un dump d un clone sur carte chinoise c’est possible ? Moi ça tourne dans le vide .

  • Bonjour à tous je n’arrive pas à cloner ma clé j’ai le secteur 0 ,12,13,14,15 qui est erreur et 12,13,14,15 et presque vierge comment faire décryptage si c’est possible merci

  • Salut, et merci pour cette article très intéressant.

    Peut faire une chose similaire avec les forfaits de ski ?

    Copier les tags d’une carte de forfait de ski, et les transférer sur une carte vierge ?!

    Problème, entre chaque passage au tourniquet avant une remontée mécanique il y a un temps.

    Est ce possible de trouver ce temps et de l’inhibition ou de le réduire à 1Sec par exemple.

    Et est-ce possible de changer aussi le numéro d’id de la puce ??

    Merci pour les réponses ou si certaine personnes l’on déjà expérimenté.

Laisser une réponse

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

Ce site est protégé par reCAPTCHA et le GooglePolitique de confidentialité etConditions d'utilisation appliquer.