{"id":13539943,"url":"https://github.com/oros42/imsi-catcher","last_synced_at":"2026-10-19T00:09:44.710Z","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":"2026-06-06T13:47:14.000Z","size":456,"stargazers_count":4590,"open_issues_count":25,"forks_count":915,"subscribers_count":220,"default_branch":"master","last_synced_at":"2026-10-12T10:52:49.637Z","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":"2026-10-12T06:32:16.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,"purl":"pkg:github/Oros42/IMSI-catcher","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","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oros42%2FIMSI-catcher/sbom","scorecard":{"id":106135,"data":{"date":"2025-08-11","repo":{"name":"github.com/Oros42/IMSI-catcher","commit":"7a7929678edb7e6c24f6d234c22699a52f0dd09b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":7,"reason":"Found 9/12 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Creative Commons Zero v1.0 Universal: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T11:07:48.819Z","repository_id":33188292,"created_at":"2025-08-15T11:07:48.819Z","updated_at":"2025-08-15T11:07:48.819Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38343428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-10-19T00:09:44.705Z","avatar_url":"https://github.com/Oros42.png","language":"Python","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"],"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 22.2+  \n- Kali 2025+  \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 gr-gsm\n```\nWarning : don't use python 3.9 (ctypes bug)!  \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 (not recommended)\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","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"}