1. 程式人生 > >IMSI-catcher:可發現附近手機敏感資訊的工具

IMSI-catcher:可發現附近手機敏感資訊的工具

 

 

嚴正宣告:該工具主要是為了讓大家更好的瞭解GSM網路的工作原理而設計開發的,請不要用於惡意目的!

前言

IMSI-catcher是一個可以幫助你發現附近手機的IMSI號碼,國家,品牌和運營商等資訊的工具。

IMSI-catcher

你需要準備的裝置

一臺PC電腦

1個帶有天線的USB DVB-T key(RTL2832U)(大概在15美元以內),或是一部OsmocomBB手機一個HackRF裝置。

設定

git clone https://github.com/Oros42/IMSI-catcher.git
# or wget https://github.com/Oros42/IMSI-catcher/archive/master.zip && unzip -q master.zip

sudo apt install python-numpy python-scipy python-scapy

對於Debian Testing (10) 和 Ubuntu 18.04+ gr-gsm 的安裝,請參閱:https://osmocom.org/projects/gr-gsm/wiki/Installation

對於老版本的Debian 和 Ubuntu的安裝命令如下 :

sudo add-apt-repository -y ppa:ptrkrysik/gr-gsm
sudo apt update
sudo apt install gr-gsm

如果gr-gsm設定失敗,請參照:https://github.com/ptrkrysik/gr-gsm/wiki/Installation 進行設定。

Debian:https://tracker.debian.org/pkg/gr-gsm

執行

使用舊版本的gr-gsm

開啟2個終端。

在終端1中輸入:

sudo python simple_IMSI-catcher.py --sniff

你可以新增-h引數顯示可用選項。

在終端2中,搜尋頻率:

grgsm_scanner

使用grgsm_livemon命令嗅探你搜索到的頻率:

grgsm_livemon -f <your_frequency>M

例如:

grgsm_livemon -f 938.2M

執行後應該會產生類似以下輸出:

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
49 06 1b 95 cc 02 f8 02 01 9c c8 03 1e 57 a5 01 79 00 00 1c 13 2b 2b
...

你可以根據需求更換不同的頻率。

gr-gsm >= 0.41.2-1

同樣,開啟2個終端。

在終端1中輸入:

python simple_IMSI-catcher.py

你可以新增-h引數顯示可用選項。

在終端2中輸入:

python scan-and-livemon

這個過程可能需要幾分鐘的時間。因為,它需要執行grgsm_scanner來查詢附近的基站,並請求grgsm_livemon_headless接收訊號。

或是先找到附近基站的頻率。

grgsm_scanner

接著,使用grgsm_livemon命令嗅探你搜索到的頻率:

grgsm_livemon -f <your_frequency>M

例如:

grgsm_livemon -f 938.2M

執行後應該會產生類似以下輸出:

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
49 06 1b 95 cc 02 f8 02 01 9c c8 03 1e 57 a5 01 79 00 00 1c 13 2b 2b
...

你可以根據需求更換不同的頻率。

完成以上操作後,下面我們要做的就是等待結果。大概一分鐘左右的時間,我們就能夠在終端1中看到IMSI號碼。如果一分鐘後沒有出現任何內容,那麼請更改你的頻率。

相關文件:https://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications

例如法國的頻率為:9.288e+08 Bouygues

檢視捕獲到的資料包:

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

可選項

獲取有關訊號塔的資訊:

sudo python find_cell_id.py

獲取Immediate Assignment信令:

sudo python immediate_assignment_catcher.py

查詢頻率

除了可以使用上面提到的grgsm_scanner來查詢頻率,你也可以使用像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: Scanning for GSM-900 base stations. GSM-900: chan: 14 (937.8MHz + 10.449kHz) power: 3327428.82 chan: 15 (938.0MHz + 4.662kHz) power: 3190712.41

參考資料:

Gr-Gsm 設定:https://github.com/ptrkrysik/gr-gsm/wiki/Installation

頻率:http://www.worldtimezone.com/gsm.htmlhttps://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications

MNC: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-sdrhttp://doc.ubuntu-fr.org/rtl2832uhttp://doc.ubuntu-fr.org/rtl-sdr