gsm sniffer
0x00 provision
一个 Linux 系统,摩托罗拉 c118,T 型 minusb 数据线,Motorola c118/c123 数据连接线,FT232 USB 转串口 TTL,Motorola C118/c123 滤波器套件 (这个需要焊接技能,换滤波器可以捕获 uplink 信号), 感谢曾哥赞助这些玩具,可以到淘宝店一次买全。
0x01 software
1 | mkdir gprs_sniffer |
下载交叉编译环境 here, 某些 64 位的 linux 需要安装 32 的 glibc 的库。
实验环境准备好,目录是这个样子
0x02 debug environment
1 | tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 |
解压交叉编译环境准备设置变量。
1 | cd libosmocore |
autoreconf 工具由 automake 的包提供的。
1 | cd gprsdecode |
这个模块并没有注意到什么地方用,是按照参考文档上的敲的 ^52.
1 | cd osmocom-bb |
处理 OsmocomBB 分支问题,亲测 luca/gsmmap 可编译通过,而且需要把 mocom-bb/src/target/firmwire/ 下的 Makefile 中的 CONFIG_TX_ENABLE 宏注释取消掉,不然一直在扫描没有结果。
0x03 sniffing
1 | cd host/osmocon/ |
先把 c118 关机,然后确认和电脑的连接正常,输入上面的命令,按一下 c118 的红色电源键,刷入 layer1 的固件,会看到 c118 的手机屏幕显示。
1 | cd osmocom-bb/src/host/layer23/src/misc |
扫描基站信息,PWR 数值越大信号越好,注意是负数。
1 | sudo ./ccch_scan -i 127.0.0.1 -a 56 |
然后使用 ccch_scan 进行抓包,-a 参数为指定 ARFCN 号
1 | sudo wireshark -k -i lo -f 'port 4729' |
注意 wireshark 的 filiter 的写成 GSM_SMS.