HackRF入门

无线电基础

历史

  • 1837年,摩斯发明了电报,创造了摩斯密码(Morse code),开始了通信的新纪元。
  • 1865年,英国的麦克斯韦总结了前人的科学成果,提出电磁波学说。
  • 1876年,贝尔发明了电话,能够直接将语言信号变为电能沿导线传送。
  • 1887年,德国科学家赫兹(Hertz)用一个振荡偶子产生了电磁波,在历史上第一次直接验证了电磁波的存在。
  • 1897年,意大利科学家马可尼(Marconi)在赫兹实验的基础上,实现了远距离无线电信号的传送,这个距离在当时不过一百码,但一年后他就实现了船只与海岸的通信。
  • 1901年12月12日,马可尼做了跨越大西洋传送无线电信号的表演。这一次他把信号从英国的Cornwall发送到加拿大的Newfoundland。 马可尼因此获得1909年度诺贝尔奖。与他分享这一年度诺贝尔奖的是布劳恩(Braun),因为布氏发现金属硫化物具有单向导电性,这一成果可用于无线电接收装置。
  • 1904年,英国科学家弗莱明(Fleming)获得了一项专利,在专利说明书中描述了一个高频交变电流整流用的两极真空管,标志着进入无线电电子学时代。
  • 1906年,美国科学家弗雷斯特(Forest)发明了真空三极管,是电子技术发展史上第一个重要里程碑。同年,美国科学家费森登(Fessenden)在Massachusetts领导了第一次广播。
  • 1912年,英国科学家埃克尔斯(Eccles)提出了无线电波通过电离层传播的理论,这一理论使得一群业余爱好者在1921年实现了短波试验性广播; 同年,美国的费森登(Fessenden)和阿姆斯特朗(Armstrong)改进了接收机的工作方式,发明了外差式接受系统,这种形式仍是目前许多无线电接收机的主要工作方式。

无线电与电磁波

频率在数百千赫兹到数百兆赫兹之间的电磁波叫做无线电波,它包括短波、中波、长波、微波,无线电波也仅仅是电磁波的一部分,但电磁波不仅仅只有无线电波,仅仅只有频率相对较低的一部分电磁波才叫无线电波。

日常生活中的无线电

收音机(无线广播)

遥控器

路由器

蓝牙

卫星天线

对讲机

GPS

无人机

各种物联网,智能家电,等等

软件无线电(SDR)

软件无线电,即Software Defined Radio,SDR。通俗来讲,SDR就是基于通用的硬件平台上用软件来实现各种通信模块。

概念中有两个关键词,“通用硬件平台”和“软件”。“通用硬件平台”就是说我们能基于这个硬件平台实现各种各样的通信功能,而不是说一个硬件平台只能实现一种通信功能。“软件”来实现通信模块是相对于传统的无线电技术来讲的,传统的无线电通信模块都是用硬件电路来设计,一个通信电路只能完成一种通信功能,开发周期长,开发成本高,而且一旦设计好后功能就无法改变。软件化可以加快通信模块的开发速度,降低开发成本,便于调试和维护。

SDR技术被誉为通信领域的第三次革命。第一次革命是1G通信系统,由有线通信到无线通信的革命;第二次革命是2G通信系统,由模拟通信到数字通信的革命。SDR是未来通信系统的发展趋势。

各种SDR平台

USRP

USRP是Ettus公司的产品,目前主要有B系列,E系列,N系列和X系列等,基本上系列字母越靠后价格越贵。由于USRP型号太多,我们以B系列为例来介绍USRP。 B系列主打小型化,目前有USRP B200/B210、USRP mini系列等,其中迷你系列更是只有一张名片大小。而且B系列都采用USB3.0接口与GPP通信,而且直接采用USB供电,使用非常便捷。USRP B系列的产品大部分单价都在7000-8000块之间,但是如果加上税钱、运费等,差不多就得10000块了。国内代理USRP相关的主要是嘉兆科技有限公司。USRP相关产品的介绍请链接官网

BladeRF

BladeRF主要有三种型号,BladeRF X40,BladeRF X115, BladeRF X115 Thermal。BladeRF X40 是低配版,大概约$420,即3000块左右;BladeRF X115是高配版,FPGA比BladeRF X40好,价格约$650,即4500块左右;而BladeRF X115 Thermal则是顶配版,可以耐受极端环境,价格约$1500,即10000块左右。BladeRF的详细信息请查阅官网

HackRF

HackRF,顾名思义是黑客版的SDR外设,它主打性价比高,价格便宜。HackRF主要有两种版本,HackRF blue和HackRF one,其中HackRF blue是低配版,HackRF是高配版。注意的是HackRF只能支持半双工。HackRF详细的信息请查阅官网

RTLSDR

如果说上述设备对学生党来说都太贵了,毕竟动不动就好几千块钱,那么不得不隆重介绍下入门级的SDR外设,RTLSDR。淘宝一搜RTLSDR就能出来一大堆,而且都只需要几十块钱。便宜就意味着性能的低,RTLSDR本来是用来接收电视信号的,所以也称为电视棒。RTLSDR只能接收信号,不能发射信号,而且只有2.8M/s的采样速率,根据奈奎斯特采样定律换算一下理论上最大支持的带宽只有1.4M。但这仍然是一款非常适合用来入门的SDR外设。RTLSDR具体使用方法参见sdr.osmocom.orgrtl-sdr.com

三款SDR平台对比

hackrf in kali环境搭建

安装hackrf驱动及依赖

1
apt-get install hackrf libhackrf-dev libhackrf0

hackrf_info查看是否安装成功

1
2
3
4
5
6
7
8
9
root@kali:~# hackrf_info
hackrf_info version: unknown
libhackrf version: unknown (0.5)
Found HackRF
Index: 0
Serial number: 0000000000000000925866e62a5813e3
Board ID Number: 2 (HackRF One)
Firmware Version: 2015.07.2 (API:1.00)
Part ID Number: 0xa000cb3c 0x0061435e

安装gnuradio,gqrx等

1
apt-get install gnuradio gnuradio-dev gr-osmosdr gr-osmosdr gqrx-sdr wireshark

在kali下听广播

用gqrx来收听FM调频广播

device选hackrf,然后会看到device string后面为刚才hackrf_info查看得到的Serial number最后部分,就是正确了,然后点ok,如图设置好,点左上角三角形启动就能听广播了

然后点 input controls 控制RF,IF,BB的收益值直到能听到清晰的广播

另外,左边瀑布图可以按住左键滑动鼠标中间滚轮放大放小,右下角rec可以录制广播,默认存在~目录

实时广播

利用hackrf_transfer,-h查看参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
root@kali:~# hackrf_transfer -h
Usage:
-h # this help
[-d serial_number] # Serial number of desired HackRF.
-r <filename> # Receive data into file (use '-' for stdout).
-t <filename> # Transmit data from file (use '-' for stdin).
-w # Receive data into file with WAV header and automatic name.
# This is for SDR# compatibility and may not work with other software.
[-f freq_hz] # Frequency in Hz [0MHz to 7250MHz].
[-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2150MHz to 2750MHz].
[-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
[-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
[-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
[-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
[-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
[-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
[-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
[-s sample_rate_hz] # Sample rate in Hz (4/8/10/12.5/16/20MHz, default 10MHz).
[-n num_samples] # Number of samples to transfer (default is unlimited).
[-S buf_size] # Enable receive streaming with buffer size buf_size.
[-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
[-R] # Repeat TX mode (default is off)
[-b baseband_filter_bw_hz] # Set baseband filter bandwidth in Hz.
Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default <= 0.75 * sample_rate_hz.
[-C ppm] # Set Internal crystal clock error in ppm.
[-H hw_sync_enable] # Synchronise USB transfer using GPIO pins.

开始录制:

1
hackrf_transfer -r 96_3.raw -f 96300000 -g 30 -l 24 -a 1 -p 1 -s 8000000 -b 4000000

ctrl+c停止录制之后/root中会有一个1.raw文件,这时使用hackrf_transfer进行发射:

第二百八十八条 违反国家规定,擅自设置、使用无线电台(站),或者擅自占用频率,经责令停止使用后拒不停止使用,干扰无线电通讯正常进行,造成严重后果的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金

发射广播

测试时最好-f指定一个未使用的频率,-x发射增益尽量小一点,这里gqrx发现97.4左右没有广播

1
hackrf_transfer -t 96_3.raw -f 97400000 -x 10 -a 1 -p 1 -s 8000000 -b 4000000 -R

这就是最简单的重放攻击,重放攻击应用场景十分广泛,也是常见的无线电攻击手段,举几个栗子

  • 汽车遥控开门
  • 遥控电动卷帘门
  • GPS攻击
  • 遥控玩具小车
  • ……

理论上可以对一切通过无线电进行的通讯,进行监听,重放攻击,不过一般无线电通讯都是加密的,不同通讯采用的协议不一样,如wifi采用WPA2,GSM采用A5加密等,所以密码学在无线通信中承担着重要的角色

另外可以用gnuradio来广播你自己的音乐,或者利用麦克风输入的声音作为声音源进行实时广播,具体做法可以参考这篇链接

http://www.freebuf.com/news/139716.html

GPS劫持

下载并编译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

参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@kali:~/gps-sdr-sim# ./gps-sdr-sim -h
Usage: gps-sdr-sim [options]
Options:
-e <gps_nav> RINEX navigation file for GPS ephemerides (required)
-u <user_motion> User motion file (dynamic mode)
-g <nmea_gga> NMEA GGA stream (dynamic mode)
-l <location> Lat,Lon,Hgt (static mode) e.g. 35.681298,139.766247,10.0
-t <date,time> Scenario start time YYYY/MM/DD,hh:mm:ss
-T <date,time> Overwrite TOC and TOE to scenario start time
-d <duration> Duration [sec] (dynamic mode max: 300, static mode max: 86400)
-o <output> I/Q sampling data file (default: gpssim.bin)
-s <frequency> Sampling frequency [Hz] (default: 2600000)
-b <iq_bits> I/Q data format [1/8/16] (default: 16)
-i Disable ionospheric delay for spacecraft scenario
-v Show details about simulated channels

制作定位文件

1
./gps-sdr-sim -e brdc3540.14n -l 66,66,100 -b 8 -d 300

将手机定位模式设置为仅GPS

设置–位置信息–模式–仅限设备(使用GPS确定位置)

劫持前(软件名字GPS工具箱高德地图

对1575420000Hz(民用GPS频率)实施劫持

1
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 10

劫持后

hackrf的更多玩法及资料

黑客商店,超多好玩的东西

Hackrf one,大菠萝,橡皮鸭,Bash Bunny,UBERTOOTH ONE等

www.hak5.org
hakshop.com

hackrf.net

hackrf.net

freebuf

freebuf搜索:hackrf

freebuf搜索:sdr

android

配合otg线

RFAnalyzer.apk

一些网址