前 言
嗅探裝置價格低廉,很容易買到,一般幾百塊錢就可以配一套。一般使用摩托羅拉C118手機主機板、天線、串列埠模組改裝成嗅探裝置。現在雖然大家都用4G的LTE網路了但是還有大量的2G的GSM網路存在,現在的GSM網路主要是中國移動的使用者,中國電信沒有GSM網路,中國聯通在清退GSM網路,中國移動先清退的是3G 的TD網路而不是2G的GSM網路。GSM網路有一個很大的缺陷就是有很多的偽基站存在,在說偽基站之前先說我們相互之間通訊的過程。我們打電話/發簡訊的過程是,手機訊號是連線到離你最近的基站(BTS)然後進入RNC,MSC進行核心網的交換,再發給離對方最近的基站最後傳到對方的手機中。如果這個時候你的手機接入的不是運營商的基站,那就危險了,這就相當於你進了“賊窩”了,這個不是運營商的基站就是偽基站。
為什麼我們的手機會進入假的基站呢?
這是因為GSM網路的鑑權存在缺陷。在GSM網路中手機接入網路要鑑權驗證,簡單說就是運營商驗證你的手機是否是合法使用者,如果是就可以通訊了,但是手機不會驗證接入的基站是不是運營商的正規基站,這樣即便接入了偽基站使用者也是不知道的,在3G、4G的網路中會有這樣的鑑權驗證,比GSM網路安全的多。 嗅探裝置的組裝換湯不換藥,只是組了一個更大的裝置出來,用來複現簡訊嗅探場景。
☆ 注:本文章只能用來測試,請勿用於非法用途。違者必究,且行且珍惜。
設 備 清 單
- 摩托羅拉 C118手機 (6個改裝過)
- 樹莓派板
- USB擴充板 (6口的)
- USB 轉串列埠 FT232rl (6個)
- 電源變壓器一個
- 自定義電源中心控制器一個
- 天線 6根
- 承載用盒子一枚
- N個開關
- N個電阻和針腳
- 小號訊號降頻裝置 (測試用)
- 6類網線或者其他型別的線。(串聯裝置用)
- 錫焊機器 (焊接裝置用)
- 無線wifi路由器 (除錯用)
設 備 安 裝
1.改裝C118手機
C118手機是不可缺少的一部分,為什麼要用6個裝置呢?因為一臺c118手機只能夠監聽也就是嗅探一個頻點,所以按道理來說手機越多越好。來一個改裝過全圖,下圖中是我做好的C118手機,僅供參考,實際情況看你自己需求。
先把C118手機外殼扒掉,準備 7根顏色不同的線,推薦6類網線,方便區分。接線方法請參照圖中標識。
電源介面處接上 針腳
usb串列埠轉接線 一定別接錯了 否則無法開機無法刷機。。
因為天線介面我在網上找了半天也沒有找到 用易拉罐做了一個相似的接頭。可以參照我的發揮。 到此手機已經改裝好了 按照上圖 在做 5個出來
2.組裝
####2.1 供電
由於我裝置已經焊死 不好拆卸,只好以上圖方式 分開說明。可以看到上圖 電源集合供電處,有塊開發板,這個板的作用是給所有 裝置供電,如手機樹莓派,usb集線器,等等,可以參照我的做,但是也可以自己重新設計。
####2.2 樹莓派和USB集線器
介面太多 按照上圖編號所示,
- USB集線器資料線接到樹莓派USB口
- USB集線器電源接到供電開發板上
- USB集線器電源介面
- 樹莓派供電口
- 樹莓派接集線器USB介面
- 樹莓派USB接的無線網路卡
- 樹莓派網口接的網線轉接頭
上圖中 可以看到樹莓派起到控制中心的作用,用來控制手機刷機嗅探等功能。至於USB集線器為什麼要選擇單獨供電,是因為可能會導致電流不穩定,導致刷機失敗。
####2.3 電源開關控制器
上圖是比較複雜的手工製作的電路控制器,用的c51可程式設計微控制器。
下圖是電路原理圖,看電路圖可能看的更佳清晰明瞭。
C52微控制器程式碼
#include <reg52.h>
void delay(unsigned int);
sbit LED0 = P0^0;
sbit LED1 = P0^1;
sbit LED2 = P0^2;
sbit LED3 = P0^3;
sbit LED4 = P0^4;
sbit LED5 = P0^5;
sbit LED6 = P0^6;
sbit LED7 = P0^7;
sbit LED_0 = P1^0;
sbit LED_1 = P1^1;
sbit LED_2 = P1^2;
sbit LED_3 = P1^3;
sbit LED_4 = P1^4;
sbit LED_5 = P1^5;
sbit LED_6 = P1^6;
sbit LED_7 = P1^7;
sbit STAU_A = P2^3;
sbit STAU_B = P2^2;
sbit KEY = P2^1;
void delay(unsigned int i){
unsigned int j,k;
while(i--){
for(j = 0; j < 255; j++)
for(k = 0; k < 240; k++);
}
}
void main(){
unsigned char i;
while(1){
i=KEY;
STAU_A=0;
if(i==0){
i=KEY;
if(i==0)
STAU_B = 0;
LED0 = 0;
LED1 = 0;
LED2 = 0;
LED3 = 0;
LED4 = 0;
LED5 = 0;
LED6 = 0;
LED7 = 0;
LED_0 = 0;
LED_1 = 0;
LED_2 = 0;
LED_3 = 0;
LED_4 = 0;
LED_5 = 0;
LED_6 = 0;
LED_7 = 0;
delay(10);
STAU_B=1;
LED0 = 1;
LED1 = 1;
LED2 = 1;
LED3 = 1;
LED4 = 1;
LED5 = 1;
LED6 = 1;
LED7 = 1;
}else{
i=KEY;
}
}
}
完工,在實際操作中碰到很多坑,大部分配件都是自己純手工製作,雖然GSM嗅探技術年代久遠,沒有新鮮技術,但是想要研究無線安全技術,這是必定經歷的一關。
設 備 調 試
1.樹莓派除錯
把樹莓派口網線口插入到路由器lan口。獲取到ip後直接ssh連線。如果沒有提前配置好ip的話估計要採用串列埠的方式連線了,這裡不細做解釋,自行百度。下面演示沒有什麼新鮮的配置和技術。
2.編譯
工具:
sudo apt-get install libtool shtool autoconf git-core pkg-config make gcc
gnuarm:
32 bit wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 tar xf bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 mv gnuarm-* ~/gnuarm export PATH=~/gnuarm/bin:$PATH
libosmocore:
git clone git://git.osmocom.org/libosmocore.git cd libosmocore/ autoreconf -i
./configure
make
sudo make install
cd ..
ldconfig
具體編譯過程可以參照網上的編譯方法 也可以直接下載2進位制檔案.
https://github.com/K1two2/OsmocomBB_Raspberry-Pi_SMS_WEB_CODE
3.確定當前手機接入基站
使用降頻裝置降頻後檢視蘋果手機基站ARFCN值。
手機在連入GSM基站時,我們可透過一些方式確定自己手機連入的是哪個基站、ARFCN是多少,安卓手機在2G狀態時,可在鍵盤撥號介面輸入: *#*#4636#*#* 上面這個是安卓通用的如果你的手機沒反應,還可以嘗試
Samsung (Android) : *#*#197328640#*#* or *#0011#
iPhone (all) : *3001#12345#* 撥號
HTC (Android) : *#*#7262626#*#*
進去以後能找到基站的MCC、MNC、ARFCN這些引數。
MCC 移動國家碼MNC Mobile Network Code,行動網路碼,共2位,中國聯通GSM系統使用01,中國移動GSM系統使用02ARFCN 絕對無線頻道編號(Absolute Radio Frequency Channel Number – ARFCN ),是在GSM無線系統中,用來鑑別特殊射頻通道的編號方案。手機開機後,即搜尋廣播控制通道(BCCH)的載頻。因為系統隨時都向在小區中的各使用者傳送出用廣播控制資訊。手機收集到最強的(BCCH)對應的載頻頻率後,讀取頻率校正通道(FCCH),使手機(MS)的頻率與之同步。所以每一個使用者的手機在不同的位置(即不同的小區)的載頻是固定的,它是由GSM網路運營商組網時確定,而不是由使用者的GSM手機來決定。手機讀取同步通道(SCH)的資訊後找出基地站(BTS)的認別碼,並同步到超高幀TDMA的幀號上。手機在處理呼叫前要讀取系統的資訊。如:領近小區的情況、現在所處小區的使用頻率及小區是否可以使用移動系統的國家號碼和網路號碼等等,這些資訊都以BCCH上得到。手機在請求接入通道(RACH)上發出接入請求的資訊,向系統傳送SIM卡帳號等資訊。系統在鑑權合格後,透過允許接入通道(AGCH)使GSM手機接入通道上並分配給GSM手機一個獨立專用控制通道(SDCCH)。手機在SDCCH上完成登記。在慢速隨路控制通道(SACCH)上發出控制指令。然後手機返回空閒狀態,並監聽BCCH和CCCH公共控制通道上的資訊。
4.測試裝置
簡訊嗅探其實可以分為三步曲 刷機>掃描>監聽嗅探。
切換到root模式下檢視usb串列埠是否讀取到。我這裡有6個USB口,可以看到上圖是正常能夠讀取到usb口。
刷機:
刷機成功 接下來掃描頻段
啟動wireshark sudo wireshark -k -i lo -f 'port 4729'
網路卡一定要選擇對,否則只能在本地抓包,-i 是指定網路卡
/root/c118bin/bin/layer23/misc/ccch_scan -i 你的外網地址 -a 頻段
收到資料。
5. 開車
這裡使用https://github.com/lxf94/GSM-Sniffer 按照smshack要求填入響應的路徑,這裡一定要注意裡面的路徑是否正常,否則是無法測試成功的。git開源的這個還不錯,能支援多個裝置同時,不過也有弊端。到時候再改吧。
結 尾
GSM嗅探不算什麼最新技術,但是是一個無線安全的必經之路,該文章單為記錄操作過程,方便以後觀看,裝置也是花了不少時間才做完。
上文作為學習,各位大神就別噴我了。裝置後期還需要更多更改和最佳化,後期有時間會出一個詳細的改後的文章,比如透過web 一鍵啟動手機軟刷機等等,未完待續!!!
參 考 文 獻