Cómo hacerte un IMSI Catcher sencillo por sólo 11€

Recientemente veía un tweet de nuestro antiguo compi Sebas (@0xroot) con un enlace a un vídeo de Keld Norman: How to make a simple $7 IMSI Catcher.
Para quien no lo sepa, un IMSI Catcher o stingray es básicamente un dispositivo que se hace pasar por la antena de un operador de telefonía móvil. Podríamos decir que se trata de estaciones base falsas que permiten hacer un MiTM a un móvil con todo lo que eso conlleva: pueden obtener el identificador global o IMSI (Identidad Internacional del Suscriptor de Móvil) pero también disminuir o incrementar la potencia de transmisión del teléfono, acceder a sus metadatos y claves de cifrado, geolocalizarlo e incluso escribir protocolos sobre la memoria del dispositivo.

Seguro que habréis visto en mil y una películas cuando la policía o el servicio de inteligencia de turno utiliza una furgoneta para hacer el seguimiento y/o interceptar las comunicaciones del móvil de un sospechoso: suele tratarse de un IMSI Catcher y en España y en más de medio mundo su uso está regulado y permitido sólo a las fuerzas de seguridad del estado y (creo) que con orden judicial. Así que, al menos que vivas en un país que todavía no tenga un marco regulatorio definido o trabajes para un cuerpo con autorización, usar un IMSI catcher es ilegal.

Sin duda una verdadera lástima porque cada vez es más asequible adquirir uno hasta llegar al punto de que hoy en día prácticamente está al alcance de cualquier bolsillo. Por ejemplo, es posible hacerte un maletín de escucha por menos de 300€ comprando los componentes en China, e incluso existen equipos profesionales ya terminados por alrededor de los 1800€.

No obstante, el vídeo de Keld Norman que traemos en este post muestra un receptor TDT/DVB-T (Rtl2832u + R820t), es decir, no puede transmitir y por lo tanto más un IMSI Catcher al uso, como una estación base falsa que realiza un MiTM, estaríamos hablando de algo parecido a un sniffer en GSM, que por menos 15€ tampoco está nada mal:

Vídeo

Instrucciones

1. Instalar Ubuntu 16.04.2 LTS
Ve a http://releases.ubuntu.com/16.04/ y descarga la versión de escritorio de 64 bits de Ubuntu 16.04 LTS.

# Si usas una máquina virtual deberás asignarle al menos 2Gb de memoria para poder compilar.
# Se recomienda como mínimo un VM con 1 cpu, 2G memoria, 20Gb disco, quitar la impresora y la tarjeta de sonido y dejar el USB en modo usb2.0

# Después de instalar Ubuntu conviene actualizarlo:
sudo apt-get update && sudo apt-get upgrade -y
reboot

2. Instalar los módulo GSM de GNU Radio / gr-gsm
sudo apt-get install git python-pip
sudo pip install PyBOMBS
sudo pybombs prefix init /usr/local -a default_prx
sudo pybombs config default_prefix default_prx
sudo pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-recipes.git
sudo pybombs install gr-gsm # esto podría tardar horas en completarse
sudo ldconfig

# Enchufa el dongle SDR y comprueba que es detectado con dmesg. Luego prueba si gr-gsm funciona:
sudo grgsm_livemon # Deberías ver el led azul parpadear

3. Obtén el script python para coger los datos y presentarlos bien:
# Instala los requisitos previos
sudo apt install python-numpy python-scipy python-scapy
# Obtén los scripts
git clone https://github.com/Oros42/IMSI-catcher.git

# Actualiza la lista de proveedores de red
python IMSI-catcher/mcc-mnc/update_codes.py # En el terminal 1
cd IMSI-catcher
sudo python simple_IMSI-catcher.py

# En el terminal 2
# Arranca el sniffer de radio sobre el canal en el cual la estación/torre GSM base transmite en tu área.
airprobe_rtlsdr.py -f 943400000 # este es el mismo programa llamado grgsm_livemon

# Ahora, cambia la frecuencia y páralo cuando tengas una salida como la de la consola del gui:
# 4c 69 6b 65 56 69 64 65 6f 3d 53 65 6e 64 63 68 6f 63 6f 6c 61 74 65
# 00 6b 65 6c 64 2e 6e 6f 72 6d 61 6e 40 67 6d 61 69 6c 2e 63 6f 6d 00

# Mira el terminal 1 y espera. Los números TMSI/IMSI deberían aparecer en breve
# Si no aparece nada después de un minuto, cambia la frecuencia.

# También puedes ver los paquetes GSM en wireshark con esto:
sudo apt-get install -y wireshark tshark # NB: tshark es una versión en línea de comandos de wireshark
sudo wireshark -k -Y '!icmp && gsmtap' -i lo # ignora los errores de que se está ejecutando wireshark con root..

Fuentes y enlaces de interés:
- 5 datos que debes saber sobre los IMSI catchers o stingrays
- Maletines para espiar conversaciones de móviles por 300 euros
- Estaciones base falsas espían las llamadas telefónicas
- Obtención del IMSI sin autorización judicial

Comentarios

  1. Estuve jugando con todo esto el año pasado y me extraña que se hable de un MiTM, ya que el USB propuesto no tiene capacidad de transmisión de ningún tipo (Es un receptor de TDT/DVB-T).
    Que se intercepte la comunicación que hay entre un móvil y la antenna sí, pero para simular una estación falsa se necesita algo con capacidad de emitir, como el YardStick One (Que ya nos sube el precio a 100 pavazos).

    ResponderEliminar
    Respuestas
    1. tienes toda la razón. Lo he modificado y reseñado en la entrada. Gracias por el apunte!

      Eliminar
    2. Hola puedes contactarme a contraespionaje@protonmail.com,

      Eliminar
  2. Recomiendo el siguiente enlace:

    https://4null0.blogspot.com.es/2016/06/eres-un-chivato-mi-querido-movil.html

    ResponderEliminar
  3. La linea correcta sería esta, hay un error:
    sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git

    ResponderEliminar
  4. Buenas las recipes serian estas dos:
    sudo pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
    sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git

    ResponderEliminar
  5. Hola Vicente Tengo un error
    sudo pybombs install gr-gsm

    root@nombre-virtual-machine:~# sudo pybombs install gr-gsm
    PyBOMBS - INFO - PyBOMBS Version 2.3.1
    PyBOMBS.Packager.apt - INFO - Install python-apt to speed up apt processing.
    PyBOMBS.install_manager - INFO - Phase 1: Creating install tree and installing binary packages:
    PyBOMBS.get_recipe - ERROR - Error fetching recipe `gr-gsm':
    Package gr-gsm has no recipe file!

    ResponderEliminar
    Respuestas
    1. No hay una solución para esto? llevo mas de una semana dandole vueltas y no lo veo...

      Eliminar

Publicar un comentario