打造一款偽基站防御利器

雖然目前國內偽基站相比于前幾年來說已經少了很多,但還是有少量流動的,或者一些邊境區域會受到影響。以往的打擊偽基站手段都是采用大數據分析,發現后出警抓捕。但對于流動的,或者跨境的,就比較難辦了。 基于這種現狀,我們2017年開始跟某地運營商開始研發出有防御偽基站功能的設備。即設備所在范圍內,出現偽基站后,設備對偽基站展開攻擊,令偽基站失效。

思路:

要實現跟偽基站的空中對抗,早期的實驗條件,當然少不了我們的C118和OsmocomBB,C118和OsmocomBB就不多說了。

第一階段,嘗試短時間內發送大量RACH請求去消耗偽基站資源。

首先搭建實驗環境,通過BladeRF搭建了一個YateBTS。

YateBTS搭建起來后,把2臺手機設置到2G模式下,接入YateBTS,成功的撥通了兩臺手機后,實驗基站即搭建成功。接下來就是利用OsmocomBB,修改它的代碼,發起RACH dos攻擊。

要觀測RACH的效果,少不了Wireshark這個工具。從Wireshark抓包的結果上來看,C118跑起修改過的OsmocomBB后,信令里已經出現了大量IMM REJ,這個時候可以說,YateBTS已經拒絕服務了。

這個時候,其他手機雖然還能檢測出YateBTS信號,但已經無法完成位置更新。也就是說,如果這個是一個偽基站,它在我們的RACH攻擊下,已經徹底失去吸入用戶的能力。

第一階段,實驗環境測試我們已經覺得達到了效果,于是打算找運營商測試。在運營商配合下,找了個實驗小區,對該小區頻點進行RACH測試,每秒約發起15個RACH請求,發現很快運營商的基站就出現IMM REJECT了,這個結果,我們已經對該方案的可行性已經覺得OK。當天測試了十幾分鐘后,發現小區關閉了,后來溝通發現,原來監控人員發現小區指標異常,所以關站了。

當時還沒有偽基站的設備,在運營商配合下,聯系了當地的執法部門,把以前繳獲的偽基站設備進行實際測試。 當時也是第一次看到了真正的偽基站設備,一臺筆記本和一套射頻設備。

原來的套路,開啟偽基站后,大家的手機關閉4G,手機馬上收到了偽基站發來的短信。這個時候,在偽基站上再新建了一條測試短信,開始對偽基站進行RACH攻擊,大家再關閉4G。大伙還是挺激動的,因為第一次真正的測試,但當大家手機陸續響起短信聲音,就知道情況不妙了。

果然,大家還是收到了偽基站的短信。 通過測試程序,C118還是快速發起RACH,但偽基站跟之前測試的不一樣,發現并沒有IMM REJ的消息,全是ASS的,也就是說,跟之前的測試很不一樣。就這樣折騰了一個下午,發現這個方法,并不能讓偽基站停止工作,問題不知道出現在哪。

沒辦法,只能繼續尋找測試環境。后來在強大的閑魚上,買到了一塊SSRP,和一套程序,回到實驗環境繼續測試。

東西大概就這樣。我一直以為用這些的都是搞偽基站的,后來才發現,人家不是用來做偽基站發短信,而是用來做個偽基站,去檢測車里面是否有GPS。我在想,目前還有那么多2G物聯網設備,協議可能都沒加密,用這種部署個偽基站把物聯網設備吸入后抓包會怎樣?

硬件和軟件都找到后,再進行測試。偽基站程序,都是一套OpenBTS,加一個網頁控制端。發現黑產還是存在黑吃黑的情況,就是同一套底層程序,界面換一下,說支持4G,說多線程,好多選項其實只有界面,沒有實際用途,就是騙人的。還有就是發送數量,實際發送1條,會隨機顯示發送了十幾條(意思是我這套設備牛啊….)。早期這些發送數量被量刑的,不知道算不算冤了。

開始RACH測試后,通過OpenBTS的控制臺,可以看到,SDCCH信道的容量在60,然后當前攻擊狀態下,用了51條信道。 想當然的我打算增加多幾臺C118來加大1秒內發送RACH數量,但結果,測試手機還是會收到偽基站的短信。思路一下陷入僵局。

大概有1個月的時間沒有進展,為了回家晚上也能做測試,SSRP在辦公室,晚上就用2臺C118做實驗環境。其中一臺跑OpenBTS當小基站,另外一臺當客戶端。

當時的思路懷疑,是否PC上跑性能有瓶頸,畢竟usb轉串口的速率不高,GSM對時間精度又比較敏感,所以,就打算把攻擊代碼,從PC上直接移植到layer1的固件里,這樣省去了PC上的時間。

正是這樣不斷的調試,一天凌晨,改了很多次的固件測試失敗后,最后一次測試打算上床睡覺。這次測試,發現手機跑起來后,另一端的OpenBTS崩潰了!再同樣的測試了幾次,幾次OpenBTS都是崩潰。這次激動得當晚都睡不著覺。像跟做iOS逆向一樣,有時成功就是差最后一點的堅持,技術是基礎,不斷嘗試,當然還要靠點運氣。

第二天趕緊跑回辦公室,拿偽基站的設備進行測試,發現原本發送中的任務,被攻擊了一次后,任務被暫停了!!ps看了一下,OpenBTS的PID不一樣了,證明進程被重啟過!!這下跟哥倫布發現新大陸一樣興奮。漏洞的細節就不方便公布了。

總的來說,是觸發了OpenBTS的某個漏洞導致進程崩潰重啟,OpenBTS還是有很多漏洞的。偽基站的OpenBTS重啟過程中,大約會有5秒時間信號是消失狀態的,如果信號出現,馬上又對偽基站進行攻擊,偽基站就會是不停的重啟狀態。這樣不穩定的信號,達不到正常用戶小區重選的閥值,就不會落入偽基站中。

第二階段

得到了偽基站的漏洞后,第二階段就是怎樣設計硬件,能夠方便部署。 C118+筆記本的方式很難做成產品模樣。OsmocomBB不就是一個linux下的軟件么,移植到樹莓派上!

于是,陸續有了以下的“產品”原型:

??

樹莓派體積還是大了點,又陸續找到了一款合適的ARM板,自己用三極管和GPIO設計了個電源開關,畫了個PCB,硬件0.1版本出來了。

2017年底,硬件0.1版本實地測試,運營商安排測試人員,用專門的偽基站偵測儀器現場測試。該地市發現的偽基站信號,用偽基站偵測儀能不斷收取到偽基站短信。啟動攻擊設備后,偽基站偵測儀檢測到的偽基站信號時有時無,與預期一致。被攻擊過一次的偽基站,即使停止攻擊,也不會收到偽基站短信。

經過實測后,硬件能夠很好工作,剩下就是怎樣把硬件不斷改進的過程,上圖就是1.0版本的硬件(加入了4G模塊,回傳工作狀態)和基站檢測儀原型,檢測偽基站方向。

PS:

OsmocomBB可玩性其實還有很多,除了基礎的sample里的幾個,還可以用來單手機多待當多路短信貓使用。或者把SIM卡通過網絡鑒權,可以機卡分離異地登錄等。

如果你對產品或OsmocomBB感興趣,可以加我微信進行探討。

未經允許不得私自轉載——超雪團隊 » 打造一款偽基站防御利器
中國超雪團隊
關注我們,獲得更多科技潮流資訊與服務
30000人已關注
分享到:
贊(18) 打賞
粵ICP備17008388號
欢乐斗地主腾讯版2017