狗汪汪玩转无线电 -- GPS Hacking

狗汪汪玩转无线电 -- GPS Hacking 

 

0x00 序


GPS Hacking 在过去几年的安全会议上一直都是很受关注的议题. 但每每由于内容太过学术化, 所需设备成本过高. 让许多感兴趣的朋友苦于没法入门. 直到GPS-SDR-SIM 这类开源项目的出现, 跟王康大牛在今年Blackhat Europe 2015 上的主题演讲. 完全打开了GPS 的神秘面纱. 让小伙伴能够真正过一把GPS Hacking 的瘾.php

想必你们对于研究GPS的神器, 软件无线电SDR都略有所闻. 但早期设备USRP价格昂贵. 直到你们发现了神奇的电视棒 RTL-SDR. 前阵子彷佛人人都喜欢用它来看大"灰机". 不过由于硬件上的限制,电视棒只能用来收取数据. 而 HackRF 跟 BladeRF 因其支持收发数据, 而价格又比USRP 便宜许多. 便成了当下热衷玩无线的朋友们的首选. 固然HackRF 跟 BladeRF之间也在所支持的频率, 采样率上有所不一样. 最重要的一点BladeRF是全双工哦. 如下是几款SDR 设备之间的对比图, 你们能够根据具体须要选购.html

p1

GPS系统简介git

GPS 系统自己很是复杂, 涉及到卫星通讯等各个领域. 这里只是简单介绍一下. 咱们一般所说的 GPS 全球定位系统是由美国国防部建造完成. 目前在太空中共有31颗卫星在同时运做. 通常咱们须要至少4颗卫星来完成三角定位. GPS卫星同时发送民用L1和军用L2两种无线信号. 咱们一般使用的是没有加密的L1民用 1575.42MHz 的超高频波段.github

GPS 信号里包含了3种经常使用信息.安全

Pseudorandom code: 简单的ID 码, 用来识别每颗卫星.bash

Ephemeris data: 包含卫星的运行状态, 时间日期等信息. 这在经过卫星来定位起到很是重要的做用.微信

Almanac data: 包含有每颗卫星的轨道信息,以及卫星在某个特定时段将出现的具体位置.dom

p2

0x01 BladeRF GPS 信号伪造步骤


1.1 在Ubuntu 14.04.3 中安装 BladeRF 工具工具

p3

安装 header 文件测试

p4

安装 BladeRF 固件 & FPGA 镜像

p5

完成后可在/usr/share/nuand/BladeRF/下找到hostedX40.rbfbladerf_fw.img文件. 这时即可将BladeRF插入USB接口.一般系统会自动载入FPGA 镜像.也能够经过命令行bladerf_cli -l /路径/hostedX40.rbf手动载入. 在成功载入后,BladeRF主板上的3 个LED 小灯便会亮起, 同时咱们能够加-p参数来进一步验证系统安装成功.

p6

1.2 GPS-SDR-SIM 安装

1
2
3
git clone https: //github .com /osqzss/gps-sdr-sim .git
cd gps-sdr-sim 
gcc gpssim.c -lm -O3 -o gps-sdr-sim

设置经纬度并生成数据样本. 注意这里 I/Q基带信号数据为16.

p7

随后 gps-sdr-sim 会自动生成带有经纬度信息的数据文件. 咱们即可以经过 bladerf_cli 来发送伪造的GPS 数据.

p8

1.3 GPS-SDR-SIM 运行时间问题

在实际测试过程当中汪汪发现, 默认状况下GPS模拟器只能连续工做5分钟左右. 经过查看源代码后, 咱们能够发现这是由于程序默认设置致使. 在程序设计之初为了节省硬盘空间, 默认只生成了300秒左右的数据. 咱们能够经过改动参数来延長工做時間. 但须要注意的是仅仅延長到15分鐘,數據即可達到5G大小.

p9

0x02 GPS信号伪造实战


汪汪在这里跟分享几个实际的测试案例. 感兴趣的朋友也能够自行测试下.

2.1 微信周边妹子

据说许多程序猿由于平时工做紧张, 性格腼腆. 很难有机会跟心中的女神接触. 而微信中”附近的人”则解决了此类问题. 你们只要坐在家中打开GPS定位, 即可跟周边的心仪女神 Say Hello 啦. 但美中不足的是范围仅限几十千米内. 那么对某些胸怀天下, 万花丛中过, 片叶不沾身的大神来讲未免太有局限性了. 这里汪汪给你们带来第一个GPS 信号伪造案例 -- 微信”附近”妹子.

据说前阵子在海南三亚有个美女扎堆的活动, 汪汪非常好奇都是啥样的美女呢..让咱们来查下附近的人吧. 哦..在没发送伪造的GPS坐标前,只能找到汪汪所在城市的妹子.

p10

p11

在开始发送伪造的GPS坐标5分钟后, 汪汪终于如愿以偿找到了三亚附近妹子 :)

哈哈..汪汪必须感叹下..真的是技术宅改变命运啊...

p12

2.2 Nike+ 计步数伪造

不少喜欢研究移动安全的朋友必定看过蒸米发过的一篇文章 "利用Android Hook进行微信运动做弊".(感兴趣的朋友能够移步观看http://drops.wooyun.org/tips/8416). 文中他提到了经过利用Android Hook进行计步做弊, 跟朋友圈里的好友PK运动量. 但该方法须要手机root后,安装相关做弊插件来实现. 对于其余计步类软件,还须要对插件进行相关改动. 这里测试目标为 Nike+ Running. 先来看段视频. 由于完成所有攻击效果须要必定时间, 因此本视频作了加速处理.

p13

http://player.youku.com/player.php/sid/XMTQwMzAxMTk4OA==/v.swf

经过GPS-SDR-SIM的主页, 咱们能够得知伪造的的GPS经纬度数据能够是静态, 也能够是动态模式的. 为了成功模拟出运动轨迹, 咱们须要伪造动态模式的GPS经纬度数据. 能够经过如下参数来完成.

1
gps-sdr-sim -e brdc3540.14n -u circle.csv -b 16

你们能够看到经过直接对GPS信号进行伪造, 成功欺骗了Nike+ 这类计步器APP. 即便在被窝里躺着,也能够跑第一哦. 固然汪汪仍是但愿你们能够真的跑起来, 享受运动的快乐.

2.3 伪造信号范围测试

从前面几个实验能够知道, 经过软件模拟信号, GPS接收设备在短距离内的效果是很是明显的. 那么在较大范围内GPS接收设备的效果如何呢?实际的有效距离又是多远呢?固然这跟设备的输出功率, 天线增益, 以及附近其余信号干扰程度有关. 因此这里汪汪只是作个简单的室内测试. 你们仍是要以实际状况为准. 请先看这段测试视频.

http://player.youku.com/player.php/sid/XMTQwMzAwNzMxNg==/v.swf

从视频能够看到在这个直线距离大概为25米, 中间无任何障碍物的走廊里成功改变了GPS 接收设备的经纬度. 一般真实的GPS 信号从2万公里的高空下到地面已经很是微弱, 所以在室内几乎检测不到信号. 因此在室内GPS 信号伪造攻击的效果是很明显的.

p14

0x03 总结


经过以上几个案例, 相信你们对GPS 信号伪造有了必定程度的了解. 但就GPS系统自己而言, 这是一个很是好玩又很深的领域. 市面上的GPS 相关产品也总类繁多, 每款产品对GPS 欺骗攻击的反应也各不相同. 你们能够发挥下想象力玩出新花样.

最后要感谢 osqzss; 王康和无数 GNURadio 爱好者们的无私分享. 正由于有了他们,咱们才能够更好的体验软件无线电的无穷魅力. 推荐你们围观 GPS-SDR-SIM 的项目主页和王康在黑帽大会上的演讲稿. 拥有HackRF设备的朋友也能够看看lxj616写的“劫持GPS定位&劫持WIFI定位”.

0x04 参考文献

相关文章
相关标签/搜索