引言:在昨天的文章《无线键鼠监听与劫持》中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,《MouseJack》:MouseJack能利用无线鼠标和键盘存在的一些问题,达到伪装成键盘并实现任意按键的效果。
关于无线键鼠的监听与劫持有两个比较有参考价值的案例。其中之一就是MouseJack,它能利用无线鼠标和键盘存在的一些问题,达到伪装成键盘并实现任意按键的效果。造成的危害是可以伪装键盘输入任意命令控制计算机,甚至通过命令脚本下载病毒或者木马进行进一步的攻击。
MouseJack 搜集了无线鼠标键盘的一些安全问题。受影响的厂商多达七家,这些安全问题使黑客能在100 米远的距离输入任意指令到受害者的计算机,而使用的工具只是价值15 美元的特殊USB 适配器。下为USB 适配器叫作Crazyradio PA。
Crazyradio PA 是一款基于nRF24LE1 的开源硬件。它带有运放芯片,具备信号放大的功能,更高的接收灵敏度,而且使用的天线不是上文nRF24L01+模块中的板载天线,而是外置SMA 接口天线。配备外置天线会大大提升收发效果。这些改进让它的收发距离达到了空旷距离100 米,而不是常见无线键鼠的10 米左右。MouseJack 修改了Crazyradio PA 的固件,使它能够支持嗅探数据包并且能够通过Python 实现注入功能。
当键盘或者鼠标做出一定的动作后,这些信号就会转化成无线传输的数据包给电脑端的适配器。电脑端的适配器接收到鼠标或者键盘发送的数据包后,就能知道键盘或者鼠标相应的动作。为了防止被偷听,大多数厂商都会对无线键盘的通信数据进行加密。电脑端的适配器是知道密钥的,所以它能正确解码出哪些键盘按下了。如果不知道密钥,黑客就无法解码这些数据,所以他们就没办法知道哪些按键按下了。下图为用户使用无线键盘,当按下字母A 时,这一数据在发送之前就被加密了,适配器接收到后对其解密得到正确的按键值。
一般来说,鼠标传输的数据都是没有经过加密的。这意味着鼠标和适配器直接的通信没有任何证明机制,适配器没办法分辨出哪些数据包是鼠标发送的,哪些是黑客伪造的。所以黑客可以伪造一个鼠标,传送他希望的动作给适配器。下图为用户在单击鼠标左键后,通过无线方式传送到电脑端的适配器。
这个过程中的主要问题是,适配器对接收到的数据包的处理机制使黑客能传送精心伪造的数据包产生按键动作。下图为黑客可以利用Crazyradio PA 之类的工具,产生伪造的左击的数据包。用户的适配器在接收到这样的数据包后告诉计算机产生左击的动作。
目前,绝大多数受影响的芯片都是来自Nordic 半导体公司生产的nRF24L 系列的收发器。nRF24L 系列的收发器只提供了两个器件之间收发的机制,而具体发送哪些数据代表鼠标点击或者按键按下都是由各个品牌的厂商决定的。目前发现的问题大致可以归纳为以下三类。
1.欺骗鼠标,按键注入
当处理接收到的无线数据包后,一些适配器并不验证数据包的类型是不是该类型的器件发射出的。在正常情况下,鼠标只发送移动和敲击的数据给适配器,键盘只发送按键情况。如果适配器不验证数据包的类型和发送的器件类型是否匹配,就可能让黑客有机可乘。黑客使用的是一个伪装的鼠标,但实际上发送给适配器的却是键盘的按键数据包,适配器并没有预料到来自鼠标的数据包其实是被加密过的按键数据包,它会接收这些包含按键信息的数据包,并按照数据包内容实施按键操作,使得黑客可以向受害者的计算机发送任意指令。
2.欺骗键盘,按键注入
大多数测试的键盘都在无线传输数据到适配器前对数据进行了加密处理,但并不是所有适配器都只接收加密的数据,它们也接收未加密的数据。这使得黑客可以使用一个伪装的键盘,发送未加密的数据包给适配器。这样就绕过了键盘的加密措施,使得黑客可以通过键盘向受害者的电脑发送任意指令。
3.强制配对
无线键盘或者鼠标出厂时,都是和适配器配对了的。这意味着键盘或者鼠标已经保存了适配器的无线地址。如果一个无线键盘或者鼠标没有存储适配器的地址,就需要将它们与适配器进行配对。假设用户的无线键盘或者鼠标坏了,或者无线适配器丢了,用户不需要再次购买全套的无线键盘或鼠标,只需购买新的键盘鼠标或者适配器就可以。
为了防止未授权的设备与适配器配对,适配器需要在配对模式的30~60s 内接受新的设备。这使得黑客可以通过配对模式与新的设备配对而不需要用户介入。用户只有一个鼠标,但当它在连接配对的时候,黑客就能用伪造的键盘与适配器配对,最终达到向用户计算机发送任意指令的目的。
如果单纯地监听或者控制无线鼠标是没有太大意义的。因为鼠标自身能做的事情太有限了,无非是移动、左击或者右击。在完全不知道用户操作界面的情况下,这些操作几乎毫无意义。移动也不知道移动到了什么位置,点击也不知道效果具体怎么样。所以单纯地对无线鼠标的监听或者控制而没有实际意义。
所以MouseJack 官方的那个Show,也仅仅只是一个Show!
警告:非法窃取他人信息是违法行为,本节内容仅供学习参考!切勿犯错!
本文选自《硬件安全攻防大揭秘》,点此链接可在博文视点官网查看。
想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
相关推荐
【Packet Tracer经典案例之路由交换入门篇】是网络学习者和IT专业人士的重要参考资料,它主要聚焦于使用Packet Tracer工具进行网络仿真的基础知识。Packet Tracer是由思科系统开发的一款强大的网络设计和教学工具,...
《Visual C++游戏开发经典案例详解》这本书是针对使用Visual C++进行游戏开发的专业指南,旨在帮助读者通过实例学习和掌握C++编程语言在游戏开发中的应用。书中的内容覆盖了从基础到高级的游戏开发技术,包括图形...
这个“Java语言十大经典案例”涵盖了Java的核心特性,包括文件与流、多线程、网络编程以及异常处理等重要概念。以下是对这些知识点的详细说明: 1. **文件与流**: 文件操作是程序处理数据的基本方式。Java提供了...
Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发大全源文件Ajax经典案例开发...
Access数据库开发经典案例解析(示例程序).iso 2006年第一版 清华大学出版社 王晟 韩泽坤编著
《Access数据库开发经典案例解析》是一本深入探讨Access数据库应用的书籍,随书附带的光盘包含了8个经过实际调试且可运行的案例,旨在帮助读者更好地理解和掌握Access数据库的开发技巧。以下是对这些知识点的详细...
在这个“SEO经典案例”文档中,我们很可能会发现一系列成功的SEO策略和实践,这些案例可以帮助我们理解如何有效地提升网站的可见性和流量。 首先,SEO的经典案例通常会涵盖关键词研究。关键词是用户在搜索引擎中...
《SAS开发经典案例解析》共分12章,主要内容包括SAS概述与整体架构、SAS编程语法基础、数据步基础与案例、过程步基础与案例、函数基础与案例、宏基础与案例、统计分析基础与案例、SAS与关系数据库Oracle交互应用、...
《Visual C++网络编程经典案例详解》是一本深入探讨C++在网络安全领域的实践书籍,它提供了丰富的源码示例,帮助读者理解并掌握网络编程的关键技术。这份资源包含了随书光盘的部分源码,虽然被分为了三个部分,分别...
Elasticsearch经典案例:日志分析和监控系统.zip Elasticsearch经典案例:日志分析和监控系统.zip Elasticsearch经典案例:日志分析和监控系统.zip Elasticsearch经典案例:日志分析和监控系统.zip Elasticsearch...
人工智能相关的关键知识点和一些经典案例.zip 人工智能相关的关键知识点和一些经典案例.zip 人工智能相关的关键知识点和一些经典案例.zip 人工智能相关的关键知识点和一些经典案例.zip 人工智能相关的关键知识点和...
Photoshop CS5经典案例视频教程95实例,百度云盘链接,有2.6G左右。
java面试:3道 Java 面试经典案例及详细解析.zip java面试:3道 Java 面试经典案例及详细解析.zip java面试:3道 Java 面试经典案例及详细解析.zip java面试:3道 Java 面试经典案例及详细解析.zip java面试:3道 ...
《Visual C# 2008程序设计经典案例设计与实现》是一本专注于利用Microsoft的C#编程语言在Visual Studio 2008环境下进行软件开发的实践指南。这本书涵盖了从基础到高级的各种主题,旨在帮助读者提升C#编程技能,并...
【C#经典案例:设计一个订单类】 在C#编程中,设计一个订单类是一个常见的练习,它能帮助开发者深入理解面向对象编程的核心概念,包括封装、继承、多态、抽象类、接口、实例成员与静态成员,以及重载和代码重用。本...
作为世界知名的零售业巨头,家乐福在中国市场的扩张与经营策略成为了哈佛商学院MBA课程中的经典案例之一。本案例通过对家乐福集团董事长兼首席执行官贝鹤能的访谈,深入探讨了连锁超市在中国的发展现状与未来趋势,...
51单片机modbus通讯协议经典案例。也可在不同类型单片机之间进行修改移植 51单片机modbus通讯协议经典案例。也可在不同类型单片机之间进行修改移植 51单片机modbus通讯协议经典案例。也可在不同类型单片机之间进行...
在Python编程语言中,经典案例是用来锻炼编程技巧和理解数据结构与算法的重要方式。"经典案例python.zip"这个压缩包包含了一些著名的编程挑战的Python实现,让我们逐一探讨这些案例及其背后的编程知识点。 首先,...
MBA经典案例全集
在“Java经典案例”这个资源中,我们很可能会找到一系列针对初学者和高级开发者的学习材料,帮助他们理解和应用Java语言的各种特性。这些案例可能涵盖了从基础语法到复杂的设计模式,涉及了Java开发的多个方面。 ...