不知道爲何,感受僞基站又有些捲土重來的趨勢,不想廢話,先分享幾個僞基站識別技巧,供拍磚交流。php
0×01 瞭解僞基站數據庫
前幾年協助某些部門作過僞基站的電子取證分析,在對批量僞基站設備和軟件平臺的分析時,發現雖然大多數僞基站使用者,在設置參數前都會先對周邊基站的開放頻點、MNC、LAC、CI等信息進行掃描,但有些選項卻有趣地帶有明顯的掩耳盜鈴風格,好比這個基站別名。以下圖所示,出於避免懷疑的心理,大多數僞基站的別名都會設置爲「應急通訊」……這算是一葉蔽目麼?數組
僞基站原理什麼的有不少人在講,就不重複廢話了,下圖裏是僞基站平臺上某個號碼的已發送對象與欺詐短信數量,能夠清晰地從IMSI列表上看到周邊出現的手機被依次強制拉入。安全
和木馬的自毀設計同樣,既然國內僞基站基本上都基於OpenBTS開源項目,因此那些開發的guys也都會設計平臺在指定時間或者經過預設操做,試圖在後臺銷燬一切已發送數據。不過明顯地,不少人都低估瞭如今的電子取證能力,下圖裏是當時鑑定組裏某帥草在Ubuntu下提取的已刪除log數據,這臺僞基站裏同類文件有數萬個。爲何要「毀屍滅跡」?固然是銷燬罪證嘍,但關鍵點是,目前在國內,發送條數也是量刑的重要參照依據,這下明白了吧。網絡
0×02 基本判斷架構
最基本的判斷徹底是基於表面化的異常狀況判斷,不能說必定是僞基站所致,但應該引發警覺或者能夠作點測試打消懷疑,如下判斷依據僅做參考:工具
1)通話中信號忽然中斷。性能
在排除周邊信號很差或者存在信號死角以外,極可能是被僞基站強制「吸」走,因而信號被「切斷」。典型現象就是手機信號從滿格跌落到無信號,而後又快速回升。在僞基站上看到的效果參見上圖的IMSI列表。測試
2)通訊網絡模式改變。網站
如今你們用的都是4G或者3G網絡,正常狀況下載手機屏幕頂上右側會出現一個階梯狀信號格數提示,通常會顯示「4G」或「3G」,當忽然改變爲「GSM」、「G」或者再也不顯示具體網絡類型時,就意味着遭遇到強制「降頻」,即從4G(僅舉例:1880-1900MHz)被拉到了GSM(僅舉例:890-990/935-954MHz)。
這是因爲僞基站主要仍是基於GSM制式,沒法對4G網絡支持所致。固然,對於公安技偵部門來講,在特殊場合監控時某些設備可能也會致使一樣效果,這裏就再也不解釋。好吧,如果很是幸運遇到了CDMA制式的僞基站……當我沒說。
3)沒法接收短信接打電話。
確定的,一旦被僞基站「劫持」,手機的全部通訊就只能與僞基站交互,因爲僞基站沒法與合法基站進行鑑權等交互,因此就至關於處於「孤島」模式,天然全部對外聯繫都被中斷。這就解釋了有時候信號格數還行,但卻打不出去電話接收不到短信的緣由,特別是對於一些就處於3G/4G信號薄弱的區域。
4)運營商信息。
在Android下,能夠經過查看手機電話卡(就是SIM卡)狀態信來查詢當前網絡的運營商相關信息,在疑似被僞基站劫持時,打開查看便知。通常僞基站在此處的信息很是稀少,好比網絡名稱標識下「中國移動」就會顯示爲「應急通訊」,甚至有時候會放一個類似的詞,好比以前就見過「中國挪動」,也不知道是否是惡搞。
5)異常LAC和CID值。
這算是之前對早期僞基站的一個斷定方法,一個區域內出現異常數值的LAC或者CID值。原理是僞基站通常爲了減小運營商注意,會刻意先探查周邊的基站LAC和CID參數後,而後給僞基站設置一個絕對不會出現衝突或干擾的高位數值。同一個運營商下的基站設備確定也要考慮這個,但正常是不會設置差距較大的數值,因此在移動探查中,一旦出現一個比周邊LAC、CID值差距很大的基站,除了真正的應急通訊基地車,極可能就是僞基站。
大體就這麼多,下面再看看其它的技巧。
0×03 基站定位輔助判斷
一提到基站定位,估計有人就會想到什麼三角、多點定位法,通常而言,必須獲取到基站的三個參數(MNC、LAC、CID)才能進行基站定位,拿到這三個參數就能夠藉助基站網站對此基站的位置進行定位,直接地圖上顯示出基站的位置。不過此次咱們是識別僞基站,並非爲了精確鎖定僞基站位置,因此仍是簡單粗暴點。
做爲判斷僞基站真僞的技巧之一,說出來很簡單,就是獲取下當前疑似僞基站的LAC和CID,直接到基站數據網站查詢該基站是否真實存在,沒有入庫的即爲僞基站:)
3.1 基站數據庫
在此以前,咱們先了解下一個標準的基站數據庫應該具有的內容,也順便解釋下剛提到的MNC、LAC和CID。
3.2 基站定位數據查詢實例
對於玩過OsmocomBB和Airprobe的人來講,經過對空口數據的抓包,能夠很輕易地獲取到附近基站信息。
從上圖中提取LAC和CID值,到相關的基站查詢網站,輸入LAC和CID就能馬上查到該基站的具體物理位置。深圳的同窗對下圖這個地址是否是很熟悉?嘿嘿,這個就是深交所附近的基站位置。
經過對請求數據的分析:
請求地址:http://v.juhe.cn/cell/get
請求參數:
mnc=&lac=9332&cell=3612&hex=&dtype=&callback=&key=0cd0f9b15c29099bcab50aa8b955b63b
請求方式:GET
返回內容以下圖:
由上面查詢的內容和返回的字段,再對照標準基站數據庫信息結構就能夠看出,雖然有點區別,但一個基本的基站數據庫具有內容大體同樣:
MCC:移動國家號(MCC)由三位十進制數組成,它代表移動用戶(或系統)歸屬的國家
MNC:這裏廠商定義爲移動基站:0,聯通基站:1。各個廠商都會進行調整。
LAC: 爲了肯定移動臺的位置,每一個GSMPLMN的覆蓋區都被劃分紅許多位置區,位置區碼(LAC)則用於標識不一樣的位置區。
CELL:就是CELL ID,這裏廠商爲了方便簡化爲CELL。
LNG:地圖座標緯度
LAT:地圖座標經度
O_LNG:谷歌地圖座標緯度
O_LAT:谷歌地圖座標經度
PRECISION:精確度
ADDRESS:預設地址描述
好了,常見基站定位/基站數據查詢網站扔出來了,支持開發接口、API什麼的,總之之後別再爲基站數據來煩我:
3.3 更簡便的獲取LAC與CID
對於稍懂通訊技術的人而言,工程手機是個實時獲取基站信息的好選擇,用僞基站的都會配一個刷過的NOKIA老式手機,固然,刷下C118也能用,不過對於如今人手一個的智能手機而言,也有些APP可以更方便地獲取到LAC和CID信息,好比這款很是有名的GSM Signal Monitoring(國內市場:GSM信號監測專業版),支持GSM和UMTS網絡,可以自動收集並顯示周圍基站的小區ID、LAC、信號強度等級的信息。其它APP用得少就不介紹了。
恩,下圖就是這款工具的日誌,哈哈,能查到個人位置不?
頻點列表
在對基站掃頻時,正常狀況下,從實用性上考慮,一個G網的基站至少提供3個以上的頻點支持(請不要拿偏僻基站的例子反駁,謝謝),繁華地段的基站甚至會開放七、8個以上的頻點,同時部署密度會增大,而每一個頻點上的8個時隙(Slot)也會所有開放接入。好,掃盲結束,咱們直接從數據包上看看實際的頻點列表是封裝在GSMTAP協議中,具體是下面這樣的:
而在默認狀況下,雖然OsmocomBB能夠很容易地抓取到任意頻點Slot0的一些數據,可是嚴重的丟包率仍是使得該開源項目用於實戰的可行性下降了不少。關於時隙的概念你們自行查資料吧,就會明白OsmocomBB裏面這個最明顯的大坑是什麼。
扯遠了,回到咱們的判斷技巧上,既然一個正規的基站應該是提供了很多於3個頻點的接入,且每一個頻點上支持8個Slot(雖然不必定每一個有用)。那麼技巧來了,只須要用工程手機或者掃頻軟件查驗下當前基站的可用頻點數量,並切換下不一樣的頻點,便知基站是是真假。深刻點的還能夠切換時隙Slot0~Slot7進行抓包,就會發現和正規基站徹底不一樣的狀況,細節之後找機會描述。
0×04 短信中心號碼識別
基本思路是對接收到的常見短信/彩信進行解析,提取短信服務中心號碼,經過對短信服務中心號碼的判斷,來識別是否爲僞基站發送。各個地區都有本身的信息中心號碼,短消息是沒法發送成功的。對於中國移動,短消息中心號碼以+861380開頭,緊接4位該號碼所在的地區碼(電話區號),比方0571(杭州),最後通常是500。對於區號小於四位的地區,地區碼則在第四位補0,例如北京0100。
以下圖就是直接在Android下查看SIM卡對應的短信中心號碼,以下右圖顯示的短信中心號碼是+8613800290500,依照定義,該號碼是陝西的短信中心號碼。
因此,在遭遇到僞基站的信號劫持後,短信中心號碼失效,沒法再正常接收和發送短信,而收到的強制推送的垃圾、釣魚短信,也再也不是經過預設的短信中心號碼。這須要很簡單的一個查詢參數就能判斷是否僞基站。
0×05 基於IP判斷
在手機正常收到彩信,咱們點擊讀取彩信內容時,實質上是訪問到彩信中包含的一個IP地址。下圖是標準的基於MMSE架構的彩信,能夠看到彩信中包含的實際地址。
而能查看彩信內容也就是訪問該IP地址的前提,簡單來講,天然就是手機自己也持有一個已註冊的合法IP地址,這個地址能夠經過讀取手機狀態信息得到。須要說明的是,這個IP並非固定的,將隨着手機的重啓會更新。以下圖所示,一樣的,也能在手機的移動夢網MMS設置中看到代理網關的IP地址。
思路來了,只須要從IP上開展下判斷就能夠直接識別出僞基站。能夠開展的角度有IP地址段區間(192開頭的確定有問題了)、IP開放端口掃描識別等等…….本身琢磨吧。
0×06 構造特殊短信
篇幅太長了,再收縮一下。再換一個麻煩點的思路,該思路適用於複雜的僞基站劫持環境,好比被完全劫持了語音和短信通訊的場景。
根據短信SPEC的規定,短信分爲class0,class 1,class 2 和class 3四種,具體描述以下表所示:
其中,class 0 短信是不用用戶確認就直接顯示的短信,日常的普通短信多爲class 1,會存儲在手機上,而SIM上的存儲空間是用於存儲class2短信的。用戶只能手動的將手機裏的短信copy到SIM上。
看到這裏,明白思路了麼?就是若是疑似被困在某個僞基站下,能夠發送除Class1類型以外的特殊短信確認下,目前沒有業務架構支撐的僞基站是沒法識別這些類型短信的,
悄悄說聲,其實也能夠利用下僞造號碼向任何手機發送短信漏洞,恩,在線漏洞庫裏有不少,參考下就明白。幫人幫到底,Google用inurl參數配合關鍵字smssend也能夠找到不少短信發送後臺頁面。
0×07 對業務的威脅
前年參加TSRC時就已經在提僞基站識別,當時TX已經在考慮僞基站對QQ的影響,這個其實對電商業務的威脅也挺明顯,只是目前形成的危害還沒那麼誇張。
威脅1:線上實時交易威脅。可能整個交互被劫持,固然,難度很大,建議在啓動交易前先進行「通訊環境安全檢查」,確保當前沒有在僞基站或者疑似被監控被劫持的通訊網絡環境下,確保交易的順利開展。
威脅2:虛假短信欺詐威脅。在線上交易過程當中,典型的交易短信提示、驗證碼短信提示、帳戶修改短信提示、餘額不足短信提示、帳戶密碼錯誤短信提示……等等,實在太多地方能夠作手腳,固然,這些虛假短信既能夠獨立出現(好比附上一個釣魚網站),也能夠配合一系列複雜的釣魚手段出現(好比虛假站點的驗證短信,增長真實感)。從理論上而言,對一個小區2棟居民樓的大部分用戶的欺詐短信發送,總會有上鉤的。
威脅3:移動襲擊難以鎖定。目前已經破獲的大部分僞基站案件中,除了早期那些放到昌河面包車裏的「殭屍僞基站」外,嫌疑人都是邊開車邊開動僞基站,半小時甚至更短期就會離開,這樣很難第一時間鎖定來源,也就形成了欺詐事件的難以破獲。
威脅4:難以察覺的降級攻擊。通常而言,攻擊者如果爲了得到某個區域一片人羣的交易數據,徹底能夠用干擾器故意打掉或者僞基站劫持的方式破壞掉4G及3G網絡,使得當前網絡通訊環境不得不從高速4G降級到慢速的2.5G,在沒法忍受慢速的狀況下,不少人就會選擇附近的商業或者免費的WiFi熱點,這樣,提早部署的釣魚WiFi就能夠大量收穫了……這些實現起來真不難。
威脅5…..略
0×08 小結
去年有機會和公安部「打擊僞基站領導辦公室」的一位負責人交流:雖然在過去兩年,公安部嚴打已經打掉了絕大多數僞基站的上下游,可是技術一直在進步,好比OpenLTE開源項目中的一些架構、軟件無線電的新應用、配合OpenIMS業務架構等等,都極可能被用於新的僞基站技術……這些技術將使得僞基站更小更強大,並且,低成本高性能一直是僞基站開發者追求的目標之一,撇去黑產收益方面不說,單純從技術角度研究,仍是蠻有意思的。