17 años en Internet

09 noviembre 2009

Primeros chanchullos con el lector de DNIe gratuito

Como comenté hace unos días, el lector de DNIe gratuito que regala el Ministerio del Interior sirve para leer toda clase de tarjetas electrónicas (con chip). Con lo primero que he jugado, ha sido con el comando pcsc_scan. Si insertamos una tarjeta electrónica y lo ejecutamos, veremos un chorrón similar a este:
PC/SC device scanner
V 1.4.15 (c) 2001-2009, Ludovic Rousseau
Compiled with PC/SC lite version: 1.4.102
Scanning present readers...
0: SCM SCR 3310 00 00

Mon Nov 9 14:50:55 2009
Reader 0: SCM SCR 3310 00 00
Card state: Card inserted,
ATR: 3B 7F 11 00 00 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00

ATR: 3B 7F 11 00 00 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00
+ TS = 3B --> Direct Convention
+ T0 = 7F, Y(1): 0111, K: 15 (historical bytes)
TA(1) = 11 --> Fi=372, Di=1, 372 cycles/ETU
10752 bits/s at 4 MHz, fMax for Fi = 5 MHz => 13440 bits/s
TB(1) = 00 --> VPP is not electrically connected
TC(1) = 00 --> Extra guard time: 0
+ Historical bytes: 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00
Category indicator byte: 80 (compact TLV data object)
Tag: 3, len: 1 (card service data byte)
Card service data byte: C0
- Application selection: by full DF name
- Application selection: by partial DF name
- EF.DIR and EF.ATR access services: by GET RECORD(s) command
- Card with MF
Tag: 5, len: 2 (card issuer's data)
Card issuer data: 0B D1
Tag: 6, len: 4 (pre-issuing data)
Data: 02 18 19 53
Tag: 8, len: 3 (status indicator)
LCS (life card cycle): 83 (Proprietary)
SW: 9000 (Normal processing.)

Possibly identified card (using /home/sebas/.smartcard_list.txt):
3B 7F 11 00 00 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00
Si nos fijamos en la línea "ATR" veremos una serie de números en hexadecimal. Estos números indican el tipo de tarjeta que estamos escaneando, en este caso se trata de una tarjeta monedero de Bancaja para los alumnos de la UPV. Todas las tarjetas monedero de los alumnos de la UPV deberían de tener este valor para ATR.

Aún no he profundizado con los comandos APDU para acceder al pin o a la zona pública, pero nos puede servir para hacer unos pequeños ejercicios prácticos. Por ejemplo, podemos crear este sencillo script y añadirlo en la cabecera del .bashrc para que siempre que abramos una shell nos pida una tarjeta "UPV" para continuar:

/usr/bin/pcsc_scan > /tmp/pcsc.log &
echo "Inserta la tarjeta"
export ENTRAR=0
while [ $ENTRAR -lt 1 ]
do export ENTRAR=$(grep "3B 7F 11 00 00 80 31 C0 52 0B D1 64 02 18 19 53 83 83 90 00" /tmp/pcsc.log| wc -l)
sleep 1
done
rm /tmp/pcsc.log
pkill pcsc_scan
clear
echo "Tarjeta aceptada"
echo "Have a lot of fun!"




Por desgracia, como no hemos manejado máscaras, si hacemos control+c este "login físico" se puede ignorar ;)

Un saludo

1 comentario:

  1. A ver cuando es el siguiente paso a falsificar tarjetas de credito.

    ResponderEliminar

Si te ha gustado la entrada o consideras que algún dato es erróneo o símplemente deseas dar algún consejo, no dudes en dejar un comentario. Todo feedback es bienvenido siempre que sea respetuoso. También puedes contactarme vía Twitter @Hamster_ruso si lo consideras necesario.