0×00 前言

上半年的时候安全公司Bastille Networks(巴士底狱)安全研究员发现大多数无线鼠标和接收器之间的通信信号是不加密的,黑客可对一两百米范围内存在漏洞的无线键鼠进行嗅探甚至劫持,从而控制受害者电脑,向计算机中输入任何指令!

相关阅读:Mousejack Hacking : 如何利用MouseJack进行物理攻击

该漏洞在于通信数据不加密,导致数据可被嗅探、劫持。今天的分享不再使用Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle,我们来试着使用gr-nordic开源项目+SDR硬件嗅探nordic 北欧公司的RF无线芯片数据。

0×01 系统安装

下载Ubuntu 16.04

0×02 搭建SDR开发环境

安装pip和pybombs

apt-get update
apt-get install git
apt-get install python-pip
pip install --upgrade pip
pip install git+https://github.com/gnuradio/pybombs.git

获取GnuRadio的安装库

pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git

安装SDR常用软件

pybombs install osmo-sdr rtl-sdr gnuradio hackrf airspy gr-iqbal libosmo-dsp gr-osmosdr gqrx

使用pybombs安装bladeRF会报错,这里选择源码编译:

git clone https://github.com/Nuand/bladeRF
cd bladeRF/host
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

0×03 编译gr-nordic

gr-nordic:GNU Radio module and Wireshark dissector for the Nordic Semiconductor nRF24L Enhanced Shockburst protocol.

git clone https://github.com/BastilleResearch/gr-nordic/
cd gr-nordic/
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

0×04 安装WireShark

apt-get install wireshark

Ubuntu系统中,访问网络端口需要root权限,而wireshark的只是/usr/share/dumpcap的一个UI,/usr/share/dumpcap需要root权限,所以没法non-root用户无法读取网卡列表。解决办法使用sudo wireshark启动抓包,但使用root权限启动wireshark就不能使用lua脚本: 解决方案:

sudo -s
groupadd wireshark
usermod -a -G wireshark $你的用户名
chgrp wireshark /usr/bin/dumpcap
chmod 750 /usr/bin/dumpcap setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
getcap /usr/bin/dumpcap

当输出为:

/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

即为设置生效。注销登录状态或者重启系统启用配置。

0×05 数据包捕获

gr-nordic项目中include里边包含了nordic的tx、rx、API头文件,lib文件夹则是该项目依赖的一些库文件,example文件包含了Microsoft鼠标以及扫描、嗅探使用Nordic北欧芯片键鼠的利用脚本,wireshark文件夹中则是对扫描、嗅探到的数据包进行分析所需的lua脚本。

gr-nordic$ wireshark -X lua_script:wireshark/nordic_dissector.lua -i lo -k -f udp

gr-nordic$cd example
gr-nordic/example$./nordic_sniffer_scanner.py

0×06 演示视频

0×07 Thanks & refer

gr-nordic: GNU Radio module and Wireshark dissector for the Nordic Semiconductor nRF24L Enhanced Shockburst protocol.

孤独小白:GNU Radio教程(一)

Sniffing with Wireshark as a Non-Root User

Bastille 巴士底狱安全研究员:Marc NewlinBalint Seeber

原文地址:http://www.freebuf.com/articles/wireless/115440.html

GnuRadio Hacking②:使用SDR嗅探北欧芯片无线键盘鼠标数据包的更多相关文章

  1. Deepin 15.4 如何使用 罗技无线键盘/鼠标(采用优联技术)

    1.罗技的“无线优联技术”还是非常强大的,它跟具体的操作系统无关: 2.你只需要 让“优联接收器(一个USB设备)”跟 “无线键盘/鼠标” 配对即可,配对完之后,就无需再配对,即使把“优联接收器”插到 ...

  2. 各种平台的表达芯片跟mRNA-seq数据比较

    各种平台的表达芯片跟mRNA-seq数据比较 RNA-Seq 表达谱 芯片数据分析 文章见:http://journals.plos.org/plosone ... ournal.pone.00786 ...

  3. GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控

    0×01 信号捕获 在这篇文章中,我们将使用GnuRadio+SDR硬件对某品牌型号的无线跳蛋进行无线重放攻击的演示. 市面上常见的无线遥控工作的频段,通常工作在315Mhz.433Mhz,也有少数的 ...

  4. 擦掉STM32F429芯片上的数据的一个方法

    刚入手一块STM32F429Discovery.手痒痒的,准备写个程序进去.一不小心,把MCU的调试接口SW.JTAG全部给禁用了.这下可坏了,写不进去程序,擦不掉数据.愁的某家一头大汗.突然想起了当 ...

  5. Thinkpad机器BIOS下清除安全芯片和指纹数据的方法

    清除安全芯片: 首先在刚开机出现ThinkPad图标时,按F1进入BIOS界面,然后长按关机按钮关机(注意一定是断电的关机,不是重新启动)然后开机再按F1键进入BIOS设置.选择“Securiy”-〉 ...

  6. ipmitool sdr type Temperature sdr 从传感器获取某一类数据

    1.1.1 常用监控命令总结.ipmitool sdr type Temperature 硬件监控 yum install  OpenIPMI ipmitool ipmitool sdr type T ...

  7. 如何用极路由+OpenWrt+SDR电视棒搭建SDR服务器

    0×00 前言 近期因为有个从异地捕获无线信号的需求,便尝试着用OpenWrt+公网IP搭建了一台SDR服务器.如果有小伙伴嫌SDR硬件天线看起来太乱.或者电脑没有足够的USB接口也可在局域网搭建SD ...

  8. GSM Hacking Part② :使用SDR捕获GSM网络数据并解密

    0×00 在文章第一部分 GSM Hacking Part① :使用SDR扫描嗅探GSM网络 搭建了嗅探GSM流量的环境,在第二部中,我们来讨论如何捕获发短信以及通话过程中的流量,从捕获到的数据中解密 ...

  9. 360独角兽实习,连载周记(gnuradio 低功耗蓝牙BLE 综合工具模块编写)

    (有点乱,之后会有整理) 最近在用写一套gnuradio的OOT模块,主要用来进行BLE嗅探的,github上有了一些工具,可是他们并没有很好的模块化,于是打算自己写一个,这样以后做一些其他的项目,模 ...

随机推荐

  1. ON DUPLICATE KEY UPDATE重复插入时更新

    mysql当插入重复时更新的方法: 第一种方法: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (c ...

  2. css学习笔记 3

    css选择符: 通配选择符:* 类选择符:.className 标签选择符 后代选择符:例:p strong ,选择的是p标签内的所有strong标签. 子选择符:> ,只选择父标签内的直接子标 ...

  3. Swift的 convenience && designated init

    http://www.th7.cn/Program/IOS/201603/789227.shtml 在 OC 中 init 方法是非常不安全的,没人能够保证 init 只被调用一次,也没有人保证在初始 ...

  4. 《精通C#》委托与事件(10章)

    委托可用来解耦以及状态变化的实时通知,以及其他的一些作用,但是经验所限,目前还未遇见.网上的大多数例子都是类似于,使用委托,然后用console返回方法的返回值,有时候会在想,委托的通知如果是这样的话 ...

  5. rem

    "em"是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险.而rem是相对于根元 ...

  6. JS 面向对象、prototype原型的克隆

    JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...

  7. F:ungeon Master

    总时间限制: 1000ms 内存限制: 65536kB描述You are trapped in a 3D dungeon and need to find the quickest way out! ...

  8. java字节流与字符流的区别

    1.Java的字节流: InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流: Reader是所有读取字符串输入流的祖先,而write ...

  9. Spring——jar包详解(转)

    Spring——jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spr ...

  10. [整]磁盘 I/O 性能监控指标和调优方法

    在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能. 磁盘 I/O 性能监控的指标主要包括: 指标 1:每秒 I/O 数(IOPS 或 t ...