利用kali嗅探周围发送的短信
设备清单:
- 摩托罗拉 C118 (25块)
- FT232RL USB TO TTL (30元)
- 摩托罗拉 Motorola C118专用数据连接线 (10块)
- MiniUSB 链接线(10元,这个大家手里应该都有)
如下图:
淘宝购买地址就放在文章结尾吧.
外围设备是上面那些,现在还需要一台PC以及装有Linux操作系统的虚拟机,当然PC上面直接装的linux更好
还有一个主角:OsmocomBB
这里稍微介绍下OsmocomBB,OsmocomBB是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband.
目的是要实现手机端从物理层(layer1)到layer3的三层实现。
但是目前来看,真正的物理层(physical layer)并没有真正的开源实现,暂时也没看到实施计划。只有物理层控制。
因为真正的物理层是运行在baseband processor的DSP core上,涉及到许多信号处理算法的实现,而且还要牵扯很多硬件RF的东西。
额好吧,上面这段OsmocomBB介绍文字来自百度~~
我自己的实验环境为:
os x 10.9 + VirtualBox + Ubuntu 12.04 (32位)
操作系统各个平台都无所谓,我想大多数都用虚拟机来测的,所以建议使用Ubuntu 12.04 至少按照我这里介绍的做下来应该不会出错。
虚拟机里面如何安装Ubuntu 12.04我这里几不操作了,网上教程一大堆。
首先我们安装交叉编译环境:
1. 用户目录下建立source/arm
2. 进入arm目录再创建三个目录 build、 install 、src
3. 进入src目录分别下载这三个文件包:
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
4. 下载 gnu-arm-build.2.sh 文件到arm目录 http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.2.sh
目录结构如图所示:
编译前需要安装相应的库文件执行如下命令:
1 |
sudo |
安装完
在arm根目录执行如下命令:
1 |
chmod |
解释下这两条命令的意思,chmod +x 是给与 gnu-arm-build.2.sh 可执行权限 , ./ gnu-arm-build.2.sh 是执行它
执行 gnu-arm-build.2.sh后会提示你是否继续,ctrl+c 则取消,直接回车。如下图所示:
完成后会看到arm/install目录结构如图所示:
我们需要将 arm/install/bin目录加入环境变量中,注意这里最好直接填写绝对路径
获取绝对路径命令,在arm/install/bin目录下执行pwd命令。如下图
加入环境变量的方法用vi打开 ~/.bashrc 在最后一样加入 export PATH=$PATH:/home/creturn/source/arm/install/bin
注意$PATH:冒号后面接的是你自己的绝对路径,有的同学不会用vi的话我就把具体命令写出来
1 |
cd |
为照顾linux新手对写点东西,汗~~
重新打开终端或者直接执行source ~/.bashrc 让环境变量生效
在终端中输入arm然后按tab键,如果出现 arm-开头的如下图所示就说明编译环境搞定了:
好了累了半死才把编译环境搞定,接下来下载 OsmocomBB 源码
在source目录下执行下面两条命令:
1 |
git clone git://git.osmocom.org/osmocom-bb.git git clone git://git.osmocom.org/libosmocore.git |
先编译osmocom核心库文件,进入libosmocore 执行如下命令:
1 |
autoreconf -i ./configure |
然后进入osmocom/src下目录
git checkout –track origin/luca/gsmmap 切换到这个分支
执行make命令
如果不出意外你所需软件环境和固件都编译好了。Ubuntu12.04 默认能够识别FT232R所以不用装驱动。
接下来链接硬件, FT232RL USB TO TTL 和 摩托的数据线链接注意上面对应的标识接入GND、RX、TX 所以不用担心接错,我也第一次摸板子。
链接完成后需要注意,如果链接正常下载板上面的蓝色的灯和红色的灯都要亮,不然肯定是接触不良,
我之前由于接触不良导致固件写入一半就会停止,或者包其他错误。所以这里需要特别注意。
插入硬件后在虚拟机菜单中把接入下载板子的usb接口分配给虚拟机如图:
在终端中输入lsusb 如果驱动正常就能看到usb-serial
看下分配前和分配后的区别如下图:
接下来我们写入固件到手机中,这里需要说明的一点,很多人说是刷入固件,导致很多人误认为是刷机,其实只是把
固件加载到手机raw中执行而已,所以也不要担心输入固件后手机就不能用了。
切换到 osmocom-bb/src/host/osmocon/目录 执行如下命令:
1 |
/osmocon |
这里同样需要说明下有的 -m 后面接的是 c123xor 区别是是否检测数据总和
注意上面命令需要在关机下执行,然后短按开机键,注意不要长按不然就开机了
如果不出意外就能看到如下图:
这里需要提醒下,由于买的手机都是二手的,所以接口处有可能会有松动,所以如果看到数据写入被取消就多试几次
调整下接口看看是否有松动,我机会每次都要试4-5次才能正常写入固件,看到staring up 基本就成功了,同事可以看到
手机上面也显示了 Layer 1 osmocom-bb 字样
1 |
接下来在 /osmocom-bb/src/host/layer23/src/misc/ |
输出日志信息,在里面可以看到基站信息
找到类似信息
cell_log.c:248 Cell: ARFCN=117 PWR=-62dB MCC=460 MNC=01
如下图:
记住ARFCN后面的编号
然后在同样目录下输入下面命令把数据流导入本地4729端口
1 |
./ccch_scan |
如下图:
接下来用wireshark 抓包,输入如下命令:
1 |
sudo |
然后在wireshark里面过滤gsm_sms协议数据,里面就包含了短信数据
利用kali嗅探周围发送的短信的更多相关文章
- Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_152 短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务 ...
- 利用java实现的一个发送手机短信的小例子
今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...
- Android(java)学习笔记247:ContentProvider使用之利用ContentProvider备份和还原手机短信(掌握)
1.通过阅读系统源码我们知道: 短信的内容提供者: content://sms/ 系统短信的内容提供者的路径 2. 利用ContentProvider备份和还原手机短信: (1) ...
- 利用Android Lost通过互联网或短信远程控制安卓设备
利用Android Lost通过互联网或短信远程控制安卓设备 作者:Jack Wallen| 杰克·瓦伦翻译:PurpleEndurer.2014-11-15第1版 使用智能手机要考虑的一个至关重要的 ...
- Android 提示应用“正在发送大量短信”的解决办法
. . . . . 临近过年了,又到了发送各类拜年短信的时刻了.虽然转发各类拜年短信已经显得越来越没年味,但是依然有很对人乐此不疲.为朋友送去祝福自然是好事,可是转发来的短信本身发送者就并没有投入太多 ...
- android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人
要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...
- Android(java)学习笔记191:ContentProvider使用之利用ContentProvider备份和还原手机短信(掌握)
1. 通过阅读系统源码我们知道: 短信的内容提供者: content://sms/ 系统短信的内容提供者的路径 2. 利用ContentProvider备份和还原手机短信: (1 ...
- 发送SMS短信(JSON) 转载
http://blog.csdn.net/ldl22847/article/details/42553883 public static string GetMobileConfByUserId( ...
- SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework
1.调用前组装参数 2.调用发送信息服务脚本 .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...
随机推荐
- unity优化
1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式, 2. 对于透明贴图,我们只能选择RGBA 16 ...
- hibernate的中的查询与级联操作
1.Criteria查询接口适用于组合多个限制条件来搜索一个查询集. 要使用Criteria,需要遵循以下步骤: *创建查询接口: Criteria criteria=session.createCr ...
- Hbuilder编辑App时,ajax跨域访问失败问题
今天试着用Hbuilder写app的前段显示页面,在第一步时就被打住了,ajax异步调用服务器的登录接口时,报错, 显示这样的错误 XMLHttpRequest cannot loadhttp://w ...
- 架构实战项目心得(十):基于spring-ladp的统一用户中心结构设计以及代码结构设计
一.目录设计 1 公司 2 部门 3 注册人员 4 层级人员 二.规则 1 注册 自行注册人员放到模拟公司的目录下,等所属公司组织结构建立完毕,将此人员迁移到所属公司(或者删除此人员,所属公司新建此人 ...
- JSON跨域问题总结
一.跨域问题的原因: 1 浏览器的检查 2 跨域 3 XMLHttpRequest请求二.跨域问题的解决: 1 禁止浏览器检查:使用dos命令,在启动浏览器的时候,加一个参数:chrome --dis ...
- mysql,简单介绍一下索引
汉字很多,人力有时尽,人不可能记住所有的字,为了解决这个问题,于是有了字典.数据库里的数据很多,为了方便检索,于是有了索引. 索引,是一种数据结构,在这种数据结构中实现了高级的查找算法,索引可以帮助我 ...
- c语言结构体可以直接赋值
结构体直接赋值的实现 下面是一个实例: #include <stdio.h> struct Foo { char a; int b; double c; }foo1, foo2; //de ...
- 给tomcat7w.exe改名字
在平常使用tomcat的过程中,经常会在自己的电脑上安装两个tomcat,而且使用tomcat的tomcat7w.exe界面比较方便,即 但是两个tomcat的名字一样,也只能启动一个tomcat. ...
- 理解Canvas原理
Canvas原理 Canvas我们把它翻译成画布,从字面意思我们就可以知道,不就是可以在上面画东西的布吗.好像很简单,没什么好说的.先看图: 从这几幅图我们可以看到以下几点: 1.每个小方格我们可以看 ...
- CentOS新增硬盘,重新扫描总线
Centos 新增硬盘以后,系统不能自动进行识别. 1. 由于不知道新增硬盘挂载的位置,可以先查看现有硬盘挂载的适配器. [root@localhost ~]# ls -l /sys/block/sd ...