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

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.rhkb.cn/news/309629.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载

CCleaner软件是一款优秀的数据清理软件&#xff0c;其中没有硬盘和内存的设置&#xff0c;也不含任何广告软件&#xff0c;其出色的注册表清洁功能能够保证您的电脑更稳定运行。本文将围绕CCleaner怎么清理软件缓存&#xff0c;CCleaner清理要勾选哪些的相关内容进行介绍。 一、…

前端浏览器跨标签通信方式分享

跨标签通信也有很多实际的应用场景&#xff0c;比如&#xff1a; 共享登录状态&#xff1a;当用户在一个标签页中登录后&#xff0c;其他打开的标签页需要及时获取到登录状态&#xff0c;以保持一致的用户体验。在这种情况下&#xff0c;可以使用浏览器的localStorage或sessio…

【Linux网络编程】UDP协议

UDP协议 1.再谈端口号端口号划分认识知名端口号(Well-Know Port Number)两个问题netstatpidof 2.UDP协议2.1UDP的特点2.2面向数据报2.3UDP的缓冲区2.4UDP使用注意事项2.5基于UDP的应用层协议 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.再谈端口号 端口…

神经网络模型底层原理与实现8-BERT

首先介绍什么是自监督学习&#xff1a; 普通的有监督学习是每个x对应有个y&#xff0c;x训练得到y&#xff0c;将y与y作比较&#xff0c;而自监督是没有对应y&#xff0c;直接把一部分样本x作为训练目标x&#xff0c;训练得x后和x对比 bert中如何创造x&#xff1a;以文字处理为…

Python爬虫-京东商品评论数据

前言 本文是该专栏的第68篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者有详细介绍京东滑块验证码的解决方法,感兴趣的同学,可以直接翻阅文章《Python如何解决“京东滑块验证码”(5)》进行查看。 而本文,笔者以京东商品详情页的评论数据为例,通过…

SpringBoot - Logback 打印第三方 Jar 日志解决方案

问题描述 最近碰到一个很苦恼的问题&#xff0c;就是第三方的 Jar 在自己项目里日志可以正常输出&#xff0c;但是一旦被引用到其他项目里&#xff0c;就日志死活打不出来…… 解决方案 这是原来的配置 - logback.xml <?xml version"1.0" encoding"UTF-8…

怎么看电脑显卡?跟着这篇文章轻松掌握

电脑显卡是决定图形性能的关键硬件之一&#xff0c;对于电脑的图形处理和游戏性能有着重要的影响。了解自己电脑的显卡型号和性能可以帮助用户更好地了解自己电脑的性能状况&#xff0c;以及是否需要升级显卡以提升性能。本文将介绍怎么看电脑显卡的三种方法&#xff0c;帮助用…

JVM—jps、jstat、jinfo、jmap、jstack的使用

JVM—jps、jstat、jinfo、jmap、jstack的使用 jps jps全称&#xff1a;Java Virtual Machine Process Status Tool 可以查看Java进程&#xff0c;相当于Linux下的ps命令&#xff0c;只不过它只列出Java进程。 jps:列出Jav程序ID和Main函数名称 jps -q:只输出进程ID jps -m …

rabbitmq安装erlang环境后没生效

引言 安装erlang环境后输入erl提示无效 首先&#xff0c;确定 Erlang 的可执行文件位于什么位置。默认情况下&#xff0c;它们通常位于 /usr/local/bin 或 /usr/bin 目录中。您可以使用 find 命令来查找 erl 可执行文件 的位置&#xff0c;例如&#xff1a; find /usr -name er…

技术周刊的转变:如何平衡热爱与现实?

大家好&#xff0c;我是那个自己打脸自己的猫哥&#xff0c;本来说周刊不做订阅制的&#xff0c;现在却推出了订阅专栏。今天想为自己辩护一下&#xff0c;同时聊聊技术周刊今后的发展计划。 首先回顾一下我过去的想法吧&#xff0c;然后再解释为什么会突然出现转变。 出于对…

【Docker】docker原理及使用-1

Docker目录 1️⃣概念2️⃣使用容器的好处2️⃣docker和普通软件启动方式的区别2️⃣docker和传统虚拟机的区别 1️⃣下载安装2️⃣安装步骤 1️⃣必须要掌握的核心概念1️⃣命令2️⃣例子2️⃣练习题目2️⃣进入一下python环境(简洁) 1️⃣解释一下 redis1️⃣docker底层隔离机…

亚马逊CloudFront使用体验

前言 首先在体验CloudFront之前&#xff0c;先介绍一下什么是CDN&#xff0c;以及CDN的基本原理。 CDN是Content Delivery Network&#xff08;内容分发网络&#xff09;的缩写&#xff0c;是一种利用分布式节点技术&#xff0c;在全球部署服务器&#xff0c;即时地将网站、应…

PotPlayer 图像截取

PotPlayer 图像截取 1. PotPlayer2. PotPlayer 下载2.1. PotPlayer 240305 3. 图像截取References 1. PotPlayer http://www.potplayercn.com/ PotPlayer 是 KMPlayer 原作者姜勇囍进入新公司 Daum 之后推出的&#xff0c;继承了 KMPlayer 所有的优点&#xff0c;拥有异常强大…

得帆用户有福了!全新社区论坛携手AI助手华丽上线,积分好礼等你拿!

盼望着&#xff0c;盼望着&#xff0c;春天的脚步近了&#xff0c;得帆云社区迎来全新升级&#xff0c;社区论坛携手AI知识库助手上线了&#xff01; 得帆云官方社区论坛&#xff1a; https://edu.definesys.cn/community/community-forum 您也可以点击本文末尾左下方“阅读…

postman接口测试(入门到精通)

下载&#xff1a; postman官方地址 测试外部接口&#xff1a;测试被测系统和外部系统之间的接口。&#xff08;只需要测试正例即可&#xff09; 测试内部接口&#xff1a; 1.内部接口只提供给内部系统使用。&#xff08;只需要测试正例即可&#xff09; 2.内部接口提供给外…

Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)

个人主页&#xff1a; 进朱者赤 阿里非典型程序员一枚 &#xff0c;记录平平无奇程序员在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; 引言 在Java中&#xff0c;并发编程一直是一个重要的领域&#xff0c;而JDK 8中的java.u…

Python数据分析案例42——基于Attention-BiGRU的时间序列数据预测

承接上一篇的学术缝合&#xff0c;排列组合模型&#xff0c;本次继续缝合模型演示。 Python数据分析案例41——基于CNN-BiLSTM的沪深300收盘价预测-CSDN博客 案例背景 虽然我自己基于各种循环神经网络做时间序列的预测已经做烂了.....但是还是会有很多刚读研究生或者是别的领…

【C++】C++11 lambda表达式

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 C11引入『 lambda表…

如何发布自己的Python库?

Python包发布 1、背景概述2、操作指南 1、背景概述 为什么我们要发布自己的Python库&#xff1f;如果你想让你的Python代码&#xff0c;通过pip install xxx的方式供所有人下载&#xff0c;那就需要将代码上传到PyPi上&#xff0c;这样才能让所有人使用 那么&#xff0c;如何发…

守护你的网络,防御ddos攻击的必备技能

随着互联网的普及&#xff0c;网络安全问题越来越受到人们的关注。在各种网络攻击中&#xff0c;DDoS 攻击是一种最常见的攻击方式&#xff0c;它能够使网站或网络服务站点瘫痪&#xff0c;给用户带来极大的困扰&#xff0c;给企业带来财务损失。 DDoS 是什么&#xff1f; DDoS…