Random IRC quote :      <pancake> cuando radare sea abandonware nullsuf lo usara

Explotando la seguridad física (carding for dummies )

Cuando uno piensa en el concepto de seguridad física, suele asociarlo a aquellas contramedidas de seguridad que nos permiten evitar accesos no autorizados en una infraestructura, como por ejemplo, la presencia de tornos de seguridad, la presencia de sofisticadas cerraduras electrónicas a prueba de las últimas técnicas de lockpicking (creo que Tarako no opinará lo mismo, verdad?), a la instalación de cámaras de videovigilancia,…

Extrapolando el concepto de seguridad de un sistema informático al de la seguridad física en el mundo real, podemos decir que una organización es tan segura como el eslabón mas débil de la cadena y, creedme, este eslabón es habitualmente, más débil de lo que os podéis imaginar.

Las nuevas tarjetas RFID o las de banda magnética (magstripe) , que serán objeto de este artículo, es una de esas soluciones mágicas que se ven implantadas por doquier puesto que su versatilidad nos permite utilizarlas para realizar tareas de control de acceso y de presencia, asociarlas con roles de usuarios con acceso a diferentes zonas (por ejemplo oficinas, CPD,..), cargar dinero en ellas para las máquinas de café, entrar en el metro, usarla como tarjeta de credito, entrar en la habitación de tu hotel,..

magstripe

No voy a entrar en detalles técnicos sobre el funcionamiento de estas tarjetas, la información esta disponible para quien la quiera consultar en http://en.wikipedia.org/wiki/Magnetic_stripe, es la implementación de las tareas de control de acceso y/o validación la que es realizada habitualmente a través de un software de terceros, de forma transparente para las organizaciones, y es precisamente esta implementación lo que origina, en la gran mayoría de ocasiones, unos agujeros de seguridad muy grandes… veamos algunos ejemplos:

Os voy a contar el caso más común que me he encontrado hasta la fecha, armado con un MSE-630T bajo el brazo.
Pensemos en siguiente escenario, un usuario solicita una tarjeta de banda magnética digamos por ejemplo, al guardia de seguridad de alguna organización. Esta tarjeta almacena un código numérico en su banda magnética y en el ordenador del personal de seguridad se asocia esa tarjeta a una serie de lectores de tarjetas autorizados. Cualquier acceso a una sala, como por ejemplo un CPD o el despacho del director general, protegidas con un lector de tarjetas, no nos será permitido.

Hasta aquí todo correcto, sin embargo algo llama la atención, la tarjeta de acceso tiene impreso además del logotipo de la empresa lo siguiente VISITA 555031337, nuestra curiosidad nos hace conectar nuestro lector de tarjetas al ordenador y leemos la información.

Track1:
555031337
Track2:
Track3:

Ahí empiezan los problemas, aparentemente, se trata de un identificador secuencial y bastante predecible (me recuerda al bug de las openssl en debian), así que le decimos a nuestro grabador de tarjetas que nos grabe el ID 555031336, que curiosamente estaba asociado al personal de mantenimiento del CPD, y blink! blink! blink! estamos dentro. Ya podríamos tener acceso al sitio mas crítico de la organización, para saltarnos el uso del cifrado de comunicaciones y llevarnos físicamente los discos duros.
Como este caso existen varios muy parecidos que me he ido encontrando a lo largo del tiempo, aunque la diferencia puede residir en que el identificador numérico es siempre fijo es decir, es grabado una única vez cuando viene de fabrica, o el identificador es grabado, de forma incremental, cada vez que se solicita una tarjeta.

El Identificador secuencial, predecible o con combinaciones finitas es algo muy común en las implementaciones de control de acceso.. Para el desarrollador es mas fácil incrementar el contador de número de tarjeta que hacer una rutina de 3 lineas para la generación de códigos aleatorios, y pone en entredicho la seguridad de estos sistemas.

Existen muchas alternativas al uso y abuso de esta tecnología, os voy a dar un par de ellas que se me han ocurrido o he visto por ahí. Por supuesto, la finalidad de este artículo es educativa, y no deben llevarse a cabo salvo que conteis con la autorización previa.

1) Hoteles: Varias cadenas de hoteles usan un curioso método de control de acceso.. la tarjeta guarda únicamente el número de la habitación en su interior, de forma que la habitación 22 de la tercera planta se asocia al código 322. El software del hotel controla que esa habitación este asignada a un huésped y si lo está, puedes entrar con la tarjeta. Si grabas el código 321 podrás entrar en la habitación de al lado y, como todo tiene que tener una puerta trasera, también llamada feature, el código 300 o 399 será el código de la gente de limpieza para entrar en las habitaciones de la tercera planta, y 000 o 999 la tarjeta maestra para entrar en cualquier habitación. La cosa da miedo, a partir de ahora pediré siempre la llave del safetybox.

2) Promociones: A modo de curiosidad, algunas promociones en cadenas o establecimientos se basan en el ID secuencial de tu tarjeta. Por ejemplo, cuando vas a tu cine con tu tarjeta cinesa, se lee tu código de la tarjeta, y en base a las entradas que compres, la base de datos de cinesa guardará una serie de puntos. La chica de la taquilla te dirá si los puntos que tiene tu tarjeta de permiten sacar palomitas gratis. Un usuario sin escrúpulos (o al menos con alguno, porque podría bajarse la película de internet), podría ir al cine con cuatro amigos que tengan sus tarjetas cinesa, que contengan 4 identificadores diferentes recién grabados, y preguntar a la amable taquillera si tienen derecho a tus palomitas, y así ahorrarse unos 10 euros.

Si esto lo aplicamos a cosas mas serias, como posibles tarjetas regalo de otros establecimientos, la posibilidad de fraude es muy elevada, aunque es menos crítico que el riesgo de acceso físico en una organización.

Recomendación del día.
Proverbio chino: La seguridad informática es algo más que parchear nuestros sistemas. Si quieres estar seguro, contrata una auditoria de seguridad a los mejores (o en su defecto a los mas guapos) X-D

Nota: Algunos me han preguntado sobre la complejidad de este tipo de ataques o sobre lo difícil que puede llegar a ser trabajar con esto. La verdad es que se tardan pocos segundos en llevarlo a cabo. Existen herramientas para trabajar con esta tarjetas que, aunque en algunos casos no están documentadas, un sniffer rs232 nos puede dar información de todos los comandos.

hComPort = CreateFile("COM2",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
do {

ReadFile(hComPort, szBuffer , dwBufferSize, &dwBufferRead, NULL);
TCHAR szBuffer[1024]="\x02\x25\x00\x3F\3B\x00\x3F\x3B\x00\x3f\x03\x01"; //empty card..
WriteFile(...

7 Comentarios para “Explotando la seguridad física (carding for dummies )”

  1. Comment por infi | 09/01/08 at 5:20 am

    Interesante lectura. Recuerdo un talk parecido en la defcon15 creo.

  2. Comment por DADE | 09/01/08 at 6:16 am

    :D!

    Justo ando yo desde hace un mes mirando a ver para comprar un lector escritor de tarjetas RFID, ya que vivo en una urbanización y uso continuamente autobús para desplazarme el cual usa….si, tarjetas RFID xD y estoy seguro que el tema del saldo de la tajeta es un par de bytes a lo sumo.

    Hay un vídeo del CCC sobre la manipulación de entradas del Mundial de fútbol de Alemania bastante interesante:

    CLICK AKI 😀

    Un saludo!

  3. Comment por DADE | 09/01/08 at 7:29 am

    Vuelvo a dejar el link que no ha salido 😛

    http://dewy.fem.tu-ilmenau.de/CCC/23C3/video/23C3-1576-en-rfid_hacking.m4v

    Un saludo

  4. Comment por Ismak | 09/02/08 at 6:25 am

    Hola:
    Muy interesante. Una pregunta. Las tarejtas magnéticas de los parking «públicos» funcionan de la misma forma?. Es decir, el lector de tarjetas MSE-630T puede leer estas tarjetas? o existe alguna forma de leer escribir en estas

  5. Comment por El listu | 09/02/08 at 8:22 am

    Yo tengo el lector y grabador de tarjetas de euskaltel, de cuando se podía piratear fácil, no se trata de una banda magnetica, es un chip.
    Me vale para entrar en la habitación del hotel de Angelina Jolie??
    Respondedme por favor, se gratificará.

  6. Comment por Andrés Tarascó | 09/03/08 at 12:16 pm

    Ismak, ese tipo de tarjetas no las puedes leer o escribir con el aparato que comenté antes, desconozco cual puede ser el modelo para trabajar con tarjetas de una sola banda.

    Pensando como un programador.. se me ocurren un montón de posibles implementaciones vulnerables:
    – id secuencial (por lo que grabas tu tarjeta con unos cuantos números mas, y seguro que te sale barato.
    – Fecha de entrada. Se graba la fecha de entrada y cuando vas a pagar, se calcula el saldo en base a esa fecha.. si no se almacena ningún otro ID en la tarjeta, es probable que exista algún código «mágico» para que la barrera se abra, simulando que ya has pagado.

    De todas formas, a día de hoy, el 90% de los parkings graban la matricula de tu coche

  7. Comment por EDUARDO | 07/11/12 at 11:17 pm

    hola buenas tardes estoy buscando una tarjeta de acceso con las siguientes especificaciones: interruptor de tarjeta tipo hotel, con luz de señalizacion color ambar 10 amperes catalogo 8814,1 con visor catalogo 8214-BA en placa blanco alpino marca estevez

    En espera de sus comentarios

    Quedo.

Se han cerrado los comentarios