MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘

Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者可以利用漏洞控制你的电脑操作。研究团队将此攻击命名为MouseJack。
七大厂商皆中招
软件工程师马克纽林说:“利用假冒的无线电脑鼠标和键盘可以从100米的距离利用便携式外围设备入侵笔记本电脑,这些设备来自至少七家大厂商,包括罗技、微软、亚马逊”。
相对于通常被加密的键盘无线链路来说,攻击目标通常为明文和非蓝牙端口和鼠标之间的安全通信。

纽林,Bastille的安全装备机构,发现了针对13种鼠标和键盘的攻击并向各厂商报告了漏洞,其中有些厂商已经发布了补丁。

攻击者部署了漏洞代码并且将信息上传到GitHub ,所有未打补丁的设备的用户现在面临被攻击的风险。

(伪造未加密键盘包)
虽然应该指出的是,黑客必须有足够的动机去到受害者附近实施攻击,但是对于那些不能更新设备的人,唯一的选择只有更换硬件。
攻击原理
纽林说,糟糕的是“…没有身份验证机制,而且适配器无法识别用数据包是由鼠标发送的还是由攻击者发送的”。
“因此,攻击者可以伪装成一个鼠标发送自己的数据或者点击数据包以欺骗适配器。”
“在适配器接收数据包的过程中遇到的问题,使攻击者有可能发送特制的数据包产生按键代替鼠标移动和点击”。

MouseJacker的攻击流程图
北欧半导体制造的nrf24l收发器系列是用来干扰设备使用的。纽林认识到了这一点,使用现有的一个古老的任天堂游戏控制器内的nrf24l收发器制作了一个伪造的鼠标。
下面是制作过程:
nrf24l芯片不支持数据包嗅探,但在2011年Travis Goodspeed记录伪混杂模式可以嗅出被其他设备发送的数据包的一个子集。这使NES控制器不需要SDR就能识别无线鼠标和键盘。NES控制器是学习鼠标通信协议行为的一个很好的平台。相对于被动收集数据,NES控制器会把d-pad方向箭转换为鼠标移动的数据包,并将A/B按钮转换为鼠标的左、右键。为了实现流畅的用户体验,要对数据包的timing和特定行为建立模型。
另一个带有用来数据包嗅探的几行Python代码和注入编织成一个放大的具有模糊能力的USB crazyradio适配器建立了。
纽林说漏洞包括按键注射,鼠标、键盘欺骗和强制配对。
联想的N700和Ultraslim鼠标和键盘也受到DoS漏洞攻击的影响。
观看视频
*参考来源:github,theregister
MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘的更多相关文章
- 利用github for windows 工具将本地的内容同步到github上
1 利用github for windows工具来创建一个Repository,名字叫weixin,具体步骤 请参考这篇文章 根据default storage directory的设置 我知道我所创 ...
- 【前端开发】利用Fiddler抓包工具进行本地调试
解决什么问题: 解决前端在本地联调页面 || 样式 || 脚本时经常修改服务器代码,浪费太多时间. 避免多人同时修改代码产生冲突问题.可以在本地调完代码之后,再贴到服务器上. 其实这个问题老早就开始想 ...
- 利用Chrome的Performance工具排查页面性能问题(原叫timeline)
当页面中发生卡顿,最先考虑的是swf文件造成的卡顿,经过排查发现不是swf造成的影响,利用Chrome的Performance工具发现页面中的一些元素不断在重新布局,造成潜在的性能瓶颈. 首先在Chr ...
- 利用ArcGIS水文分析工具提取河网
转自原文 利用ArcGIS水文分析工具提取河网(转) DEM包含有多种信息,ArcToolBox提供了利用DEM提取河网的方法,但是操作比较烦琐(帮助可参看Hydrologic analysis sa ...
- 利用 Symbol Type Viewer 工具实现将 pdb 文件 转换为 c\c++ 头文件
利用 Symbol Type Viewer 工具实现将 pdb 文件 转换为 c\c++ 头文件 一.得到符号 二.将符号转换为 .h 文件 三.得到 c\c++ 头文件,之后编程时直接导入这个文件即 ...
- 利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比)
利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比) 以下是红色内容是在命令行运行: C:\Users\Administrator>winsat diskWindow ...
- 利用这10个工具,你可以写出更好的Python代码
我每天都使用这些实用程序来使我的Python代码可显示. 它们是免费且易于使用的. 编写漂亮的Python比看起来难. 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误. 很多人 ...
- (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定
本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定
本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和云计算平台Azure简介 (6分 ...
随机推荐
- HTML5自学笔记[ 6 ]data自定义数据
在标签中添加data-name属性并赋值,在js脚本中用ele.dataset.name就可以获取该属性的值.如: <div id="box" data-age=" ...
- OC 实例变量(instance var)与属性(@property)的关系 isa指针
实例变量(instance var)与属性(@property)的关系 Objective-C 2.0之后,声明一个@property name自动产生一个实例变量,名为_name,因此省去实例变量和 ...
- 500 TypeError: Cannot read property 'connect.sid' of undefined
1:在写passport验证测试用例时,发现有几个引用中间件顺序的错误,检查发现,passport验证写的是session,在传错误信息的时候req.flash调用也需要用到session中间件,否则 ...
- Android Bundle、Handler和Message类介绍
Bundle是一个载体,可以存放基本数据类型.对象等内容,相当于一辆汽车,可以装载很多东西,然后运到需要的地方,例如: Bundle mBundle=new Bundle(); mBundle.put ...
- perl 正则匹配代码
36 chomp $line; 37 my @vec = split /\t/, $line; 38 my @vec2 = ($vec[1]=~/[a-z]+/g); 39 ...
- C#获取相对路径的方法
这八种C#获取相对路径的方法,包括获取和设置当前目录的完全限定路径.获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称等等内容. C#获取相对路径1. 获取和设置当前目录的完全限定路径. ...
- PHP 页面编码声明方法详解(header或meta)
php的header来定义一个php页面为utf编码或GBK编码 php页面为utf编码 header("Content-type: text/html; charset=utf-8&quo ...
- 转 Warning:MongoDB Replica Sets配置注意事项
我们知道,MongoDB不提供单机的数据安全性,取而代之的是提供了Replica Sets的高可用方案.官方文档中提到的案例是三个节点组成的Replica Sets,这样在其中任何一个节点宕机后都会自 ...
- sql2008 附加数据库出错解决方法
当遇到 无法为此请求检索数据,(Microsoft.SqlServer.SmoEnum)其他信息执行Transact-Sql语句或批处理时发生了异常, Microsoft.SqlServer.Conn ...
- qt--- vs
qt with vs 1.安装vs2012: 2.下载Qt 5.2.0 for Windows 32-bit (VS 2012, 579 MB) 和 Visual Studio Add-in 1.2. ...