偽基站識別技巧(一)


不知道為什么,感覺偽基站又有些卷土重來的趨勢,不想廢話,先分享幾個偽基站識別技巧,供拍磚交流。

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什么的,總之以后別再為基站數據來煩我:

1) http://www.cellid.cn/

2) https://www.juhe.cn/d/cellmap/gsm.php

3) http://www.jizhanyun.com

3.3 更簡便的獲取LAC與CID

對於稍懂通信技術的人而言,工程手機是個實時獲取基站信息的好選擇,用偽基站的都會配一個刷過的NOKIA老式手機,當然,刷下C118也能用,不過對於現在人手一個的智能手機而言,也有些APP能夠更方便地獲取到LAC和CID信息,比如這款非常有名的GSM Signal Monitoring(國內市場:GSM信號監測專業版),支持GSM和UMTS網絡,能夠自動收集並顯示周圍基站的小區ID、LAC、信號強度等級的信息。其它APP用得少就不介紹了。

恩,下圖就是這款工具的日志,哈哈,能查到我的位置不?

頻點列表

在對基站掃頻時,正常情況下,從實用性上考慮,一個G網的基站至少提供3個以上的頻點支持(請不要拿偏僻基站的例子反駁,謝謝),繁華地段的基站甚至會開放7、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業務架構等等,都很可能被用於新的偽基站技術……這些技術將使得偽基站更小更強大,而且,低成本高性能一直是偽基站開發者追求的目標之一,撇去黑產收益方面不說,單純從技術角度研究,還是蠻有意思的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM