// INFORME: Auditoría de Control de Accesos RFID/NFC

// PROYECTO: Análisis Criptográfico con Proxmark3

// EQUIPAMIENTO: Proxmark3 Easy / Firmware Iceman

// ESTADO: Vulnerabilidades Críticas Identificadas

0x01: La Ilusión de Seguridad en RFID

Durante años, he observado cómo las organizaciones confían ciegamente en tarjetas RFID para proteger sus perímetros físicos. 

La realidad es brutal: la mayoría de estos sistemas son tan seguros como una puerta con la llave bajo el felpudo.

En esta práctica de auditoría, he deconstruido dos ecosistemas completamente opuestos: una tarjeta de gimnasio basada en MIFARE Classic (el estándar vulnerable) y una tarjeta de transporte público de Madrid con chip DESFire EV1 (arquitectura robusta). 

Los resultados son reveladores.

0x02: Preparación del Arsenal - Proxmark3

Antes de lanzar cualquier ataque, la integridad del hardware es crítica. 

Un Proxmark3 mal sintonizado es como intentar descifrar un mensaje con ruido blanco de fondo.

>> Flasheo del Firmware Iceman

Utilicé ProxSpace v3.11 para cargar la rama Iceman/master, necesaria para ejecutar ataques de computación intensiva como Hardnested.

# Comando de flasheo
proxmark3 [port] --flash --image fullimage.elf

MCU Detectada: AT91SAM7S512 (512KB Flash) - Requisito indispensable para soportar diccionarios extensos y ataques avanzados.

>> Sintonización de Antenas (hw tune)

El comando hw tune mide la resonancia de las antenas para garantizar voltajes óptimos sin generar ruido excesivo.

// RESULTADOS DE SINTONIZACIÓN


LF Antenna: 22.25V (Óptimo > 20V) 

HF Antenna: 61.99V (Extremadamente alto, Óptimo > 15V) 

INCIDENCIA TÉCNICA

El exceso de voltaje en la antena HF (~62V) provocó inicialmente saturación en los chips MIFARE, impidiendo su lectura a corta distancia. 

Se resolvió aplicando la "Técnica del Francotirador": alejar la tarjeta 3-4 cm del lector para reducir el acoplamiento magnético.

0x03: Caso 1 - Tarjeta de Gimnasio (MIFARE Classic 1K)

Esta tarjeta representa el modelo de "Ilusión de Seguridad", donde la validación se basa exclusivamente en el UID público.

>> Identificación y Fingerprinting

[usb] pm3 --> hf search

UID: 72 56 E8 E2
ATQA: 00 04
SAK: 08 [2]
Possible types: MIFARE Classic 1K
Prng detection: weak 

El flag Prng detection: weak es la sentencia de muerte. 

Indica que el generador de números aleatorios es vulnerable a ataques de predicción.

>> Ataque Automatizado (autopwn)

Ejecuté el comando hf mf autopwn que combina ataque de diccionario + nested attack.

// RESULTADO DEL ATAQUE


  • Todas las llaves recuperadas en < 2 segundos
  • 16 sectores comprometidos
  • Todas las llaves eran FFFFFFFFFFFF (llaves de fábrica)

HALLAZGO CRÍTICO

El uso de llaves de fábrica (FFFF...) indica negligencia absoluta en la configuración del sistema. 

Mediante hf mf dump, confirmé que la tarjeta no contenía datos de usuario. 

El torno de acceso solo valida el UID público, que se transmite en texto claro durante la fase de anticolisión ISO14443A.

>> Clonación Táctica con Magic Card

Para validar la vulnerabilidad, cloné el UID en una Magic Card Gen2 (tarjeta regrabable que permite modificar el Bloque 0).

# Clonación del UID
hf mf csetuid -u 7256E0E2

# Verificación
hf search
New UID: 72 56 E0 E2 

Resultado: El clon es funcional. El sistema de acceso no tiene capacidad para distinguir entre el chip original y el emulado debido a la falta de autenticación en sectores de datos.

0x04: Caso 2 - Tarjeta de Madrid (DESFire EV1)

Esta tarjeta representa la arquitectura de seguridad robusta basada en estándares criptográficos reales (3DES/AES). 

Aquí es donde las cosas se ponen interesantes.

>> Análisis Avanzado con DESFire

[usb] pm3 --> hf mfdes info

Algoritmo: 2TDEA (Triple DES de dos llaves)
Aplicación detectada: 010000
Emisor: Consorcio Regional de Transportes de Madrid (CRTM)

>> Explotación de Fugas de Información

Aunque el sistema es robusto, descubrí que permite listar IDs de archivos sin autenticación.

[usb] pm3 --> hf mfdes getfileids --aid 010000 --no-auth

File ID: 00
File ID: 01
File ID: 02

File ID: 0b

Total: 12 archivos internos detectados

Sin embargo, al intentar leer el contenido de los archivos falla:

[usb] pm3 --> hf mfdes read --aid 010000 --fileno 01 --no-auth

Desfire ReadFile command error. Result: -20
File needs communication mode encrypt
File needs to be authenticated with key 0x02 or 0x04

// ANÁLISIS TÉCNICO DEL FALLO


Modo de Comunicación: Full Encrypted

Requisito: Llave AES/3DES válida para descifrado

Derechos de Acceso: 2440 (r: key 0x02 | w: key 0x04)

Los datos viajan cifrados de extremo a extremo. Sin la llave correcta, la información es inaccesible. 

Esto contrasta brutalmente con MIFARE Classic.

0x05: Matriz Comparativa de Seguridad

CaracterísticaMIFARE Classic (Gimnasio)DESFire EV1 (Madrid)
CifradoCRYPTO1 (Roto/Obsoleto)3DES/AES (Robusto)
AccesoLlaves de fábrica (FFFF...)Llaves diversificadas por emisor
PrivacidadCualquiera puede leer/volcar todoNadie puede leer sin autenticación
Tiempo de Compromiso< 2 segundosInviable sin llaves
VeredictoInsegura. Vulnerable a clonación.Segura. Incopiable con tecnología actual.

0x06: Vectores de Ataque Documentados

Durante la auditoría, identifiqué y documenté los siguientes vectores de ataque aplicables a MIFARE Classic:

// ARSENAL DE ATAQUES CRIPTOGRÁFICOS


1. Ataque Darkside

  • Condición: Ninguna llave conocida
  • Comando: hf mf darkside
  • Explota fugas de información en códigos de error (NACK) y debilidades del PRNG

2. Ataque Nested

  • Condición: Al menos una llave conocida
  • Comando: hf mf nested 1 0 A [KEY]
  • Aprovecha la predictibilidad de nonces para deducir llaves restantes en segundos

3. Ataque Hardnested

  • Condición: PRNG robusto (MIFARE Classic EV1)
  • Comando: hf mf hardnested
  • Requiere recolección de 1600-2200 nonces para análisis estadístico de bits de paridad

0x07: Comandos Esenciales de Proxmark3

Para cualquier auditor que quiera replicar esta práctica, estos son los comandos críticos que debes dominar:

>> Comandos de Hardware

  • hw version # Verifica firmware y hardware
  • hw status # Reporta voltajes y estado de batería
  • hw tune # Mide resonancia de antenas (CRÍTICO)

>> Comandos de Alta Frecuencia (HF - 13.56MHz)

  • hf search # Identifica etiquetas HF automáticamente
  • hf mf chk *1? t # Ataque de diccionario contra todos los sectores
  • hf mf autopwn # Ataque automatizado (diccionario + nested)
  • hf mf dump # Volcado completo de memoria a archivo
  • hf mfdes info # Información de tarjetas DESFire
  • hf mfdes getfileids --aid [AID] --no-auth # Lista archivos sin autenticación

>> Comandos de Baja Frecuencia (LF - 125kHz)

  • lf search # Busca e identifica protocolos LF
  • lf em 410x read # Lee ID de tarjeta EM4100
  • lf em 410x clone --id [ID] # Clona ID en T5577
  • lf hid read # Lee tarjeta HID Prox 
  • lf t55xx wipe # Borra tarjeta T55xx regrabable

0x08: Recomendaciones de Defensa (Blue Team)

Como analista, mi responsabilidad no termina en la explotación. 

Aquí están las contramedidas que todo administrador de seguridad física debe implementar:

// ESTRATEGIAS DE MITIGACIÓN


1. Migración Tecnológica

  • Abandonar MIFARE Classic en favor de DESFire EV3
  • Implementa autenticación mutua y firmas de lectura única (SUN)

2. Diversificación de Llaves

  • Eliminar llaves de fábrica (FFFF...)
  • Generar llaves únicas por tarjeta derivadas de: Key = AES(MasterKey, UID || AID)

3. Protocolos de Comunicación

  • Sustituir interfaz Wiegand (texto claro) por protocolo OSDP cifrado
  • Evita sniffing de datos entre lector y panel de control

4. Validación Robusta

  • NUNCA validar solo el UID (se transmite en texto claro)
  • Exigir autenticación en sectores de datos cifrados

VERDAD TÉCNICA INELUDIBLE

Confiar exclusivamente en la validación del UID es una "Ilusión de Seguridad"

El UID se transmite durante la fase de anticolisión (ISO14443A) totalmente en claro, antes de que cualquier cifrado o autenticación comience. 

Un sistema que solo valida este identificador es, por definición, un sistema ya comprometido.

0x09: Lecciones Aprendidas

Esta auditoría me ha enseñado que la seguridad física no es un producto que se compra, sino una arquitectura que se diseña. 

Las organizaciones que confían en tecnología obsoleta como MIFARE Classic están operando bajo una falsa sensación de protección.

La diferencia entre la tarjeta del gimnasio (comprometida en 2 segundos) y la tarjeta de Madrid (resistente a ataques sin llaves) es abismal. 

No se trata de suerte, se trata de decisiones de diseño criptográfico.

El Proxmark3 no es solo una herramienta de ataque, es un instrumento de auditoría que revela la verdad sobre la seguridad de nuestros sistemas. 

"Y esa verdad, a menudo, es incómoda."

// PRÓXIMOS PASOS


  • ¿Análisis de chips Fudan FM11RF08S y backdoors universales?
  • ¿Ataques avanzados con ChameleonUltra (sniffing de nonces)?
  • ¿Auditoría de protocolos Wiegand vs OSDP?

"La capa física no perdona errores de configuración. El UID es público, la seguridad debe estar en los datos cifrados."


"Security through obscurity is not security. Security through cryptography is."

[ EOF ] 2DevNullPoisonXploit