摩托罗拉C118瞬间被改造成伪基站

2018-08-28 10:00:01 浏览数 (1)

注:资料来源自网络收集并非原创。其实也不是什么太新鲜的东西了只是看论坛内没有才整理一下拿来分享。

OsmocomBB项目让成本仅需几十元的伪基站诞生了

GSM是当前应用最广泛的移动通话标准,在中国大陆,中国移动和中国联通的2G网络也是使用的GSM。随着技术的发展,GSM的安全漏洞已被安全研究人员发现。现阶段对GSM进行攻击已经不是什么新鲜事了,国外早已有对GSM进行嗅探和伪装GSM基站的开源项目。

在国内,针对GSM的攻击手法已经出现,我们所知的主要有伪造基站发送垃圾(或诈骗)短信、GSM数据窃听。

能监听到GSM短信的硬件设备成本不超过30元(你没看错,硬件就是一个摩托罗拉C118手机),如下图:

由此可见,实施GSM攻击的成本已经很低,目前我们看到已有人利用GSM的问题来实施攻击了。在深圳, TSRC的小伙伴们都在不同区域遇到过伪基站发的广告短信;微博上也有小伙伴反映北京也遇到类似情况。未来低成本的GSM攻击可能会被广泛利用。

伪基站发送广告短信是一种攻击方式,还有一种是监听短信内容。这种嗅探是静默的,更不容易被发现。

我记得曾经有人问过怎么发现自己有没有被监控。还是有办法,我们给监控者挖一个坑:通过信道给自己发个信息,某某网站有秘密文件,登录用户名密码明文写上。然后在我们部署的蜜罐网站看有没有人拿这个用户密码尝试登录就知道了。

在一些业务场景下,这种GSM短信监听的威胁较大。比如某些团购业务的兑换码就是通过短信发送给用户的;发工资当天的银行短信会暴露你的工资;部分在线支付的验证码是通过短信下发的;……——即使是给MM发的短信被人偷看也是件很不爽的事。

进入正题需要准备的:(1) IDA Grande”>c118手机一部(淘宝有售20-35不等),(2) cp2012数据线(注:不是自带的数据线淘宝有售)(3)FT232RL USB TO TTL

好了还是贴个图吧

下面是一位网友成功安装的过程:

[size=0.9em]OsmocomBB项目之前看过好多大牛玩osmocomBB项目,改个手机,连电脑,然后编译一堆东西,到最后都是开个console,满屏红红绿绿的文字滚动,看着很吊。 但都不说最终能干啥,滚屏完了就没了,大牛都太低调了,最近有朋友也在搞这个,了解了一下,以下描述都是我最近查阅的大量鸟文资料及少量中文资料之后的理解,如有误望指出。 OsmocomBB是国外一个开源项目,是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband.目的是要实现手机端从物理层(layer1)到layer3的三层实现。

这里记录一下过程,以便备忘和其它有需要的童鞋少走弯路。

相关链接:[size=0.9em]https://github.com/osmocom/osmocom-bb

[size=0.9em]http://bb.osmocom.org/trac/wiki/TitleIndex 硬件部分:

支持的手机

    • [size=0.9em]MotorolaC123/C121/C118 (E88) — our primary target
    • [size=0.9em]MotorolaC140/C139 (E86)
    • [size=0.9em]MotorolaC155 (E99) — our secondary target
    • [size=0.9em]MotorolaV171 (E68/E69)
    • [size=0.9em]SonyEricssonJ100i
    • [size=0.9em]Pirelli DP-L10
    • Neo 1973 (GTA01)
    • [size=0.9em]OpenMoko – Neo Freerunner (GTA02)
    • [size=0.9em]SciphoneDreamG2 ([size=0.9em]MT6235 based)

手机硬件修改

国内比较多的是C118,需要换两个balun,不知道怎么翻译,好像是接收数据过滤用的,不过手艺不好的就算了,不换也可以用,只是没有uplink的数据,只能抓到基站广播的数据。 官方的教程http://bb.osmocom.org/trac/wiki/Hardware/FilterReplacement 以下贴几个我改的图,有热风枪应该好改一些,反正没有好的工具的话我这辈子是不会再改这个了。

改机的图

以下刷的rssi固件,如果没改硬件,uplink信号没有的,图中是downlink,uplink的图没截

刷机线

自己买根T191线或者把带的耳机线改改(下图的红白颜色说的是手机自带的耳机线,别的耳机线可能颜色不同)

下图参考

软件部分

大家也可以上官网查看手册及相关刷机、编译步骤: http://bb.osmocom.org/trac/wiki/GettingStarted

不过我按照官网的步骤编译的时候卡在开始下载交叉编译环境上了,由于时间太久了,文中那个链接已经失效,使用这里的地址:http://bb.osmocom.org/trac/wiki/GnuArmToolchain

下面是完整步骤,我的Ubuntu 12.10 内核3.5.0-17 x86_64编译测试通过,干净的系统按照我下面的步骤一般都不会有什么问题:

————————-准备交叉编译环境————————–

cd ~ mkdir osmcombb cd osmcombb wget http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.2.sh chmod x gnu-arm-build.2.sh 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 mkdir build install src cd src/ wget http://ftp.gnu.org/gnu/gcc/gcc-4.5.2/gcc-4.5.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 cd .. ./gnu-arm-build.2.sh export PATH=$PATH:<YOURPATH>/install/bin

————————–准备libosmocore———————-

git clone git://git.osmocom.org/libosmocore.git cd libosmocore/ autoreconf -i ./configure make sudo make install cd .. sudo ldconfig —————————编译osmocomBB———————

我编译了无数遍无数版本,包括master分支,Sylvain/burst_ind分支,sylvain/testing分支,还有另外一个老外存的老版本,需要打patch补丁的版本,最终还是用luca/gsmmap的版本成功,也不能说前面说的几个版本有问题,之前有很多问题,编译器,git等等一团乱麻,可能是我别的地方有出错。

另:Sylvain/burst_ind分支是网上说的比较多的带sniffer功能的分支,但是编译完无法刷固件,需要修改osmocom-bb/src/host/osmocon/osmocon.c,文件中添加定义

#define I_HAVE_A_CP210x

否则会出现“Unable to set custom baudrate, please use appropriate cable”,即使这里通过了我刷了还是不行。

ok,我们使用luca/gsmmap分支,

[size=0.9em]GsmMap项目使用osmocom-bb项目所支持的手机通过捕捉GSM数据,对应地理位置;然后用户上传后被分析,结果会被展示在项目主页上的地图上。 该项目的主要目标是建立GSM网络的地理分布,然后分析 伪造,拦截和跟踪的可能性,会在官网上披露GSM的安全性。 官方提供一个自己的LiveCD,基于Debian,木有xWindow,参加项目的可以傻瓜化的使用并且抓包,用VirtualBOX或者VMware载入,开机后记得把osmocom-bb所用的C1**系列手机和数据线连到虚拟机,然后按照提示输入gsm即可开始。

sudo aptitude install libtool shtool autoconf git-core pkg-config make gcc git clone git://git.osmocom.org/osmocom-bb.git cd osmocom-bb git checkout –track origin/luca/gsmmap

//git clone git://git.osmocom.org/osmocom-bb.git //cd osmocom-bb //git pull –rebase

默认编译出的版本发送信号相关的功能是被注释掉的,用mobile启动layer23后会一直于搜信号的过程中,因为无法发送信号。 如果需要进行实网测试需要打开src/target/firmware/Makefile文件中的编译开关

把osmocom-bb/src/target/firmwire/下的Makefile中的 CONFIG_TX_ENABLE宏打开:

# Uncomment this line if you want to enable Tx (Transmit) Support. -#CFLAGS =-DCONFIG_TX_ENABLE CFLAGS =-DCONFIG_TX_ENABLE

然后到src目录下编译

cd src make

————————-运行——————————————-

编译一切OK后,进行刷手机操作,我的C118手机,固件都是在compal_e88目录下的bin文件,会有很多bin文件

其中compalram为我们用来刷手机的,只会写入ram,重启手机就没了,highram是为了加载超过65535的大文件,比如rssi.highram.bin,e88flash和e88loader是用来真实刷入手机固件的,慎用,因为我还想平时打打电话呢。我之前就刷挂了,bootloader还在,还好我买了两个,把另外一个读出来重新写回去了。

layer1和src/host/layer23/src/mobile/mobile程序,实现了从layer1到layer3的功能,我们主要用layer1,rssi是用来测试信号的,不同的信道信号强度等等一些相关信息,需要配合chainload或loader刷入,这几个应用详细说明在这里:http://bb.osmocom.org/trac/wiki/Applications

连上硬件,使用lsusb和dmesg查看端口号,我都是ttyUSB0,c123和c118手机都用c123xor参数,CompalE88(C118/C120/C121/C123),CompalE99(C155)

cd host/osmocon/ sudo ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin

然后在手机关机的状态下,点按开机键,不是长按,屏幕就会显示下载刷写固件并执行,如下图就说明成功了

此时手机应该显示layer1的提示

新开一个命令行窗口,进行搜索基站信号,

cd osmocom-bb/src/host/layer23/src/misc sudo ./cell_log -O

关于ARFCN号,贴个表供参考

然后使用ccch_scan进行抓包,-a参数为指定ARFCN号,我们用上图中信号比较强的30

sudo ./ccch_scan -i 127.0.0.1 -a 30

layer23使用src/host/layer23/src/mobile下的mobile程序实现,如果只是抓包数据,下列命令不需要执行

cd src/host/layer23/src/mobile sudo ./mobile -i 127.0.0.1

执行了mobile程序之后,本机会开启4247端口,可以使用telnet进行访问,然后配置执行,命令及参数执行方式跟交换机类似

telnet localhost 4247

使用wireshark进行抓包分析还是比较方便的

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

uplink的比较少,不知道是不是因为改机把信号改弱了

有个uplink,估计就在我旁边发的

附:

iphone工程模式:拨号界面 *3001#12345#* 按呼叫键,可查到当前连接的ARFCN号

安卓:拨号界面 *#*#4636#*#* ,没有ARFCN,只有cell_id,不用找了,这个手机的android下没有显示arfcn的工具。

0 人点赞