Suplantación de identidad sobre el aire en redes GSM

Iniciado por ANTRAX, Enero 29, 2014, 03:38:20 PM

Tema anterior - Siguiente tema

0 Miembros y 6 Visitantes están viendo este tema.

Enero 29, 2014, 03:38:20 PM Ultima modificación: Mayo 28, 2014, 09:33:12 AM por ANTRAX

Corría el año 2000 y el Canal Satélite Digital y VíA Digital estaban en pleno auge, igual que las tarjetas smartcard con un microcontralador PIC 16F8xx como las SilverCard y GoldWafer para "hackear" estos servicios. Todos teníamos un programador TE20 para poder escribir los datos en los microcontraladores y el TE21 o Phoenix para leer las tarjetas originales smartcard ISO 7816.

Entonces apareció él, se llamaba SIM EMU y era un programa que podíamos cargar en el PIC 16F84 para emular una tarjeta SIM. Para que la tarjeta fuese funcional 100% era necesario leer dos parámetros de la tarjeta SIM original; el IMSI y el número secreto Ki de 128 bit (wikipedia.org, apartado "Authentication key Ki"). Esto se podía hacer con el lector TE21 utilizando cualquiera de los programas disponibles: cardinal68, sim scan, etc (creo que todos ellos ya no están soportados por sus desarrolladores, pero se pueden encontrar gracias a Don Google).

Fue cuando aprendimos el proceso "RUN GSM ALGORITHM" (el proceso encargado de generar la respuesta SRES (algoritmo A3) y la clave de cifrado Kc (algoritmo A8) al recibir un número aleatorio RAND de la red GSM, ver documento Specification of the Subscriber Identity Module - Mobile Equipment SIM - ME interface GSM 11.11) y que había dos tipos de tarjetas SIM; las que tenían implementada la versión 1 del algoritmo, llamado COMP128v1 y las nuevas con la versión 2; COMP128v2. Sólo podemos someter al ataque de fuerza bruta a aquellas tarjetas que tengan implementado el algoritmo COMP128v1, puesto que es el único que se consiguió romper.

Entonces se necesitaba acceso físico a la tarjeta SIM para poder suplantar la identidad de un usuario de la red GSM.

¿Qué ha pasado desde entonces hasta ahora?

Gracias a las nuevas herramientas para monitorizar el tráfico GSM (OsmocomBB, SDR, USRP...), podemos ver en nuestro wireshark cómo la red GSM y el terminal realizan el proceso de autenticación pero no desde el punto de vista de la tarjeta SIM, sino la señalización entre el equipo (ME) y la red GSM. Teóricamente cada vez que encendemos el teléfono y en determinadas circunstancias, como por ejemplo: hand-over entre celdas (nos desplazamos en coche y cambiamos de antena GSM), al activar servicios de la red GSM (realizar o recibir llamadas o mensajes) la red GSM nos debe solicitar autenticarnos en la red, enviando a nuestra SIM la petición "RUN GSM ALGORITHM".

¿Porqué no hacer un par de pruebas con cada operador para analizar el comportamiento de la red? ¿Cada cuánto tiempo solicita la red a mi móvil/SIM que se autentique? ...¡¡ Manos a la obra !!

La herramienta seleccionada fue OsmocomBB corriendo en un portátil con Ubuntu (Layer 2 y 3) y en un Motorola C118 (Layer 1), de tal modo que puedo ver las trazas en el wireshark mientras me muevo y realizo llamadas. Cuando todo está listo, una vuelta por la M40 haciendo llamadas y enviando SMS.





Al analizar las trazas, la gran sorpresa es que no todas las redes (operadoras) tienen el mismo nivel de seguridad/rigurosidad con la autenticación. No voy a dar nombres, pero encuentro que en una red GSM, tras encender el móvil y realizar 3 llamadas, en ningún momento la red me ha solicitado autenticarme. Este caso más sangrante me lleva a seguir con una nueva prueba, un ataque de suplantación de identidad sobre el aire. Los TMSI circulan tranquilamente (sin cifrar) por el aire en mi celda ... ¿Qué pasaría si programo una tarjeta SIM sólo con un TMSI y clave Kc de cifrado válidos?

Si un hipotético atacante quisiera conocer cuales son el TMSI , el Kc y la localización (celda) de una víctima a partir de su número de teléfono, es perfectamente posible y ya ha sido tratado en varias sesiones del Chaos Computer Club (27C3, 28C3 y 30C3).


En esta prueba no voy a utilizar un IMSI válido, lo que vamos a hacer es inventarnos un IMSI que la red reconozca como suyo (ojo al MNC) y que el resto de dígitos serán aleatorios, ídem para la clave Ki; aleatoria. Para llevar a cabo todo este proceso he utilizado un lector/programador de smartcards SCM SCR3310 con una tarjeta SIM programable sysmoSIM y el software cyberflex.


Debemos tener en cuenta todos los ficheros (EF) que residen en la SIM dentro del directorio (DF) GSM 7F20, y en particular el LOCI "6F 7E", es aquí donde vamos a poner nuestro TMSI objetivo, puesto que el fichero LOCI contiene concatenados el TMSI seguido del "Location Area Information", nuestra última posición conocida por la SIM. El LAI a su vez se compone de: MCC + MNC + LAC (Location Area Code). Para España el MCC es 214 y el MNC depende de la red (ver en Don Google). Os dejo algunos comando útiles para movernos por la SIM (para ver el listado completo ver la referencia anterior GSM 11.11):

Código: text
    STATUS: a0f2000002 (debemos comenzar la sesión siempre con status)
    a0a40000023f00    (selecciona el MF)
    a0a40000022fe2    (selecciona el EF ICC ID)
    a0b000000a        (muestra el contenido)
    a0a40000027f20    (selecciona el DF GSM)
    a0a40000026f07    (selecciona el EF IMSI)
    a0b0000009        (muestra el contenido)
    a0a40000026f7e    (selecciona el EF LOCI)
    a0b000000b
    a0a40000026f20    (selecciona el EF Kc)
    a0b0000009
    a0a40000026f30    (selecciona el EF PLMN sel)
    a0b0000096


El resultado: tras grabar los resultados a la tarjeta SIM programable, un primer intento falla: recibo LOCATION UPDATE REJECT. Vuelto a intentar y ... Sorpresa !! Veo el nombre del operador en la pantalla del teléfono, me doy a prisa en llamar a mi amigo Ramón y ... funciona, llamada con éxito, me he suplantado a mi mismo.

Conclusión

El resultado de esta prueba/ataque depende de muchos factores a tener en cuenta;

- Celda y Location Area: cada celda y cada LA tienen parámetros distintos, que funcione en una "zona" no quiere decir que vaya a funcionar en toda España (y viceversa)

- Configuración de la red: el tiempo de "refresco" de nuestra clave de cifrado Kc y del TMSI depende de cada red, es posible que durante nuestros ensayos la red solicite a la tarjeta SIM que se autentifique, pero al no tener un Ki válido, lógicamente será automáticamente rechazada la SIM y la clave Kc puesta a "FFFFF...."

- Para evitar estos ataques, no podemos hacer nada. Son el resultado de faltas graves de seguridad en la red GSM. Si un atacante no pudiese conocer mi TMSI u obtener la clave Kc a partir de una captura, la suplantación nunca podría funcionar. Si aún así, dichas claves se refrescasen en cada petición de servicio a la red GSM, la suplantación sería mucho más costosa, prácticamente imposible.

La conclusión más evidente es la falta de seguridad, a día de hoy, en las redes GSM. Si quereis ver cómo son de seguras las redes GSM, visitad la web GSMmap.

fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy interesante post! Me encantó  8)

CrazyKade
Idem, btw saludos sir CrazyKade.

ANTRAX bro pon el bendito link del post original por favor -.-

Greetings.
When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.

Puse la fuente a pie del post, ahi le agregue el link

Saludos!


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Puse la fuente a pie del post, ahi le agregue el link

Saludos!
Excelente, gracias!
When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.

Me encantó bro, hace mucho cuando perdí un cel, estuve investigando y encontré un trabajo de una unversidad, con toda esa info. Pero Cómo podemos saber el número de la celula, sabiendo imei? se supone que el imei actua de canal.

un saludo

Excelente información, muy buen aporte! Cada día algo nuevo se aprende, saludos!

amigo @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta existe un post para principiantes en este ámbito? por supuesto en español....? :o

Top post! Me fascinó, pese a no entender algunas cosa.

Qué tipo de receptor utilizas para interceptar tráfico GSM?

Saludos. Po6xSecpo