IMSI-catcher

Wireless & RF ★ Рекомендуемый v2.0 · 31.01.2020 не обновлялся >2 лет

Пассивный перехватчик IMSI/TMSI мобильных телефонов через SDR. Использует gr-gsm + RTL-SDR для декодирования GSM broadcast каналов и извлечения идентификаторов абонентов. Показывает оператора, страну, IMSI, TMSI в реальном времени.

v2.0
31.01.2020 current
Добавлен 25.06.2026 · Обновлён 25.06.2026 · Wireless & RF
Установка
# Зависимости:
sudo apt install gr-gsm python3-numpy python3-scipy

git clone https://github.com/Oros42/IMSI-catcher
cd IMSI-catcher

# Запуск (нужен RTL-SDR):
sudo python3 simple_IMSI-catcher.py -s 25e6
переведено ИИ

IMSI-catcher

Эта программа показывает вам IMSI-номера, страну, бренд и оператора мобильных телефонов вокруг вас.

/!\ Эта программа была создана для понимания того, как работает сеть GSM. Не для дурного хакинга!

screenshot0

Что вам понадобится

1 ПК с Gnu/Linux. Протестировано на: - debian 10 - Ubuntu 20.04/LinuxMint 22.2+ - Kali 2025+

1 SDR-приёмник. Протестировано с: - USB-ключ DVB-T (RTL2832U) с антенной (менее 15$) - Телефон OsmocomBB - HackRF - BladeRF

Настройка

git clone https://github.com/Oros42/IMSI-catcher.git
cd IMSI-catcher

или

wget https://github.com/Oros42/IMSI-catcher/archive/master.zip && unzip -q master.zip
cd IMSI-catcher-master
sudo apt install python3-numpy python3-scipy python3-scapy gr-gsm

Внимание: не используйте python 3.9 (баг в ctypes)!

Importlib vs Imp

Начиная с Python 3.1, Imp заменён на importlib. Imp устарел в Python 3.11, новые требования выполняются следующим образом.

apt install python3-pip
pip install importlib

Установка gr-gsm с Docker (не рекомендуется)

sudo xhost +local:docker
docker pull atomicpowerman/imsi-catcher
docker run -ti --net=host -e DISPLAY=$DISPLAY --privileged -v /dev/bus/usb:/dev/bus/usb  atomicpowerman/imsi-catcher bash

Запускайте все команды grgsm_* в этом docker.

Использование

Мы используем grgsm_livemon для декодирования сигналов GSM и simple_IMSI-catcher.py для поиска IMSI.

python3 simple_IMSI-catcher.py -h
Использование: simple_IMSI-catcher.py: [параметры]

Параметры:
  -h, --help            показать это сообщение справки и выйти
  -a, --alltmsi         Показать TMSI, у которых нет IMSI (по умолчанию : false)
  -i IFACE, --iface=IFACE
                        Интерфейс (по умолчанию : lo)
  -m IMSI, --imsi=IMSI  IMSI для отслеживания (по умолчанию : None, Пример:
                        123456789101112 или "123 45 6789101112")
  -p PORT, --port=PORT  Порт (по умолчанию : 4729)
  -s, --sniff           Перехватывать на интерфейсе вместо прослушивания порта
                        (требует доступ root/suid)
  -w SQLITE, --sqlite=SQLITE
                        Сохранять наблюдаемые значения IMSI в указанный файл SQLite
  -t TXT, --txt=TXT     Сохранять наблюдаемые значения IMSI в указанный TXT файл
  -z, --mysql           Сохранять наблюдаемые значения IMSI в указанную MYSQL БД (скопируйте
                        .env.dist в .env и отредактируйте её)

Откройте 2 терминала.

В терминале 1

sudo python3 simple_IMSI-catcher.py -s

В терминале 2

grgsm_livemon

Теперь изменяйте частоту, пока в терминале не отобразится что-то вроде:

15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
25 06 21 00 05 f4 f8 68 03 26 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
49 06 1b 95 cc 02 f8 02 01 9c c8 03 1e 57 a5 01 79 00 00 1c 13 2b 2b

Wireshark

Вы можете наблюдать пакеты GSM с помощью wireshark.

sudo apt install wireshark
sudo wireshark -k -Y '!icmp && gsmtap' -i lo

Поиск частот

grgsm_scanner
ARFCN:  974, Freq:  925.0M, CID:     2, LAC:   1337, MCC: 208, MNC:  20, Pwr: -41
ARFCN:  976, Freq:  925.4M, CID:  4242, LAC:   1007, MCC: 208, MNC:  20, Pwr: -45

Теперь вы можете установить частоту для grgsm_livemon:

grgsm_livemon -f 925.4M

Или, для hackrf, загрузите инструмент kalibrate-hackrf следующим образом:

sudo apt-get install automake autoconf libhackrf-dev
git clone https://github.com/scateu/kalibrate-hackrf
cd kalibrate-hackrf/
./bootstrap
./configure
make
sudo make install

Запустите

kal -s GSM900
kal: Сканирование базовых станций GSM-900.
GSM-900:
    chan:   14 (937.8MHz + 10.449kHz)   мощность: 3327428.82
    chan:   15 (938.0MHz + 4.662kHz)    мощность: 3190712.41
...

Логирование данных в mysql

Используйте db-example.sql для создания вашей БД.

cp .env.dist .env
nano .env
# установите вашу конфигурацию
sudo apt install python-decouple python3-mysqldb
sudo python3 simple_IMSI-catcher.py -s --mysql

scan-and-livemon (больше не используется)

Сканировать частоты и слушать первую найденную: В терминале 1

python3 scan-and-livemon

В терминале 2

python3 simple_IMSI-catcher.py

Ссылки

Настройка Gr-Gsm: https://osmocom.org/projects/gr-gsm/wiki/Installation и https://github.com/velichkov/gr-gsm Частота: http://www.worldtimezone.com/gsm.html и https://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications Mobile Network Code: https://en.wikipedia.org/wiki/Mobile_Network_Code Scapy: http://secdev.org/projects/scapy/doc/usage.html IMSI: https://fr.wikipedia.org/wiki/IMSI Realtek RTL2832U: https://osmocom.org/projects/sdr/wiki/rtl-sdr и http://doc.ubuntu-fr.org/rtl2832u и http://doc.ubuntu-fr.org/rtl-sdr

Донаты

Чтобы поддержать мою работу, был бы приятен донат ;-)
https://liberapay.com/Oros/

Комментарии
Войдите, чтобы оставить комментарий