Oros42

IMSI-catcher: Identify Nearby GSM Subscriber Signals

IMSI-catcher uses GSM decoding tools and a software-defined radio receiver to display IMSI values and related carrier details from nearby cellphone signals. It is intended for GSM learning and authorized radio research, not casual use.

Stars
4.6k
Forks
915
Stars, last 10 days
+11

Our take

Health score

27/100

How it is scored
Activity
20
Community
46
Issues
21
Pull requests
21

+11 stars in the last 10 days

Overview

IMSI-catcher is a Python tool that processes GSM data decoded by gr-gsm and reports observed IMSI values, along with country, brand, and operator information. It helps learners and radio researchers examine how GSM networks expose subscriber identifiers over the air.

The project is a receiver-side analysis tool, not a general-purpose mobile network scanner. Use it only in a lawful, authorized setting, with appropriate radio hardware and an understanding of the privacy implications of collecting subscriber identifiers.

Key Features

  • Receives decoded GSM packet data through a local interface or a configured port.
  • Displays IMSI values and associated country, brand, and operator details.
  • Can show TMSI values that have not been associated with an IMSI.
  • Supports filtering for a specified IMSI.
  • Saves observed values to SQLite or text files, with an optional MySQL output path.
  • Works with gr-gsm and SDR hardware listed by the project, including RTL-SDR, HackRF, and BladeRF.
  • Supports GSM frequency discovery through gr-gsm scanner tools.

Use Cases

  • GSM learners can inspect decoded signaling to understand how subscriber identifiers appear in network traffic.
  • Radio hobbyists with compatible SDR equipment can explore nearby GSM broadcasts in a controlled, legally permitted environment.
  • Security educators can demonstrate the privacy risks of exposed identifiers using an authorized lab setup.
  • Researchers can record observed values to local files or MySQL for further analysis, where collection is lawful and consented.

Getting Started

Clone the repository and install the listed Debian packages:

git clone https://github.com/Oros42/IMSI-catcher.git
cd IMSI-catcher
sudo apt install python3-numpy python3-scipy python3-scapy gr-gsm

A compatible SDR receiver and gr-gsm setup are also needed. See the README for hardware guidance, configuration, and usage details.

Considerations

  • Requires Linux, Python, gr-gsm, and a compatible SDR receiver or OsmocomBB phone.
  • The README warns against Python 3.9 due to a ctypes issue and describes an importlib dependency note; verify compatibility in your environment.
  • Capturing IMSIs involves sensitive personal data. Laws and radio regulations vary, so do not collect or store identifiers without legal authority and appropriate consent.
  • Setup depends on external radio-decoding tools and hardware, so this is not a plug-and-play software-only utility.
  • The repository describes the project as a learning aid and explicitly cautions against malicious use.

Found this useful?

Share it with someone who would like IMSI-catcher.