软件无线电安全之HackRF One初探

news2024/12/26 0:02:08

HackRF介绍

HackRF是一款开源软件无线电(SDR)平台,由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围,从1 MHz到6 GHz,支持大部分常见的无线通信频段。采用软件定义无线电技术,HackRF提供了自定义和控制无线信号处理的能力,包括接收、发送、解码和干扰。配备高速ADC和DAC,它能够实现各种无线应用,并通过USB接口与计算机连接,方便集成到各种软件和开发平台中。作为一个功能强大且灵活的平台,HackRF为安全研究人员、软件无线电从业者和爱好者提供了一个开放的环境,用于探索和实验无线通信技术和安全应用。

HackRF功能

HackRF可实现的功能可简要分为如下几点:

  1. 接收和解码无线信号:HackRF可以接收并解码各种无线信号,如无线电广播、无线电通信、无线电定位等。用户可以使用HackRF来监听和分析无线信号,了解无线通信的工作原理。

  2. 发送和模拟无线信号:HackRF可以生成和发送各种无线信号,如无线电广播、无线电通信、无线电干扰等。用户可以使用HackRF进行无线通信实验、无线信号干扰测试等。

  3. 破解和分析无线协议:HackRF可以用于破解和分析各种无线协议,如无线门禁系统、汽车遥控器、无线键盘鼠标等。用户可以使用HackRF来分析无线协议的加密算法和通信流程,从而进行安全评估和漏洞分析。

  4. 定位和跟踪无线信号:HackRF可以用于定位和跟踪无线信号的发射源。用户可以使用HackRF来进行定位和跟踪无线设备,如无线摄像头、无线麦克风等,从而实现无线设备的定位和监控。

在这一小节中,我们主要了解HackRF 接收和发送信号的功能,并在后续小节逐渐深入HackRF的各个功能。

注意:在使用HackRF设备时,在特定频率和特定功率广播需要执照,某些情况下甚至是非法的。请各位安全人员严格遵守相关无线电法规!

HackRF信号接收

Windows环境搭建

SDRsharp官网下载后,解包执行 install-rtlsdr.bat 自动下载 zadig.exe程序与此SDRsharp软件同级目录。SDRSharp.exe 为SDRsharp主程序,在运行SDRsharp.exe程序前需进行以下步骤:

将 HackRF One 连接计算机 USB,此时电脑无法识别HackRF One,我们需要打开 zadig 选择Options->Lists All Devices->HackRF One,并点击下图中按钮进行驱动安装。

图片

安装成功后在设备管理器显示如下图,说明驱动安装成功:

图片

信号收听

1.收听FM广播

FM频率:

在全世界范围内,FM 广播波段属于无线电频谱的VHF部分,通常使用 87.5到108.0 MHz。

打开 SDRsharp后先将Source设置为HackRF后再进行其他操作。

图片

HackRF Controller 为配置面板,DEVICE 下为设备名称,LNA Gain 与 VGA Gain 分别是 AFE 增益控制,AMP 为 RX AMP 启用/停止, PPM 为频率误差补偿。

通常在 FM 频率 LNA 设置在白天设置为 16或24,晚上设置为 8 即可正常工作,VGA 可根据信号进行调节,这里我设置为 24,AMP 也要勾选。设置完成后点击 CLOSE 或直接关闭即可。点击启动按钮显示如下图所示,出现的波峰为HackRF接收信号经SDRsharp解析识别到的可能信号源。

图片

此时鼠标点击不同波峰处进行收听,即可切换至相应频率的FM电台。

2.收听对讲机

将频率设定到440MHz附近,设置如下图所示,图中Radio选择 NFM,并将 Correct IQ 勾选去除,点击开始收听后,在波形窗口中偶尔出现的波峰即是对讲机发出的信号,即瀑布图中偶尔出现的红线。

图片

3.收听GSM信号

GSM 信号有两个频率 870MHZ,950MHZ。下图为收听870MHz的波形图。

图片

4.收听其他信号

除了接收以上信息外,在指定频率下,HackRF还可收听航空、WiFi等信号。这里不再演示,大家感兴趣可自行查找频率范围并测试收听进行学习。

HackRF信号发送

1.ubuntu环境安装

apt-get install HackRF libHackRF-dev libHackRF0

HackRF连接计算机,运行HackRF_info命令会输出以下信息。

图片

我们可以使用HackRF_transfer命令来接收或发送信号。

图片

-d 表示要使用的HackRF的ID,如果你只插了一台HackRF,·这个参数就可以忽视
-r 启用该参数需要指定文件名称,该参数是指将接收的音频保存到指定文件中,以便后期采用
-t 启用该参数需要指定文件名称,该参数是指从文件读取音频
-w 此参数是指自动保存文件为WAV,此参数是为了和SDR#(一款无线电软件,支持windows)兼容
-f 此参数为设置发送/接收的频率,单位是Hz,范围从0MHz到7250MHz
-i 此参数为设置发送/接收的中频,单位是Hz,范围从2150MHz到2750MHz
-o 此参数为设按置前端本地震荡器的频率(LO),单位是Hz,范围从84MHz到5400MHz
-m 此参数是选择镜像抑制滤波器,0为旁路,1为低通,2为高通
-a 此参数为是否启用RX/TX射频放大电路,0为禁用,1为启用
-p 此参数为是否启用天线端口电源,0为禁用,1为启用
-l RX LNA(中频)增益,可以设置0-40db,8db间隔
-g RX VGA(基频)增益,可以设置0-62db,2db间隔
-x TX VGA(基频)增益,可以设置0-47db,1db间隔
-s 此参数为设置采样率,单位是Hz,范围从2-20Mhz,默认为10Mhz
-n 此参数为接收/发送的样本的个数,默认为无限制
-S 此参数为设置缓冲区大小
-c 此参数为设置CW信号源模式,振幅0-127(DC值到DAC)
-R 此参数为设置是否开启重复发送,默认为关闭
-b 此参数为以Hz为单位,设置基带滤波器的带宽,以下是可能的值:
    1.75/2.5/3.5/5.5/6/7/8/9/10/12/14/15/20/24/28Mhz,计算公式为:
    默认值<=0.75*采样率(Hz)
-C 此参数为将内部晶体、时钟设置为ppm
-H 此参数为设置设备使用GPIO引脚同步USB传输

2.信号发送

我们可以使用下面的命令录制信号。无线遥控设备通常是 315MHZ 和 433.92MHZ,这里指定录制频率为315MHz。运行后,手动触发遥控信号。

HackRF_transfer -r open.raw -f 315000000 -l 16 -g 20

图片

运行下面的命令重放刚刚录制的遥控信号。

HackRF_transfer -t open.raw -f 315000000 -x 40

图片

除了在linux中使用HackRF_transfer接收和发送信号外,在windows中也可通过Universal Radio Hacker软件进行接收和发送。我们可以利用HackRF接收和发送信号的能力,实现重放攻击。为了方便演示,下面以GPS欺骗实验为例,测试HackRF发送信号的功能。

实验:GPS欺骗

我们可以使用GPS-SDR-SIM生成GPS仿真数据,并使用HackRF_transfer命令发送欺骗GPS信号。这个项目的原理是gps-sdr-sim能根据指定的卫星信息文件、坐标信息、采样频率等参数输出二进制的信号文件,将这个二进制文件导入到USRP或者bladeRF之类的无线电射频设备上就可以实现GPS的伪造。

下载并编译 GPS-SDR-SIM。

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

图片

编译完成后./gps-sdr-sim运行程序,该程序参数详细解析如下。

Usage: gps-sdr-sim [options]
Options:
  -e <gps_nav>     卫星信息文件(必须)
  -u <user_motion> 用户定义的坐标文件 (动态的位置信息)
  -g <nmea_gga>    NMEA坐标文件 (动态的位置信息)
  -l <location>    坐标,维度-经度-海拔,例如:30.286502,120.032669,100
  -t <date,time> 模拟的开始时间 YYYY/MM/DD,hh:mm:ss
  -d <duration>    持续时间 [秒] (最大: 300)
  -o <output>      二进制文件的输出位置 (默认: gpssim.bin)
  -s <frequency>   采样频率 [Hz] (默认: 2600000)
  -b <iq_bits>     二进制文件格式 [1/8/16] (默认: 16)
  -v 更多细节信息

我们在世界地图中随意选取一个坐标与星历数据生成GPS仿真数据

./gps-sdr-sim -e brdc0010.22n -l 95.64899170484503,25.988308575432956 -b 8

图片

电脑连接HackRF后使用HackRF_transfer程序发射GPS数据。

HackRF_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0

图片

注 :其中1575420000指定的是发射的频率,而2600000是采样频率,并且HackRF 会在发送完300秒GPS信号后会自动停止。

我这里测试大概在2分钟后,手机高德地图被欺骗。

图片

总结

在这一小节中,我们初步了解了HackRF的接收和发送信号的功能。并通过指定操作进行了接收和发送,并以GPS欺骗实验为例,对HackRF One的信号发送有了一定程序的理解。在后续的小节中,我们会以GNU Radio相关实验为例深入了解HackRF One的信号接收和发送能力。

图片

物联网安全26

物联网安全 · 目录

上一篇无线网络安全之WiFi Pineapple初探下一篇软件无线电安全之GNU Radio基础 -上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1595549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

香港服务器如何更换域名?

更换香港服务器的域名是一个相对复杂的过程&#xff0c;涉及到多个步骤和注意事项。 准备工作&#xff1a; 备份网站数据&#xff1a;在进行任何更改之前&#xff0c;务必备份您的网站数据&#xff0c;以防止数据丢失或损坏。 购买新的域名&#xff1a;如果您还没有购买新的…

职场如何有效学习充电

在现在的工作中&#xff0c;需要接触和了解各式各样的内容&#xff0c;但很多时候我自己没遇到过。而平时有感觉没什么时间&#xff0c;因此产生了这个疑问&#xff0c;看完这个课程后&#xff0c;对这块有了较为体系化的了解。 对我来说&#xff0c;学习的最终目的是充实自己…

【AI 斯坦福 STORM】基于互联网搜索,帮你从零开始撰写文章

今天介绍斯坦福出品的系统&#xff0c;STORM。 STORM是一个基于互联网搜索的LLM系统&#xff0c;可以从零开始撰写类似维基百科的文章。 技术栈&#xff1a; dspy 一个用于算法优化LM提示和权重的框架You.com搜索API YOU APIs利用实时网络数据使LLMs和搜索体验更加真实和及时…

力扣 | 148. 排序链表

和数组里面的归并排序思想一致 class Solution {public ListNode sortList(ListNode head) {//过滤条件if(head null || head.next null)return head;ListNode slow head;ListNode fast head.next;while (fast ! null && fast.next ! null){slow slow.next;fast …

【Maven工具】

maven Maven是一个主要用于Java项目的构建自动化工具。它有助于管理构建过程&#xff0c;包括编译源代码、运行测试、将编译后的代码打包成JAR文件以及管理依赖项。Maven使用项目对象模型&#xff08;POM&#xff09;文件来描述项目配置和依赖关系。 Maven通过提供标准的项目…

酷开系统让用户在方方面面享受科技进步带来的美好体验

电视本身的特性&#xff0c;再有人工智能和全时AI的加持&#xff0c;让搭载了酷开系统的电视有能力成为一个“家庭智慧管控中心”。互联网的存在让大家能更懒地完成事情&#xff0c;满足宅家的愿望&#xff0c;有话说&#xff0c;科技因懒人而进步。打个简单的比方&#xff0c;…

手机照片删除了怎么恢复?恢复iPhone照片,试试这4招

当手机上的珍贵照片意外被删除时&#xff0c;让人心急如焚。幸运的是&#xff0c;对于使用iPhone的用户来说&#xff0c;恢复被删除的照片并不是一件难事。即使你不小心删除了照片&#xff0c;仍然有一些方法可以尝试将它们找回。手机照片删除了怎么恢复&#xff1f;在本文中&a…

计算机网络—传输层UDP协议:原理、应用

​ &#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;2月のセプテンバー 1:21━━━━━━️&#x1f49f;──────── 5:21 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

交叉熵损失函数介绍

交叉熵是信息论中的一个重要概念&#xff0c;它的大小表示两个概率分布之间的差异&#xff0c;可以通过最小化交叉熵来得到目标概率分布的近似分布。 为了理解交叉熵&#xff0c;首先要了解下面这几个概念。 自信息 信息论的基本想法是&#xff0c;一个不太可能的事件发生了…

【leetcode面试经典150题】51. 用最少数量的箭引爆气球(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

【学习笔记十六】EWM常见下架策略介绍

一、FIFO(First in ,First out)先进先出下架策略 1.后台配置 ①定义出库规则 字段: WDATU:收货日期和时间 或者WDATU_DATE收货日期无时间 QUAN:可用数量 排序: 不勾选升序,勾选降序 ②指定仓库类型搜索顺序 ③确定出库的存储类型搜索顺序 ②和③的配置详情见…

Android MVVM架构学习——ViewModel DataBinding

关于MVVM架构&#xff0c;我并不想花篇幅去做重复性的描述&#xff0c;网上一搜都是一堆讲解&#xff0c;大家可以自行了解&#xff0c;我所做的只是以最简单的例子&#xff0c;最有效的步骤&#xff0c;从零开始&#xff0c;去实现一个相对有点学习参考价值的项目。 先来看本…

无人机GB42590接收端 +接收端,同时支持2.4G与5.8G双频WIFI模组

严格按照GB42590的协议开发的发射端&#xff0c;通过串口和模块通讯&#xff0c;默认波特率 921600。 http://www.doit.am/首页-深圳四博智联科技有限公司-淘宝网https://shop144145132.taobao.com/?spma230r.7195193.1997079397.2.71f6771dJHT2r0 二、接口文档 单片机和模…

【web3技术】什么是 WEB3?

Web3 简介 中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。 与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。 Web3 是摆脱这一困境的方案。 不同于科技巨头垄断的传统互联网,Web3 采用去中心化,由所有用户构建、运营和拥有。…

探索数据结构:顺序串与链式串的深入理解

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 串的定义 串是一种特殊的顺序表&#xff0c;即每一个元素都是单独一…

Matlab 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到MatlabR2024a“。 2.打开解压后的文件夹&#xff0c;鼠标右击“MATHWORKS_R2024A“选择装载。 鼠标右击“setup“选择”以管理员身份运行“。点击“是“&#xff0c;然后点击”下一步“。复制一下密钥粘贴至输入栏&#xff0c;然后…

移动开发避坑指南——内存泄漏

在日常编写代码时难免会遇到各种各样的问题和坑&#xff0c;这些问题可能会影响我们的开发效率和代码质量&#xff0c;因此我们需要不断总结和学习&#xff0c;以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结&#xff0c;以提高大家的开发质量。本系列文章…

爬虫的目的是做什么

通过网站域名获取HTML数据解析数据&#xff0c;获取想要的信息存储爬取的信息如果有必要&#xff0c;移动到另一个网页重复过程 这本书上的代码的网址是 &#xff1a; GitHub - REMitchell/python-scraping: Code samples from the book Web Scraping with Python http://shop.…

低代码集成Java系列:高效构建自定义插件

前言 随着软件开发的快速发展和需求的不断增长&#xff0c;开发人员面临着更多的压力和挑战。传统的开发方法需要花费大量的时间和精力&#xff0c;而低代码开发平台的出现为开发人员提供了一种更加高效、快速的开发方式。今天小编就以构建命令插件为例&#xff0c;展示如何使…

不要顺从胃的指示进食

没有人喜欢一直胖着&#xff0c;但想瘦&#xff0c;运动力、运动量、毅力、耐力、坚持、饮食管控方面等都不可缺&#xff0c;道理懂得都懂&#xff0c;但大多数超重胖子却都是有心而无力的。原因&#xff0c;除了生理体积影响了行动外&#xff0c;更重要的一点是&#xff1a;由…