About GSM sniffer(一):Simple operation

序言:OsmocomBB是国外一个开源项目,是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband.目的是要实现手机端从物理层(layer1)到layer3的三层实现。
很早就进行过类似的尝试,但是当时抓取到的基本都是GSMTAP包,有些坑需要注意。这里先简单记录一下过程,以便备忘。
打算开三篇来介绍
一:环境配置与简单上手
二:全信道覆盖与其他,并整理涉及通信的相关资料
三:openbts来实现一个完整的基站

等到HackRF修好后后就不用C118这样的古董了。这里只放一些简单的演示。

硬件部分

支持的手机

手机硬件修改

国内比较多的是C118,需要换两个滤波器,不换也可以用,只是没有uplink的数据,只能抓到基站广播的数据(downlink)。

直接耳机线(三线)接触到TTL转USB模块,CP2102,FT232,CH340皆可。线序如下图。
255502128

1181

环境依赖

ps:坑主要在于GCC的版本,高版本会发生扫描不到基站,只能抓取GSMTAP包等奇怪的问题,此处使用GCC4.6.3,Ubuntu12.04。这个坑是微信群里的朋友发现的。这里搬了他一些操作。我配置时也没有截图,懒得重搞截图了。

C118这种古董也是很久以前玩的,我的Hackrf板子放朋友那里玩时功放烧了(怨念)

 

sudo apt-get install 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 aptitude libtool shtool make gcc libtalloc2 libtalloc2-dbg python-talloc python-talloc-dbg python-talloc-dev libpcsclite-dev libtalloc-dev automake autoconf git-core pkg-config

aptitude install libtool shtool automake autoconf git-core pkg-config make gcc

配置文件
这里建议用迅雷下载好再拖到虚拟机里面
打包下载放到/root目录下即可

http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.2.sh
http://ftp.gnu.org/gnu/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2
http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz

把下载好的3个包放到src目录下
目录结构
目录结构

cd /root/armtoolchain
chmod +x gnu-arm-build.2.sh
./gnu-arm-build.2.sh

大约20分钟后出现下面代码代表编译完成

Build complete! Add /root/arm_toolchain/install/bin to your PATH to make arm-elf-gcc and friends
accessible directly

把以下代码加到~/.bashrc的最后一行
export PATH=$PATH:/root/armtoolchain/install/bin
执行一下让其生效
source ~/.bashrc
当你在命令行输入arm再按两下tab出现下图的时候,代表编译环境配置好了
arm链
libosmocore

cd /root
git clone git://git.osmocom.org/libosmocore.git
cd libosmocore/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i

这里可能有个坑,执行完上述代码后在命令行输入arm再按两下tab的时候,arm链会莫名其妙的消失,需要再去~/.bashrc再配置一遍,如果arm链正常就不需要配置了
Osmocom-bb

cd /root
git clone git://git.osmocom.org/osmocom-bb.git
cd osmocom-bb/src/
git checkout –track origin/luca/gsmmap //选择luca/gsmmap分支 主题字体显示有问题,track前面是两个-
make //交叉编译

如果没什么问题,软件环境和固件就都编译好了。
Ununtu 12.04自带FT232R驱动,所以直接连接就能使用,不需要再装驱动。
加载Firmware到手机RAM中

cd /root/armtoolchain/osmocom-bb/src/host/osmocon
./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin

上面命令需要在关机下执行,然后短按开机键
手机屏幕显示Layer 1 osmocom-bb 字样就表示成功了
Layer1
扫描基站

cd /root/armtoolchain/osmocom-bb/src/host/layer23/src/misc/
./cell_log –O

ARFCN

THE_ATFCN_ID就是扫描到的日志中参数ARFCN的值,尽可能选信号好的

cd /root/armtoolchain/osmocom-bb/src/host/layer23/src/misc/
./ccch_scan -i 127.0.0.1 -a THE_ATFCN_ID

上图第一个基站的ARFCN就是40

苹果手机可以执行:*3001#12345#*
进入工程模式后,选择GSM Cell Environment->GSM Cell Info->GSM Serving Cell,就可以看到目前手机连接的基站ARFCN值了,应该在第二步中,也能看到这个ID存在。
更多姿势请看这里
osmocom-bb中cell_log的多种使用姿势
因为osmocomBB执行之后默认会在本地开启4729端口,这时候的GSM协议已经被封装上了TCP-IP,可以在本地用wireshark抓到,所以我们使用wireshark去监听4729的端口
wireshark打开错误的话需要到/usr/share/wireshark/init.lua文件注释掉倒数第二行

wireshark -k -i lo -f ’port 4729’

在wireshark中过滤gsm_sms协议数据,过滤之后得到的数据里面就包含短信的明文信息

22222 sms红框内为截获到的短信。

(未完待续)

 

“About GSM sniffer(一):Simple operation”的2个回复

  1. Ubuntu 12.04 Gcc为4.6.3 仍然只能抓GSMTAP 包,怎么办,怎么调试,谢谢

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注