極客DIY:如何構建一台屬於自己的基站


寫在前面(原文作者)

上周我去特拉維夫(Tel Aviv)探望我的朋友結果有了一些收獲,一塊嶄新的BladeRF(x40),即一個支持USB3.0的SDR平台,這就意味着可以同時發送和接收信息了。而HackRF不同於其他兩款硬件,它不支持全雙工。這意味着要切換收和發的話,必須每次給控制器發送命令。

微控制器處理切換可能要花費微秒級的時間。在這篇文章中將會介紹如何建立一個小型便攜式GSM基站,GSM網絡可以遭到攻擊/劫持/攔截,當然你可以利用相對價格比較低的電子設備做到這一點。而本文也僅僅供交流學習使用。

本文中介紹的工具、技術帶有一定的攻擊性,請合理合法使用。

硬件要求

bladeRF x40

兩個天線(點擊我)

樹莓派3

充電寶(作者使用的是 Anker Astro E7(26800mAh))

一個專為樹莓派准備的SD卡(不低於8G)

軟件

讓我們開始為樹莓派安裝Raspbian系統(lite版),然后將系統寫入SD卡中,開始啟動樹莓派,開始配置WiFi以及網絡連接等,完成后應該可以用SSH方式對樹莓派進行管理。

這一步將會進行的很快:

sudo apt-get install git apache2 php5 bladerf libbladerf-dev libbladerf0 automake

完成上一步,應該可以連接BladeRF,將其插入到樹莓派一個USB端口中,輸入dmesg 就可以看到相關信息了:

[ 2332.071675] usb 1-1.3: New USB device found, idVendor=1d50, idProduct=6066

[ 2332.071694] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 2332.071707] usb 1-1.3: Product: bladeRF

[ 2332.071720] usb 1-1.3: Manufacturer: Nuand

[ 2332.071732] usb 1-1.3: SerialNumber: b4ef330e19b718f752759b4c14020742

輸入bladeRF-cli 以及version指令查看版本信息:

pi@raspberrypi:~ $ sudo bladeRF-cli -i

bladeRF> version

  bladeRF-cli version:        0.11.1-git

  libbladeRF version:         0.16.2-git

  Firmware version:           1.6.1-git-053fb13-buildomatic

  FPGA version:               0.1.2

bladeRF> 

當然bladeRF可以支持很寬的載頻范圍,帶有一個大容量的FPGA,還有高速的USB3.0接口。通過上面的信息可以了解到具體的版本信息,而其它版本的固件在我們的配置條件下不可能工作的。

現在我們開始安裝兩個開源軟件 Yate和YateBTS,這樣我們就可以創建基站了。而作者也花費了很長的時間來尋找與bladeRF適合的軟件,作者已經將找到合適的程序了,你現在只需要這樣做,就可以安裝在樹莓派home路徑下的文件夾里面了:

我們開始正式安裝那兩個軟件吧:

cd yate

./autogen.sh

./configure –prefix=/usr/local

make -j4

sudo make install

sudo ldconfig

cd ..

cd yatebts

./autogen.sh

./configure –prefix=/usr/local

make -j4

sudo make install

sudo ldconfig

這需要花費幾分鍾的時間,然后就可以完成安裝了。接下來就需要在www文件夾目錄下創建軟連接:

cd /var/www/html/

sudo ln -s /usr/local/share/yate/nib_web nib

賦予配置文件權限:

sudo chmod a+w -r /usr/local/etc/yate

現在就可以在瀏覽器里面查看基站的網頁了:

http://ip-of-your-rpi/nib

配置

使用 nano或vi編輯器打開 /usr/local/etc/yate/ybts.conf配置文件,然后更新里面信息:

Radio.Band=900

Radio.C0=1000

Identity.MCC=YOUR_COUNTRY_MCC

Identity.MNC=YOUR_OPERATOR_MNC

Identity.ShortName=MyEvilBTS

Radio.PowerManager.MaxAttenDB=35

Radio.PowerManager.MinAttenDB=35

然后就可以找到mcc(移動國家代碼)或mnc號(移動網絡號碼)。

現在可以編輯 /usr/local/etc/yate/subscribers.conf配置文件了:

country_code=YOUR_CONTRY_CODE

regexp=.*

警告:如果使用“ .* ”(正則表達式)將會導致信號范圍內的每一部具有GSM功能的手機連接到你的基站上。

在你的測試頁面(NIB)上會看到這樣的信息。

監聽

在“Tapping”選項下,你可以配置 GSM以及GPRS選項,在測試接收機性能時,終端把收到的下行數據解調后重新編碼調制並發回給測試儀器,然后儀器把終端環回的比特與原始發送的比特比較,計算BER(誤碼率)或FER(誤幀率)或PER(誤包率)。這種所謂的環回模式(Loopback)被廣泛應用於GSM接收機測試中。而這次也不例外,由於我還沒有選擇加密信息,所以你可以看見所有的gsm流量信息。

使用基站

現在可以通過輸入指令的方式來操作基站吧( BladeRF插入狀態):

sudo yate -s

如果配置都正確就可以看到這樣一組信息:

Starting MBTS…

Yate engine is initialized and starting up on raspberrypi

RTNETLINK answers: File exists

MBTS ready

在這一刻,BladeRF上中間的LED燈應該開始閃爍了。

測試

現在開始測試吧,手機會連接基站,當然這是由於GSM功能本身的原因。

現在你可以設置任何你想要的MCC、MNC、LAC(位置區域碼),甚至可以騙過合法的基站了。

相信手機都會選擇信號強的基站進行連接,小伙伴你說會連接哪個基站。作者用的三星 Galaxy S6手機(Network Cell Info Lite應用程序)做的測試,三分鍾之后的截圖:

現在你可以隨意配置基站來做自己喜歡做的事情了,當然你也可以通過“代理”來做一個合法的SMC(一個GSM/3g USB dongle)或者獲取GSM手機流量信息,或創建一個免費的SIP業務供人使用,更多信息參閱 YateBTS

前面准備的充電寶也不是沒有用的,插上充電寶之后就可以成為一個移動便攜式的基站了。

擴展閱讀

https://github.com/Nuand/bladeRF/wiki/Setting-up-Yate-and-YateBTS-with-the-bladeRF

https://z4ziggy.wordpress.com/2015/05/17/sniffing-gsm-traffic-with-hackrf/

https://z4ziggy.wordpress.com/2015/05/10/ziggys-embedded-bts/

http://wiki.yatebts.com/index.php/Main_Page

*參考來源evilsocket


免責聲明!

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



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