Ahora que ya hemos visto cómo funcionan estas tarjetas MIFARE Classic 1k en la primera parte de este artículo, y hemos visto cómo funciona la comunicación, el cifrado, y los tipos de ataques que se pueden realizar, vamos ahora a probar a lanzar el ataque Darkside con MFCUK contra un sector concreto y, si obtenemos alguna clave, lanzar posteriormente MFOC para obtener el resto de claves.
Figura 21: Hacking de tarjetas NFC: MIFARE Classic 1k (Parte 3 de 4)
Imagen Dall-e 2 “happy hacker in cyber punk art style”
En este ejemplo vamos a intentar averiguar la clave A del sector 0 (los parámetros -s y -S son delays, el -v es verbose y -C es para realizar la conexión del lector a la tarjeta).
Figura 22: mfcuk -C -R 0:A -s 250 -S 250 -v 5
Figura 23: Se consigue block 3 recovery key
Y ahora lanzaríamos MFOC como en la anterior parte de este artículo con esta clave concreta, utilizando el comando:
- mfoc -O dump.dmp -k a0a1a2a3a4a5
Si esta tarjeta tuviera el generador de números pseudo-aleatorios parcheado (PRNG “hardened”), ejecutaríamos MFOC-Hardnested. La herramienta es la misma que MFOC, intenta primero claves por defecto y posteriormente hace el ataque nested, pero podemos forzarle a que haga el ataque hardnested igualmente.
Figura 24: Ataque hardnested:
mfoc-hardnested -C -F -k a0a1a2a3a4a5
En la captura anterior se ve parte del proceso en el que realiza el proceso de autenticación muchas veces como ya hemos explicado (no nos confundamos, para el ataque
hardnested también hace falta al menos una clave conocida), como la conseguida anteriormente. Y finalmente:
Figura 25: Key Found
Una vez que tengamos todas las claves y podamos extraer toda la información de la tarjeta, podríamos clonarla haciendo un volcado de datos (dump) a un archivo y restaurándolo en otra tarjeta en la que se pueda escribir el ID (bloque 0 del sector 0). Es decir, hacer un clonado de la tarjeta. También podríamos hacer el dump de la tarjeta a modo de “backup” y poder restaurarlo cuando fuese necesario }:> O También podríamos investigar la información almacenada, qué significado o utilidad puede tener cada sector utilizado, utilizar la tarjeta y volver a hacer un dump para comparar sus diferencias y, de esta forma, ver qué campos han sido modificados, de qué forma, etcétera.
Eso ya queda fuera del alcance de este artículo como mínimo, ¡siempre podremos ir haciendo nuestro propio diccionario de claves con las que vayamos recopilando! Por supuesto, imaginaos todas las posibilidades si esta tarjeta es un monedero virtual en un sistema de vendings machines. Podríamos clonar tarjetas de e-money, recargarlas, vaciarlas, etcétera.
Cabe mencionar que las tarjetas actuales ya no tienen la vulnerabildad del PRNG (o no es tan habitual al menos), por lo que los ataques nested y darkside no serían efectivos, pero aún así todavía tenemos herramientas capaces de extraer las claves. A continuación vamos a hacer lo mismo que antes, pero con la Proxmark y el código de GitHub del RRG. Conectamos el dispositivo y comprobamos que detecta la tarjeta.
En la imagen anterior vemos que el PRNG es vulnerable (“weak“), así que comprobamos si hay claves por defecto:
(continuación de la salida del comando)
Ahora, utilizamos el ataque nested conociendo la clave A del bloque 0 (no es necesario especificar el sector, puesto que el bloque 0 del sector 1 se escribiría como –blk 4):
Figura 31: hf mf nested –1k –blk 0 -a -k a0a1a2a3a4a5
Y finalmente obtenemos todas las claves automáticamente:
Figura 32: Volcado de todas las claves
Pero aún nos quedan más cosas, que veremos en la última parte de este artículo. Un poco más de paciencia aún.
Saludos,
**********************************************************************************************
– Hacking de tarjetas NFC: MIFARE Classic 1k (Parte 3 de 4)
– Hacking de tarjetas NFC: MIFARE Classic 1k (Parte 4 de 4)
**********************************************************************************************