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

Partagez ce contenu

11 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 val.le.sniper@live.fr.
    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.

Laisser une réponse

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