Pentesting RFID
Reading time: 12 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
Introduction
Identification par radiofréquence (RFID) est la solution radio courte portée la plus répandue. Elle est généralement utilisée pour stocker et transmettre des informations identifiant une entité.
Une étiquette RFID peut disposer de sa propre source d'alimentation (active), comme une batterie intégrée, ou recevoir son alimentation de l'antenne de lecture via le courant induit par les ondes radio reçues (passive).
Classes
EPCglobal divise les tags RFID en six catégories. Un tag dans chaque catégorie possÚde toutes les capacités listées dans la catégorie précédente, ce qui le rend rétrocompatible.
- Class 0 : tags passifs qui fonctionnent dans les bandes UHF. Le fabricant les préprogramme à l'usine. En conséquence, vous ne pouvez pas modifier les informations stockées dans leur mémoire.
- Class 1 : peuvent aussi fonctionner dans les bandes HF. De plus, ils peuvent ĂȘtre Ă©crits une seule fois aprĂšs la production. Beaucoup de tags Class 1 peuvent aussi traiter des cyclic redundancy checks (CRCs) des commandes qu'ils reçoivent. Les CRCs sont quelques octets supplĂ©mentaires Ă la fin des commandes pour la dĂ©tection d'erreurs.
- Class 2 : tags pouvant ĂȘtre réécrits plusieurs fois.
- Class 3 : peuvent contenir des capteurs intégrés qui enregistrent des paramÚtres environnementaux, comme la température actuelle ou le mouvement du tag. Ces tags sont semi-passifs, car bien qu'ils disposent d'une source d'alimentation intégrée, comme une pile, ils ne peuvent pas initier de communication sans fil avec d'autres tags ou lecteurs.
- Class 4 : peuvent initier la communication avec d'autres tags de la mĂȘme classe, ce qui en fait des tags actifs.
- Class 5 : peuvent fournir de l'énergie à d'autres tags et communiquer avec toutes les classes précédentes. Les Class 5 peuvent agir comme lecteurs RFID.
Informations stockées dans les tags RFID
La mĂ©moire dâun tag RFID contient gĂ©nĂ©ralement quatre types de donnĂ©es : les donnĂ©es dâidentification, qui identifient lâentitĂ© Ă laquelle le tag est attachĂ© (ces donnĂ©es incluent des champs dĂ©finis par lâutilisateur, comme des comptes bancaires) ; les donnĂ©es supplĂ©mentaires, qui fournissent des dĂ©tails complĂ©mentaires sur lâentitĂ© ; les donnĂ©es de contrĂŽle, utilisĂ©es pour la configuration interne du tag ; et les donnĂ©es fabricant, qui contiennent lâIdentifiant Unique (UID) du tag et des dĂ©tails concernant la production, le type et le vendeur du tag. Vous trouverez les deux premiers types de donnĂ©es dans tous les tags commerciaux ; les deux derniers peuvent varier selon le vendeur du tag.
La norme ISO spĂ©cifie la valeur Application Family Identifier (AFI), un code qui indique le type dâobjet auquel le tag appartient. Un autre registre important, Ă©galement spĂ©cifiĂ© par l'ISO, est le Data Storage Format Identifier (DSFID), qui dĂ©finit lâorganisation logique des donnĂ©es utilisateur.
La plupart des mécanismes de sécurité RFID restreignent les opérations de lecture ou d'écriture sur chaque bloc de mémoire utilisateur et sur les registres spéciaux contenant les valeurs AFI et DSFID. Ces mécanismes de verrouillage utilisent des données stockées dans la mémoire de contrÎle et ont des mots de passe par défaut préconfigurés par le vendeur, mais permettent aux propriétaires des tags de configurer des mots de passe personnalisés.
Comparaison tags basse & haute fréquence
.png)
Low-Frequency RFID Tags (125kHz)
Les tags basse frĂ©quence sont souvent utilisĂ©s dans des systĂšmes qui ne nĂ©cessitent pas une haute sĂ©curitĂ© : accĂšs aux bĂątiments, interphones, cartes d'abonnement de salle de sport, etc. En raison de leur portĂ©e plus importante, ils sont pratiques pour les parkings payants : le conducteur n'a pas besoin d'approcher la carte du lecteur, car elle est dĂ©tectĂ©e depuis plus loin. En mĂȘme temps, les tags basse frĂ©quence sont trĂšs primitifs et ont un faible dĂ©bit de transfert de donnĂ©es. Pour cette raison, il est impossible d'implĂ©menter des Ă©changes complexes bidirectionnels pour des fonctions comme la gestion de solde et la cryptographie. Les tags basse frĂ©quence ne transmettent que leur court ID sans aucun moyen d'authentification.
Ces dispositifs reposent sur la technologie RFID passive et opĂšrent dans une plage de 30 kHz Ă 300 kHz, bien qu'on utilise plus couramment 125 kHz Ă 134 kHz :
- Longue portĂ©e â une frĂ©quence plus basse se traduit par une portĂ©e plus Ă©levĂ©e. Il existe des lecteurs EM-Marin et HID capables de fonctionner jusqu'Ă un mĂštre. Ils sont souvent utilisĂ©s dans les parkings.
- Protocole primitif â Ă cause du faible dĂ©bit, ces tags ne peuvent transmettre que leur court ID. Dans la plupart des cas, les donnĂ©es ne sont pas authentifiĂ©es et ne sont protĂ©gĂ©es d'aucune façon. DĂšs que la carte est dans la portĂ©e du lecteur, elle commence simplement Ă transmettre son ID.
- Faible sĂ©curitĂ© â Ces cartes peuvent ĂȘtre facilement copiĂ©es, ou mĂȘme lues depuis la poche de quelqu'un d'autre en raison de la primitivitĂ© du protocole.
Protocoles populaires Ă 125 kHz :
- EM-Marin â EM4100, EM4102. Le protocole le plus populaire dans la CEI. Peut ĂȘtre lu Ă environ un mĂštre grĂące Ă sa simplicitĂ© et sa stabilitĂ©.
- HID Prox II â protocole basse frĂ©quence introduit par HID Global. Ce protocole est plus populaire dans les pays occidentaux. Il est plus complexe et les cartes et lecteurs pour ce protocole sont relativement coĂ»teux.
- Indala â trĂšs ancien protocole basse frĂ©quence introduit par Motorola, puis acquis par HID. Vous ĂȘtes moins susceptible de le rencontrer dans la nature comparĂ© aux deux prĂ©cĂ©dents car il dĂ©cline.
En rĂ©alitĂ©, il existe beaucoup plus de protocoles basse frĂ©quence. Mais ils utilisent tous la mĂȘme modulation sur la couche physique et peuvent ĂȘtre considĂ©rĂ©s, d'une maniĂšre ou d'une autre, comme des variantes de ceux listĂ©s ci-dessus.
Attaque
Vous pouvez attaquer ces Tags avec le Flipper Zero :
High-Frequency RFID Tags (13.56 MHz)
Les tags haute frĂ©quence sont utilisĂ©s pour des interactions lecteurâtag plus complexes lorsque vous avez besoin de cryptographie, d'un grand transfert de donnĂ©es bidirectionnel, d'authentification, etc.
On les trouve généralement dans les cartes bancaires, les transports publics et autres passes sécurisés.
Les tags haute fréquence 13.56 MHz sont un ensemble de standards et de protocoles. On les désigne souvent par NFC, mais ce n'est pas toujours exact. L'ensemble de protocoles de base utilisé aux niveaux physique et logique est ISO 14443. Les protocoles de niveau supérieur, ainsi que les standards alternatifs (comme ISO 19092), reposent sur celui-ci. Beaucoup de personnes appellent cette technologie Near Field Communication (NFC), un terme pour les dispositifs opérant sur la fréquence 13.56 MHz.
.png)
Pour faire simple, l'architecture NFC fonctionne ainsi : le protocole de transmission est choisi par la société fabricant les cartes et implémenté sur la base du bas niveau ISO 14443. Par exemple, NXP a inventé son propre protocole de transmission de haut niveau appelé Mifare. Mais au niveau inférieur, les cartes Mifare sont basées sur la norme ISO 14443-A.
Flipper peut interagir à la fois avec le protocole bas niveau ISO 14443, ainsi qu'avec le protocole de transfert de données Mifare Ultralight et EMV utilisé dans les cartes bancaires. Nous travaillons à ajouter le support de Mifare Classic et NFC NDEF. Un examen approfondi des protocoles et standards qui composent NFC mérite un article séparé que nous prévoyons de publier ultérieurement.
Toutes les cartes haute frĂ©quence basĂ©es sur la norme ISO 14443-A ont un identifiant de puce unique. Il sert de numĂ©ro de sĂ©rie de la carte, comme l'adresse MAC d'une carte rĂ©seau. GĂ©nĂ©ralement, lâUID fait 4 ou 7 octets, mais peut rarement aller jusqu'Ă 10. Les UID ne sont pas secrets et sont facilement lisibles, parfois mĂȘme imprimĂ©s sur la carte elle-mĂȘme.
De nombreux systĂšmes de contrĂŽle d'accĂšs se basent sur lâUID pour authentifier et accorder l'accĂšs. Parfois cela se produit mĂȘme lorsque les tags RFID supportent la cryptographie. Un tel mauvais usage les ramĂšne au niveau des simples cartes 125 kHz en termes de sĂ©curitĂ©. Les cartes virtuelles (comme Apple Pay) utilisent un UID dynamique afin que les propriĂ©taires de tĂ©lĂ©phone ne puissent pas ouvrir des portes avec leur application de paiement.
- Courte portĂ©e â les cartes haute frĂ©quence sont spĂ©cifiquement conçues pour devoir ĂȘtre placĂ©es prĂšs du lecteur. Cela aide Ă©galement Ă protĂ©ger la carte contre des interactions non autorisĂ©es. La portĂ©e maximale de lecture que nous avons pu atteindre Ă©tait d'environ 15 cm, et c'Ă©tait avec des lecteurs sur mesure Ă longue portĂ©e.
- Protocoles avancĂ©s â des dĂ©bits jusqu'Ă 424 kbps permettent des protocoles complexes avec un transfert bidirectionnel complet. Ce qui permet la cryptographie, le transfert de donnĂ©es, etc.
- Haute sĂ©curitĂ© â les cartes sans contact haute frĂ©quence n'ont rien Ă envier aux cartes Ă puce. Certaines cartes supportent des algorithmes cryptographiques robustes comme AES et implĂ©mentent la cryptographie asymĂ©trique.
Attaque
Vous pouvez attaquer ces Tags avec le Flipper Zero :
Ou en utilisant le proxmark :
MiFare Classic offline stored-value tampering (broken Crypto1)
Lorsque quâun systĂšme stocke un solde monĂ©taire directement sur une carte MiFare Classic, vous pouvez souvent le manipuler parce que Classic utilise le chiffrement obsolĂšte Crypto1 de NXP. Crypto1 est cassĂ© depuis des annĂ©es, permettant la rĂ©cupĂ©ration des clĂ©s de secteur et la lecture/Ă©criture complĂšte de la mĂ©moire de la carte avec du matĂ©riel courant (par ex., Proxmark3).
Flux de travail de bout en bout (abstrait) :
- Dump the original card and recover keys
# Attempt all built-in Classic key recovery attacks and dump the card
hf mf autopwn
Cela récupÚre généralement les sector keys (A/B) et génÚre un full-card dump dans le client dumps folder.
- Localiser et comprendre les value/integrity fields
- Effectuer des top-ups légitimes sur la carte originale et prendre plusieurs dumps (avant/aprÚs).
- Faire un diff des deux dumps pour identifier les blocks/bytes qui changent et qui représentent le solde ainsi que les champs d'intégrité.
- De nombreux déploiements Classic utilisent soit l'encodage natif "value block", soit leurs propres checksums (e.g., XOR du solde avec un autre champ et une constante). AprÚs modification du solde, recalculer les integrity bytes en conséquence et s'assurer que tous les duplicated/complemented fields sont cohérents.
- Ăcrire le dump modifiĂ© sur une Classic tag âChinese magicâ inscriptible
# Load a modified binary dump onto a UID-changeable Classic tag
hf mf cload -f modified.bin
- Cloner l'UID original pour que les terminaux reconnaissent la carte
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
hf mf csetuid -u <original_uid>
- Use at terminals
Les lecteurs qui font confiance au solde sur la carte et au UID accepteront la carte manipulée. Les observations de terrain montrent que de nombreux déploiements plafonnent les soldes en fonction de la largeur du champ (par ex., 16-bit fixed-point).
Remarques
- Si le systĂšme utilise des Classic value blocks natifs, souvenez-vous du format : value (4B) + ~value (4B) + value (4B) + block address + ~address. Toutes les parties doivent correspondre.
- Pour les formats personnalisés avec des checksums simples, l'analyse différentielle est la maniÚre la plus rapide pour dériver la fonction d'intégrité sans rétro-ingénierie du firmware.
- Seuls les tags UID-changeable ("Chinese magic" gen1a/gen2) permettent d'écrire le block 0/UID. Les cartes Classic normales ont des UIDs en lecture seule.
Pour des commandes Proxmark3 pratiques, voir :
Construire un cloneur mobile portable HID MaxiProx 125 kHz
Si vous avez besoin d'une solution longue-portée, alimentée par batterie pour récupérer des badges HID ProxŸ lors d'opérations red-team, vous pouvez convertir le lecteur mural HID MaxiProx 5375 en un cloneur autonome qui tient dans un sac à dos. Le guide complet mécanique et électrique est disponible ici :
Références
- https://blog.flipperzero.one/rfid/
- Let's Clone a Cloner â Part 3 (TrustedSec)
- NXP statement on MIFARE Classic Crypto1
- MIFARE security overview (Wikipedia)
- NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
HackTricks