La première chose dont vous avez besoin est d'un [**Proxmark3**](https://proxmark.com) et d'**installer le logiciel et ses dépendances** (https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
Il a **16 secteurs**, chacun d'eux a **4 blocs** et chaque bloc contient **16B**. L'UID est dans le secteur 0 bloc 0 (et ne peut pas être modifié).\
Pour accéder à chaque secteur, vous avez besoin de **2 clés** (**A** et **B**) qui sont stockées dans **le bloc 3 de chaque secteur** (secteur de la remorque). Le secteur de la remorque stocke également les **bits d'accès** qui donnent les autorisations de **lecture et d'écriture** sur **chaque bloc** en utilisant les 2 clés.\
2 clés sont utiles pour donner des autorisations de lecture si vous connaissez la première et d'écriture si vous connaissez la deuxième (par exemple).
Le Proxmark3 permet d'effectuer d'autres actions telles que l'**écoute** d'une **communication Tag-Lecteur** pour essayer de trouver des données sensibles. Dans cette carte, vous pouvez simplement renifler la communication et calculer la clé utilisée car les **opérations cryptographiques utilisées sont faibles** et en connaissant le texte en clair et le texte chiffré, vous pouvez le calculer (outil `mfkey64`).
Les systèmes IoT utilisent parfois des **étiquettes non marquées ou non commerciales**. Dans ce cas, vous pouvez utiliser le Proxmark3 pour envoyer des **commandes brutes personnalisées aux étiquettes**.
Avec cette information, vous pouvez essayer de rechercher des informations sur la carte et sur la manière de communiquer avec elle. Proxmark3 permet d'envoyer des commandes brutes telles que : `hf 14a raw -p -b 7 26`
Le logiciel Proxmark3 est livré avec une liste préchargée de **scripts d'automatisation** que vous pouvez utiliser pour effectuer des tâches simples. Pour récupérer la liste complète, utilisez la commande `script list`. Ensuite, utilisez la commande `script run`, suivie du nom du script :
Vous pouvez créer un script pour **fuzzer les lecteurs de tags**, en copiant les données d'une **carte valide**, il suffit d'écrire un **script Lua** qui **randomise** un ou plusieurs **octets aléatoires** et vérifie si le **lecteur plante** avec chaque itération.