最近在学习无线安全方面的知识,了解到了 OsmocomB , 拿来研究下 . 以下知识,仅用作研究探讨,请勿用作非法用途 !!!!
理论: osmocom-bb 国外的一个开源项目, 针对 GSM 协议, 移动 联通 的 2G网络用的都是 GSM, (电信不是) , 所以此开源项目可以xt 短信,或者搭配 openBts 搭建小型短信基站来发短信 ARFCN: 信号通道的意思,xt短信也要知道此信号道
参考: http://bb.osmocom.org/trac/#WelcometotheOsmocomBBproject
软件分享(百度网盘): 下面所需 的文件如果没有提供下载链接,都在此分享的百度网盘中查找 :
kail操作系统镜像链接:https://pan.baidu.com/s/1kMImEIpIhmjZgAbLdPRcvg 提取码:8qij
构建工具链需要的依赖链接:https://pan.baidu.com/s/1-1Zdo9iDiCucx2Cfm2doFQ 提取码:1xz0
libosmocore依赖下载链接:https://pan.baidu.com/s/1wyv0VKyQAmfw1UNgScXgzw 提取码:5tjy
编译好的虚拟机镜像: 可以拿过来直接使用: 链接: osmocom-bb虚拟镜像下载地址-其它文档类资源-CSDN下载
准备:
硬件准备: 一切都来自于咸鱼 or 淘宝
1 2 3 4 | Moto C188 手机一部 $3 RMB 手机配套耳机线一根 $8 RMB 杜邦线若干 CP2102模块一个 (USB to TTL) $15 RMB |
环境 : 当前时间 2019.6.30 , 装了最新的 kail linux 系统 (无关操作系统的位数,无关是否虚拟机,都可以),系统镜像上面的百度网盘里面有分享
准备开干:
步骤一 : 编译osmocombb 需要构建的自己的工具链也就是自己的编译环境 参考: http://osmocom.org/projects/baseband/wiki/GnuArmToolchain
下载构建文件,以上参考文件或者百度网盘
1 | $ chmod +x gnu-arm-build.3.sh ##赋予权限<br> |
1 2 | $ 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 <br><br>##安装依赖,如果提示找不到,请更新kail源 (如何更新源,可以自己百度) |
1 | $ mkdir build install src ##新建目录 |
1 2 3 4 | $ 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 |
1 2 3 4 5 6 7 8 9 | $ cd .. $ ./gnu-arm-build.3.sh ##执行构建sh I will build an arm-none-eabi cross-compiler: Prefix: <YOURPATH>/install Sources: <YOURPATH>/src Build files: <YOURPATH>/build Press ^C now if you do NOT want to do this . ## 提示到这里, ENTER (进行回车) |
1 | export PATH=$PATH:<YOURPATH>/install/bin ##构建成功配置环境变量, kail 再如下文件下更改: ##leafpad /etc/apt/sources.list |
至此步骤一 完成, 中间可能会遇到: 安装依赖提示依赖其他包,那么缺少上面我们就安装上面 , 还有上面 makefile 138 或者上面错误,百度一搜就会有结果,原因 本机gcc一般版本比较高,osmocombb用的gcc是 gcc-4.8.2 ,解决方案修改 gnu-arm-build.3.sh 中关于gcc版本的地方
1 | apt-get install ${softname}=${version} ## 安装软件 以上格式 ${}内容自行替换 |
步骤二 :
对于osmocomBB,和其他几个osmocom项目一样,您还需要libosmocore。注意:虽然从git存储库获取osmocom-bb时包含libosmocore,但您必须单独安装它。libosmocore子树仅用于编译libosmocore的嵌入式ARM版本。
这里我们需要安装: libosmocore 安装参考: https://osmocom.org/projects/libosmocore/wiki/Libosmocore
实际步骤:
1 2 3 | sudo apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc ##安装依赖 sudo apt-get install libpcsclite-dev (可选) |
1 | git clone git: //git.osmocom.org/libosmocore.git ##下载源 |
1 2 3 4 5 6 7 | cd libosmocore/ ##以下命令按照顺序执行, 注意: 执行前,要去安装gnutls依赖,否则会出问题 autoreconf -i ./configure make sudo make install sudo ldconfig -i cd .. |
注意: 如果按照上述步骤安装会遇到问题:
1 2 3 | 问题1: configure: error: Package requirements (gnutls >= 2.12.0) were not met: No package 'gnutls' found |
然后我们去找 gnutls https://www.gnutls.org/download.html 他提示需要安装许多 必须依赖的库 和 可选的库
下载链接:https://pan.baidu.com/s/1wyv0VKyQAmfw1UNgScXgzw 提取码:5tjy
1 | 下载上面的依赖: 然后各种解压 ./configure make make install |
步骤三 :
终于到了我们 环境准备的最后一步了 编译 osmocombb 参考 : http://osmocom.org/projects/baseband/wiki/Software_Getting_Started
1 | sudo apt install libtool shtool automake autoconf git-core pkg-config make gcc ## 安装依赖 |
1 2 3 | git clone git: //git.osmocom.org/osmocom-bb.git ##获取源 cd osmocom-bb git pull --rebase ##更到最新 |
如果一些顺利,那么环境的准备就大功告成了
最后: 使用 这里我们就可以开始xt了,如下需要打开四个终端窗口
1. 终端1 :
1 2 3 | cd /home/os/osmocom-bb/src/host/osmocon/ ## 进入此目录, os是我自己新建的文件夹 ./osmocon -m c123 -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin ## 执行刷机命令 |
出现如下一般为成功 (窗口不可关闭) 这个时候手机屏幕为: Layer1 osmocom bb
2. 终端2
1 2 3 | cd /home/os/osmocom-bb/src/host/layer23/src/misc/ ./cell_log -O ## 显示如下 注意这里的 ARFCN 信号道 |
3. 终端3
1 2 | cd /home/os/osmocom-bb/src/host/layer23/src/misc/ ./ccch_scan -i 127.0.0.1 -a ${ARFCN} ##最后一个参数替换为上面的获取 |
4. 最后终端4 : 打开抓包工具 wireshark
1 | wireshark -k -i lo -f 'port 4729' ## 这里的 lo 是网卡 可以用 ifconfig 查看自己的 端口固定的4729 |