在本文中,我們將講述如何使用hackRF嗅探GSM網絡的特定頻率信號,并能夠獲取到解碼之后的GSM網絡流量。
背景介紹
前段時間,當我的朋友兼同事Simone訪問我們的ZIMPERIUM(一個企業移動安全TLV辦公室)時,剛好手頭上有一個HackRF,所以就和他一起嘗試黑掉一個不設防的無線電頻率設備。Simone很有耐心地嘗試并向我解釋復數以及其他無聊的東西(有關更多),通過一遍又一遍的努力,還是填補了跟上Simone步伐的這一缺口,并通過不斷努力最終達到成功。本教程是我們共同進行GSM攻擊的結果,在這里分享出來給大家,希望它能對別人有所幫助。
所用工具
1、hackrf-kalibrate
2、gnuradio-companion
3、gr-gsm
4、gqrx
5、wireshark
安裝要求
首先,需要確保已經安裝了所有必需的軟件,可以使用發行版包管理器來安裝大多數需要的軟件以及相應的依賴文件。下面,我們先從hackRF所依賴的工具和庫文件開始,在Debian或Ubuntu發行版上,可以通過下面指令安裝它們:
sudo apt-get install hackrf libhackrf-dev libhackrf0
一旦成功安裝這些庫之后,就可以將hackrf插入到一個USB端口上,并執行指令hackrf_info,此時,應當會看到類似下面的內容:
# hackrf_info
Found HackRF board.
Board ID Number: 2 (HackRF One)
Firmware Version: 2014.08.1
Part ID Number: 0x00574746 0x00574746
Serial Number: 0x00000000 0x00000000 0x14d463dc 0x2f4339e1
接下來,通過下面的指令安裝軟件gnuradio,利用它可以解碼射頻信號,并安裝工具gqrx,利用該工具可以將特定頻率信號的功率可視化,以及一切需要的東西。
sudo apt-get install gnuradio gnuradio-dev gr-osmosdr gr-osmosdr gqrx-sdr wireshark
經過gr-gsm處理之后,GnuRadio模塊會解碼GSM數據包:
sudo apt-get install git cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy
git clone https://github.com/ptrkrysik/gr-gsm.git
cd gr-gsm
mkdir build
cd build
cmake
make
sudo make install
sudo ldconfig
現在創建文件~/.gnuradio/config.conf,并將下面的內容粘貼在該文件中:
[grc]
local_blocks_path=/usr/local/share/gnuradio/grc/blocks
最后,安裝kalibrate-hackrf,它能夠在已知的GSM頻率之間跳動,并能夠識別到你的國家所使用的頻率:
git clone https://github.com/scateu/kalibrate-hackrf.git
cd kalibrate-hackrf
./bootstrap
./configure
make
sudo make install
確定GSM 頻率
每個國家所采用的每個操作碼都使用GSM頻率段中的不同的頻率,通常是從900 Mhz開始。你可以使用hackrf_kalibrate找到你想嗅探的頻率:
./kal -s GSM900 -g 40 -l 40
注意上面的兩個增益值,它們對于得到相應結果非常重要。讓kalibrate運行一段時間,然后你應該可以看到類似下圖所示的輸出內容:
為了對應于當地的運營商,你必須使用適當的GSM參數(‘-s’),可以參考這個列表清單以確保正確。
有時候,為了確保hackrf_kalibrate獲得了正確的結果,或者為了免于自己計算hackrf_kalibrate提供的正確頻率(注意每個結果中的+/-Khz,它意味著峰值為對應的功率,但并不能100%確保為正確的頻率),你可能需要查看一下獲取的頻率值。運行gqrx并將其調節到hackrf_kalibrate獲得的第一個頻率,例如940.6Mhz,那么接下來你將會看到如下圖所示的畫面:
在上面的截圖中可以看到大約是945 Mhz。
一旦確定了GSM信道頻率,那么就可以通過運行python腳本。/airprobe_rtlsdr.py來啟動gr-gsm,或者使用gnuradio-companion加載airprobe_rtlsdr.grc文件,然后在你所發現的頻率帶內設置其中一個信道頻率。不過,不要忘記添加增益值,然后返回到頻率帶內,并按壓你鍵盤上的上/下方向箭頭開始以200Khz的步進值掃描頻率,直到在控制臺窗口上看到一些數據為止。整個過程看起來應該是這樣:
現在你只需要利用下面的指令從另一個終端啟動wireshark:
sudo wireshark -k -Y ‘gsmtap && !icmp’ -i lo
如果gr-gsm運行順利,那么你將能夠看到hackrf嗅探到的解碼之后的GSM流量。
上一篇:大數據安全分析漫談