{"name":"IMSI-catcher: Discover Cellphone IMSI Numbers with SDR","description":"IMSI-catcher is a Python program designed for educational purposes, allowing users to understand how GSM networks function. It utilizes Software Defined Radio (SDR) receivers like RTL-SDR or HackRF to detect and display IMSI numbers, country, brand, and operator of nearby cellphones. This tool provides a practical way to explore mobile communication protocols and security aspects.","github":"https://github.com/Oros42/IMSI-catcher","url":"https://osrepos.com/repo/oros42-imsi-catcher","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/oros42-imsi-catcher","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/oros42-imsi-catcher.md","json":"https://osrepos.com/repo/oros42-imsi-catcher.json","topics":["IMSI-catcher","GSM","SDR","Python","Cellphone Security","Radio Frequency","HackRF","RTL-SDR"],"keywords":["IMSI-catcher","GSM","SDR","Python","Cellphone Security","Radio Frequency","HackRF","RTL-SDR"],"stars":null,"summary":"IMSI-catcher is a Python program designed for educational purposes, allowing users to understand how GSM networks function. It utilizes Software Defined Radio (SDR) receivers like RTL-SDR or HackRF to detect and display IMSI numbers, country, brand, and operator of nearby cellphones. This tool provides a practical way to explore mobile communication protocols and security aspects.","content":"## Introduction\nIMSI-catcher is an open-source Python program that enables users to detect and display IMSI (International Mobile Subscriber Identity) numbers, along with country, brand, and operator information, from cellphones in the vicinity. Developed by Oros42, this project is primarily intended for educational purposes, helping individuals understand the workings of GSM networks and the underlying mobile communication protocols. It emphasizes responsible use, explicitly stating it's not for malicious hacking.\n\n## Installation\nTo set up IMSI-catcher, you'll need a PC running Gnu/Linux (tested with Debian 10, Ubuntu 20.04+, Kali 2020+), and an SDR receiver such as a USB DVB-T key (RTL2832U), OsmocomBB phone, HackRF, or BladeRF.\n\nFirst, clone the repository or download the source:\nbash\ngit clone https://github.com/Oros42/IMSI-catcher.git\ncd IMSI-catcher\n\nAlternatively:\nbash\nwget https://github.com/Oros42/IMSI-catcher/archive/master.zip && unzip -q master.zip\ncd IMSI-catcher-master\n\n\nInstall the necessary Python dependencies:\nbash\nsudo apt install python3-numpy python3-scipy python3-scapy\n\n**Important:** Avoid using Python 3.9 due to a ctypes bug.\n\nYou have two options for installing `gr-gsm`: directly in your OS or via Docker.\n\n### Install gr-gsm in your OS (recommended)\nInstall build dependencies:\nbash\nsudo apt-get install -y \\\n    cmake \\\n    autoconf \\\n    libtool \\\n    pkg-config \\\n    build-essential \\\n    python3-docutils \\\n    libcppunit-dev \\\n    swig \\\n    doxygen \\\n    liblog4cpp5-dev \\\n    gnuradio-dev \\\n    gr-osmosdr \\\n    libosmocore-dev \\\n    liborc-0.4-dev \\\n    swig\n\nCheck your GnuRadio version:\nbash\ngnuradio-config-info -v\n\nBased on your GnuRadio version, clone the appropriate `gr-gsm` branch:\n*   If `>= 3.10`:\n    bash\ngit clone -b maint-3.10_with_multiarfcn https://github.com/bkerler/gr-gsm\n    \n*   If `>= 3.8`:\n    bash\ngit clone -b maint-3.8 https://github.com/velichkov/gr-gsm.git\n    \n*   If `3.7`:\n    bash\ngit clone https://git.osmocom.org/gr-gsm\n    \nThen, build and install `gr-gsm`:\nbash\ncd gr-gsm\nmkdir build\ncd build\ncmake ..\nmake -j 4\nsudo make install\nsudo ldconfig\necho 'export PYTHONPATH=/usr/local/lib/python3/dist-packages/:$PYTHONPATH' >> ~/.bashrc\n\n\n### Importlib vs Imp\nFor Python 3.1 and newer, `Imp` is replaced by `importlib`. If you encounter issues, install `importlib`:\nbash\napt install python3-pip\npip install importlib\n\n\n### Install gr-gsm with Docker\nFor a containerized setup:\nbash\nsudo xhost +local:docker\ndocker pull atomicpowerman/imsi-catcher\ndocker run -ti --net=host -e DISPLAY=$DISPLAY --privileged -v /dev/bus/usb:/dev/bus/usb  atomicpowerman/imsi-catcher bash\n\nRun all `grgsm_*` commands inside this Docker container.\n\n## Examples\nIMSI-catcher typically uses `grgsm_livemon` to decode GSM signals and `simple_IMSI-catcher.py` to process and display IMSIs.\n\nOpen two terminals.\n\nIn terminal 1, start the IMSI catcher in sniff mode:\nbash\nsudo python3 simple_IMSI-catcher.py -s\n\n\nIn terminal 2, start `grgsm_livemon`:\nbash\ngrgsm_livemon\n\nAdjust the frequency in `grgsm_livemon` until you see decoded GSM frames.\n\n### Wireshark Integration\nYou can also monitor GSM packets using Wireshark:\nbash\nsudo apt install wireshark\nsudo wireshark -k -Y '!icmp && gsmtap' -i lo\n\n\n### Finding Frequencies\nTo find active GSM frequencies, use `grgsm_scanner`:\nbash\ngrgsm_scanner\n\nThis will output ARFCNs and frequencies. You can then specify a frequency for `grgsm_livemon`:\nbash\ngrgsm_livemon -f 925.4M\n\nFor HackRF users, `kalibrate-hackrf` can help find GSM frequencies:\nbash\nsudo apt-get install automake autoconf libhackrf-dev\ngit clone https://github.com/scateu/kalibrate-hackrf\ncd kalibrate-hackrf/\n./bootstrap\n./configure\nmake\nsudo make install\n\nThen run:\nbash\nkal -s GSM900\n\n\n### Logging Data to MySQL\nTo save observed IMSI values to a MySQL database:\nbash\ncp .env.dist .env\nnano .env\n# set your config\nsudo apt install python-decouple python3-mysqldb\n\nThen run the IMSI catcher with the `--mysql` option:\nbash\nsudo python3 simple_IMSI-catcher.py -s --mysql\n\nUse `db-example.sql` from the repository to create your database schema.\n\n## Why Use IMSI-catcher?\nIMSI-catcher offers a unique hands-on approach to understanding the intricacies of GSM networks. For students, researchers, and security enthusiasts, it provides a practical platform to:\n*   **Learn GSM Protocols**: Observe real-time GSM traffic and understand how mobile devices communicate with base stations.\n*   **Explore SDR Capabilities**: Gain experience with Software Defined Radio hardware and software for signal processing.\n*   **Security Research**: Investigate potential vulnerabilities in GSM networks and the methods used for tracking mobile devices.\n*   **Educational Tool**: Serve as an excellent educational resource for courses in telecommunications, cybersecurity, and radio frequency engineering.\n\n## Links\n*   **Setup of Gr-Gsm**: <a href=\"https://osmocom.org/projects/gr-gsm/wiki/Installation\" target=\"_blank\">Osmocom Gr-Gsm Installation</a> and <a href=\"https://github.com/velichkov/gr-gsm\" target=\"_blank\">velichkov/gr-gsm GitHub</a>\n*   **Frequency Information**: <a href=\"http://www.worldtimezone.com/gsm.html\" target=\"_blank\">World Time Zone GSM</a> and <a href=\"https://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications\" target=\"_blank\">Wikipedia Global System for Mobile Communications</a>\n*   **Mobile Network Code**: <a href=\"https://en.wikipedia.org/wiki/Mobile_Network_Code\" target=\"_blank\">Wikipedia Mobile Network Code</a>\n*   **Scapy**: <a href=\"http://secdev.org/projects/scapy/doc/usage.html\" target=\"_blank\">Scapy Usage Documentation</a>\n*   **IMSI**: <a href=\"https://fr.wikipedia.org/wiki/IMSI\" target=\"_blank\">Wikipedia IMSI</a>\n*   **Realtek RTL2832U**: <a href=\"https://osmocom.org/projects/sdr/wiki/rtl-sdr\" target=\"_blank\">Osmocom RTL-SDR</a>, <a href=\"http://doc.ubuntu-fr.org/rtl2832u\" target=\"_blank\">Ubuntu-fr RTL2832U</a> and <a href=\"http://doc.ubuntu-fr.org/rtl-sdr\" target=\"_blank\">Ubuntu-fr RTL-SDR</a>\n*   **AskUbuntu gr-gsm 3.10 fix**: <a href=\"https://askubuntu.com/a/1436119/\" target=\"_blank\">AskUbuntu Answer</a>","metrics":{"detailViews":29,"githubClicks":10},"dates":{"published":null,"modified":"2025-11-20T00:01:35.000Z"}}