Page cover

💳Clonar tarjeta de transporte

En este ejemplo atacaremos una tarjeta de transporte un poco más segura para comprobar su seguridad y si seríamos capaces de clonarla.


Atacando tarjeta de transporte

Comprobación inicial

Vemos que esta tarjeta de transporte es una Es una MIFARE Plus S 1K Generation 1, mucho más segura que las tradicionales MIFARE Classic 1K.

MIFARE Plus tiene tres modos de seguridad:

  • Modo 1: Compatibilidad con Classic (débil)

  • Modo 2: Seguridad mejorada

  • Modo 3: Seguridad avanzada (AES)

Obtener más info de la tarjeta

Tenemos información crucial: MIFARE Plus en modo SL1 (Security Level 1). Esto significa:

SL1 = Compatibilidad con MIFARE Classic - pero con algunas protecciones adicionales.

Buenas Noticias:

  • ✅ Debería ser compatible con ataques MIFARE Classic

Malas Noticias:

  • ❌ El PRNG es más seguro (por eso nested/darkside no funcionan)

  • ❌ Las claves pueden ser únicas

Comprobar claves por defecto

Vemos que no hemos conseguido extraer ninguna clave, por lo que empezaremos a intentar extraerlas con distintos ataques.

Ataque Autopwn con default keys

Solamente nos ha encontrado una clave válida, pero nos sirve para encadenarlo con otros ataques.

También podríamos probar con otros diccionarios que tenemos al instalar pm3 en la siguiente ruta:

Ataque Hardnested con una clave válida

Usaremos la clave A del bloque 11 que hemos descubierto:

Si el ataque Nested falla, pasamos al Hardnested

Ataque Autopwn con dos claves válidas

Vemos que el autopwn solo confirmó las claves que ya tenía pero no encontró nuevas. Dado que tenemos una MIFARE Plus (más segura), necesitamos estrategias diferentes.

Analizar los sectores completos descubiertos

Sector 0
Sector 2

Aquí observamos lo siguiente:

Sector 0

  • Bloque 0: Contiene UID 54 21 88 B0 + datos "AP" (posiblemente identificación de aplicación)

  • Bloque 1: Datos con timestamp F0 92 54 A6 + referencia "O"

  • Bloque 2: Datos que parecen contadores o valores (63 00 70 33)

  • Configuración: Key B deshabilitada, acceso de solo lectura para datos

Sector 2

  • Bloque 8: Datos de configuración con referencia E4 4F 03 0A

  • Bloque 9: Vacío (posiblemente espacio no usado)

  • Bloque 10: Contiene valor 01 00 80 2E (posible saldo o contador)

  • Configuración: Idéntica al sector 0

Patrones Detectados

  1. Misma configuración de seguridad en ambos sectores

  2. Key B deshabilitada en ambos (patrón de seguridad débil)

  3. Bytes de acceso idénticos (78 77 88 69)

  4. Estructura similar: 3 bloques de datos + 1 bloque de control

Posible Uso

  • Sector 0: Datos maestros/identificación

  • Sector 2: Datos transaccionales o de aplicación específica

  • Podría ser un sistema de control de acceso o pago

Los datos recuperados son limitados pero muestran una estructura consistente, aunque la mayoría de la tarjeta permanece segura.


Resumen Final de la Auditoría

Resultados Obtenidos

✅ Sectores Recuperados:

  • Sector 0: Clave A = F6E89721B60B

  • Sector 2: Clave A = 749934CC8ED3

🔍 Análisis de Seguridad:

  • MIFARE Plus S 1K en modo SL1 (compatibilidad Classic)

  • Mismo patrón de acceso en ambos sectores: 78 77 88 69

  • Key B deshabilitada en ambos sectores (000000000000)

  • Configuración de acceso consistente pero segura

📈 Efectividad del Ataque:

  • 12.5% de la tarjeta comprometida (2 de 16 sectores)

  • 87.5% permanece seguro (14 sectores no recuperables)

Evaluación de Seguridad

Puntos Fuertes de la Tarjeta

  • MIFARE Plus con PRNG mejorado

  • Claves únicas no en diccionarios

  • Prevención de ataques nested/darkside

Puntos Débiles Identificados

  • 2 sectores con claves recuperables

  • Key B deshabilitada (configuración común pero riesgosa)

  • Mismo patrón de bytes de acceso

Recomendaciones

Para el propietario de la tarjeta

  • Considerar reemplazar por MIFARE Plus en modo SL3 (AES)

  • Rotar claves periódicamente

  • Usar Key B con claves fuertes

Para el auditor

  • La tarjeta tiene buena resistencia contra ataques estándar

  • Los sectores recuperados podrían contener información útil

  • Considerar ataques side-channel para sectores restantes


Última actualización

¿Te fue útil?