// 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.
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
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).
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
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.
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:
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ística | MIFARE Classic (Gimnasio) | DESFire EV1 (Madrid) |
|---|---|---|
| Cifrado | CRYPTO1 (Roto/Obsoleto) | 3DES/AES (Robusto) |
| Acceso | Llaves de fábrica (FFFF...) | Llaves diversificadas por emisor |
| Privacidad | Cualquiera puede leer/volcar todo | Nadie puede leer sin autenticación |
| Tiempo de Compromiso | < 2 segundos | Inviable sin llaves |
| Veredicto | Insegura. 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