{"id":13539943,"url":"https://github.com/oros42/imsi-catcher","last_synced_at":"2025-05-13T22:03:35.145Z","repository":{"id":33188292,"uuid":"36830211","full_name":"Oros42/IMSI-catcher","owner":"Oros42","description":"This program show you IMSI numbers of cellphones around you.","archived":false,"fork":false,"pushed_at":"2024-12-23T16:12:30.000Z","size":483,"stargazers_count":3320,"open_issues_count":28,"forks_count":745,"subscribers_count":208,"default_branch":"master","last_synced_at":"2025-04-10T15:56:02.154Z","etag":null,"topics":["cellphones","frequency","gr-gsm","gsm","hackrf","imsi-catcher","imsi-numbers","osmocombb","rtl-sdr"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oros42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-03T20:58:11.000Z","updated_at":"2025-04-06T19:49:20.000Z","dependencies_parsed_at":"2025-01-01T19:00:22.309Z","dependency_job_id":"7e71296a-c03b-45e5-86ef-6729407a513d","html_url":"https://github.com/Oros42/IMSI-catcher","commit_stats":{"total_commits":118,"total_committers":18,"mean_commits":6.555555555555555,"dds":"0.35593220338983056","last_synced_commit":"e50439a6da17a97a99576406548fbc10e6f6b795"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FIMSI-catcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FIMSI-catcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FIMSI-catcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FIMSI-catcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oros42","download_url":"https://codeload.github.com/Oros42/IMSI-catcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251337852,"owners_count":21573453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cellphones","frequency","gr-gsm","gsm","hackrf","imsi-catcher","imsi-numbers","osmocombb","rtl-sdr"],"created_at":"2024-08-01T09:01:34.869Z","updated_at":"2025-04-28T15:27:46.462Z","avatar_url":"https://github.com/Oros42.png","language":"Python","readme":"# IMSI-catcher\n\nThis program shows you IMSI numbers, country, brand and operator of cellphones around you.  \n  \n/!\\ This program was made to understand how GSM network work. Not for bad hacking !  \n  \n\n![screenshot0](capture_simple_IMSI-catcher.png)  \n  \n\n## What you need\n\n1 PC with Gnu/Linux. Tested with :  \n- debian 10  \n- Ubuntu 20.04/LinuxMint 20+  \n- Kali 2020+  \n  \n1 SDR receiver. Tested with :  \n- [USB DVB-T key (RTL2832U)](https://osmocom.org/projects/sdr/wiki/rtl-sdr) with antenna (less than 15$)  \n- [OsmocomBB phone](https://osmocom.org/projects/baseband/wiki/Phones)  \n- [HackRF](https://greatscottgadgets.com/hackrf/)  \n- [BladeRF](https://www.nuand.com/bladerf-2-0-micro/)  \n  \n## Setup\n\n```bash\ngit clone https://github.com/Oros42/IMSI-catcher.git\ncd IMSI-catcher\n```\nor\n```bash\nwget https://github.com/Oros42/IMSI-catcher/archive/master.zip \u0026\u0026 unzip -q master.zip\ncd IMSI-catcher-master\n```\n  \n```bash\nsudo apt install python3-numpy python3-scipy python3-scapy\n```\nWarning : don't use python 3.9 (ctypes bug)!  \n  \nYou have the choice with 2 types of gr-gsm's install : in your OS or with docker.  \n  \n### Install gr-gsm in your OS (recommended)\n\n```bash\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```\n```bash\ngnuradio-config-info -v\n```\nif \u003e= 3.10 (read this [AskUbuntu answer](https://askubuntu.com/a/1436119/) for details):\n```bash\ngit clone -b maint-3.10_with_multiarfcn https://github.com/bkerler/gr-gsm\n```\nelse if \u003e= 3.8:\n```bash\ngit clone -b maint-3.8 https://github.com/velichkov/gr-gsm.git\n```\nelse (3.7):\n```bash\ngit clone https://git.osmocom.org/gr-gsm\n```\n  \n```bash\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' \u003e\u003e ~/.bashrc\n```\n\n### Importlib vs Imp\nBeginning with Python 3.1, Imp is replaced by importlib. Imp is deprecated in Python 3.11, with the new requirements met as follows.\n\n```bash\napt install python3-pip\npip install importlib\n```\n\n### Install gr-gsm with Docker\n\n```bash\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_*` in this docker.   \n  \n\n## Usage\n\nWe use `grgsm_livemon` to decode GSM signals and `simple_IMSI-catcher.py` to find IMSIs.  \n  \n```bash\npython3 simple_IMSI-catcher.py -h\n```\n```\nUsage: simple_IMSI-catcher.py: [options]\n\nOptions:\n  -h, --help            show this help message and exit\n  -a, --alltmsi         Show TMSI who haven't got IMSI (default  : false)\n  -i IFACE, --iface=IFACE\n                        Interface (default : lo)\n  -m IMSI, --imsi=IMSI  IMSI to track (default : None, Example:\n                        123456789101112 or \"123 45 6789101112\")\n  -p PORT, --port=PORT  Port (default : 4729)\n  -s, --sniff           sniff on interface instead of listening on port\n                        (require root/suid access)\n  -w SQLITE, --sqlite=SQLITE\n                        Save observed IMSI values to specified SQLite file\n  -t TXT, --txt=TXT     Save observed IMSI values to specified TXT file\n  -z, --mysql           Save observed IMSI values to specified MYSQL DB (copy\n                        .env.dist to .env and edit it)\n```\n\nOpen 2 terminals.  \n  \nIn terminal 1  \n```bash\nsudo python3 simple_IMSI-catcher.py -s\n```\n  \nIn terminal 2  \n```bash\ngrgsm_livemon\n```\nNow, change the frequency until it display, in terminal, something like that :  \n``` \n15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b\n25 06 21 00 05 f4 f8 68 03 26 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b\n49 06 1b 95 cc 02 f8 02 01 9c c8 03 1e 57 a5 01 79 00 00 1c 13 2b 2b\n```\n\n### Wireshark\n\nYou can watch GSM packets with wireshark.  \n```bash\nsudo apt install wireshark\nsudo wireshark -k -Y '!icmp \u0026\u0026 gsmtap' -i lo\n```\n\n### Find frequencies\n \n```bash\ngrgsm_scanner\n```\n```\nARFCN:  974, Freq:  925.0M, CID:     2, LAC:   1337, MCC: 208, MNC:  20, Pwr: -41\nARFCN:  976, Freq:  925.4M, CID:  4242, LAC:   1007, MCC: 208, MNC:  20, Pwr: -45\n```\nNow, you can set the frequency for `grgsm_livemon` :  \n```bash\ngrgsm_livemon -f 925.4M\n```\n  \nOr, for hackrf, fetch the kalibrate-hackrf tool like this:  \n```bash\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```\nRun  \n```bash\nkal -s GSM900\n```\n```\nkal: Scanning for GSM-900 base stations.\nGSM-900:\n\tchan:   14 (937.8MHz + 10.449kHz)\tpower: 3327428.82\n\tchan:   15 (938.0MHz + 4.662kHz)\tpower: 3190712.41\n...\n```\n\n### Log data in mysql\n\nUse `db-example.sql` to create your DB.\n  \n```bash\ncp .env.dist .env\nnano .env\n# set your config\nsudo apt install python-decouple python3-mysqldb\n```\n  \n```bash\nsudo python3 simple_IMSI-catcher.py -s --mysql\n```\n\n### scan-and-livemon (no longer used)\n\nScan frequencies and listen the 1st found :  \nIn terminal 1  \n```bash\npython3 scan-and-livemon\n```\n  \nIn terminal 2  \n```bash\npython3 simple_IMSI-catcher.py\n```\n\n# Links\n\nSetup of Gr-Gsm : https://osmocom.org/projects/gr-gsm/wiki/Installation and https://github.com/velichkov/gr-gsm  \nFrequency : http://www.worldtimezone.com/gsm.html and https://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications  \nMobile Network Code : https://en.wikipedia.org/wiki/Mobile_Network_Code  \nScapy : http://secdev.org/projects/scapy/doc/usage.html  \nIMSI : https://fr.wikipedia.org/wiki/IMSI  \nRealtek RTL2832U : https://osmocom.org/projects/sdr/wiki/rtl-sdr and http://doc.ubuntu-fr.org/rtl2832u and http://doc.ubuntu-fr.org/rtl-sdr  \n\n# Donate\n\nTo support my work, a tipee would be nice ;-)  \nhttps://liberapay.com/Oros/  \n","funding_links":["https://liberapay.com/Oros/"],"categories":["\u003ca id=\"a76463feb91d09b3d024fae798b92be6\"\u003e\u003c/a\u003e侦察\u0026\u0026信息收集\u0026\u0026子域名发现与枚举\u0026\u0026OSINT","\u003ca id=\"170048b7d8668c50681c0ab1e92c679a\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"375a8baa06f24de1b67398c1ac74ed24\"\u003e\u003c/a\u003e信息收集\u0026\u0026侦查\u0026\u0026Recon\u0026\u0026InfoGather"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foros42%2Fimsi-catcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foros42%2Fimsi-catcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foros42%2Fimsi-catcher/lists"}