Kali-Linux 2016.1的 GSM Sniffer 搭建
首先感謝ID:一只猿和diulei前輩的博文
設備:1.MOTOROLA c118手機一部
2.2.5mm 3極耳機線一根
3.USB轉TTL模塊一個
4.筆記本虛擬機(最新版本Kali 2016.1 官方源)本文主要針對軟件部分進行詳解
第一步:對系統更新
~# apt-get update && apt-get upgrade
第二步:Osmocom-bb嗅探平台是需要自己在本地編譯的,下面安裝編譯環境
~# apt-get install libusb-dev libpcsclite-dev libusb-0.1-4 libpcsclite1 libccid pcscd
~# apt-get install libtool shtool autoconf git-core pkg-config make gcc build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev libpcsclite-dev
第三步:建立工作目錄armtoolchain下載ARM編譯器為編譯osmocombb做准備
~# mkdir armtoolchain ~# cd armtoolchain/
mkdir build install src // 建立三個子目錄
wget http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.3.sh // 獲取 # cd src
# wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
# wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
# wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
第四步:安裝gnu-arm-build.3.sh
# cd ..
# chmod +x gnu-arm-build.3.sh // 獲取執行權限
# ./gnu-arm-build.3.sh // 運行腳本
I will build an arm-none-eabi cross-compiler:
Prefix: /root/armtoolchain/install
Sources: /root/armtoolchain/src
Build files: /root/armtoolchain/build
Press ^C now if you do NOT want to do this. // 直接回車進入編譯流程
耐心等待,要很久 。。。
Build complete! Add /root/armtoolchain/install/bin to your PATH to make arm-none-eabi-gcc and friends
accessible directly.
要求安裝完過后添加環境
# cd install/bin
# pwd // 查看路徑
/root/armtoolchain/install/bin // 路徑
# vi ~/./.bashrc // 添加環境變量
export PATH=$PATH:/root/armtoolchain/install/bin // 最后一行添加,保存退出
# source ~/.bashrc // 讓環境變量生效
第五步:下載並編譯osmocomBB
# cd ~/armtoolchain/ //回到armtoolchain目錄下載osmocomBB
# git clone git://git.osmocom.org/libosmocore.git
# git clone git://git.osmocom.org/osmocom-bb.git
# wget https://www.samba.org/ftp/talloc/talloc-2.1.7.tar.gz // 安裝Libosmocore執行./configure時所需的包talloc
# tar -zxvf talloc-2.1.7.tar.gz // 對其解壓
# cd talloc-2.1.7/
# ./configure
# make
#make install
開始安裝Libosmocore
# cd ..
# cd libosmocore/
# autoreconf -i
# ./configure
# make
# make install
# cd ..
開始編譯osmocombb
# cd osmocom-bb
# git checkout --track origin/luca/gsmmap
# cd src
# make
細心地人應該觀察到了它編譯過程中出現很多警告,現在讓我們來解決掉它- -
#cd ~ # vi armtoolchain/osmocom-bb/src/target/firmware/board/compal/highram.lds
# vi armtoolchain/osmocom-bb/src/target/firmware/board/compal/ram.lds
# vi armtoolchain/osmocom-bb/src/target/firmware/board/compal_e88/flash.lds
# vi armtoolchain/osmocom-bb/src/target/firmware/board/compal_e88/loader.lds
# vi armtoolchain/osmocom-bb/src/target/firmware/board/mediatek/ram.lds
找到里面的這一串代碼
KEEP(*(SORT(.ctors)))
在下面加入
KEEP(*(SORT(.init_array)))如圖
五個一一修改保存后,重新編譯
# cd ~/armtoolchain/osmocom-bb/src/
# make -e CROSS_TOOL_PREFIX=arm-none-eabi-
好了,到此軟件弄完了,插入設備之前還要安裝你一個芯片驅動由於Kali Linux2016.1 內核是Debian 4.6.4-1集成了ch341的芯片驅動,於是就好辦很多。
# cd ~
# apt-get install minicom
開始連接設備刷機
# cd ~
# cd armtoolchain/osmocom-bb/src/host/osmocon/
# ./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin
回車后按下手機關機鍵等待刷機成功,手機出現Layer 1 字樣
切記不要關閉終端,然后另開終端
# cd armtoolchain/osmocom-bb/src/host/layer23/src/misc
# ./cell_log -O
繼續開一個終端
# cd armtoolchain/osmocom-bb/src/host/layer23/src/misc
# ./ccch_scan -i 127.0.0.1 -a ARFCN
再開一個終端用wireshark進行抓包
wireshark -k -i lo -f 'port 4729'
wireshark會出現一個錯誤
Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled
解決辦法終端輸入
# gedit /usr/share/wireshark/init.lua
修改倒數第二行
--dofile(DATA_DIR.."console.lua")
好了,到此已經可以抓到包
用我手機小伙伴發我測試抓到的2g明文包
注意:GSM sniffer只針對GSM有效,對於電信和聯通的CDMA是無效的,所以監聽的范圍也很有限。本
文只作為技術學習,切勿觸碰法律法規。