三好学生 · 2016/03/06 12:51python
近日,Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者能够利用漏洞控制电脑操做,他们将此攻击命名为MouseJack。 攻击者仅须要在亚马逊上以60美圆购买设备,改造以后便可对百米范围内存在漏洞的蓝牙无线键鼠进行劫持,向受害计算机输入任意指令。相信对此感兴趣的人有不少,因此我根据其公布的信息购买了相应设备来进行测试,现将测试经验分享给你们。git
软件工程师马克纽林说:“利用假冒的无线电脑鼠标和键盘能够从100米的距离利用便携式外围设备入侵笔记本电脑,这些设备来自至少七家大厂商,包括罗技、微软、亚马逊”。 Bastille研究团队发现了针对13种鼠标和键盘的攻击并向各厂商报告了漏洞,其中有些厂商已经发布了补丁。github
因为没有身份验证机制,因此适配器没法识别出数据包是由鼠标发送的仍是由攻击者发送的。ubuntu
所以,攻击者能够假装成一个鼠标发送本身的数据或者点击数据包以欺骗适配器windows
相信好多小伙伴已经在着手购买设备了,可是去国外的亚马逊以60美圆购买设备有点不现实,因此我提早给你们探了路,在国内就能够用不到200元的价格购入设备,避免多花冤枉钱安全
测试设备:bash
一、Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle(<¥200)app
二、DELL KM714 无线键盘鼠标套装(<¥400)测试
注:spa
如下连接展现了存在漏洞的设备:
https://www.bastille.net/affected-devices
三、个人测试设备
测试环境:
本机系统: Win7
虚拟机系统: Kali 1.0
复制代码
测试流程:
#!bash
sudo apt-get install sdcc binutils python python-pip
sudo pip install -U pip
sudo pip install -U -I pyusb
sudo pip install -U platformio
复制代码
下载代码github.com/RFStorm/mou…,执行:
#!bash
cd mousejack-master/
make
复制代码
如图
执行:
#!bash
make install
复制代码
如图,操做失败
在此处得到提示,须要更新Crazyradio 固件:
github.com/RFStorm/mou…
更新方法可参照:
wiki.bitcraze.io/projects:cr…
下载代码https://github.com/bitcraze/crazyradio-firmware,执行:
#!bash
cd crazyradio-firmware
python usbtools/launchBootloader.py
复制代码
如图
到github.com/bitcraze/cr…
下载cradio-pa-0.53.bin,放在crazyradio-firmware文件下,执行:
#!bash
python usbtools/nrfbootload.py flash cradio-pa-0.53.bin
复制代码
如图,成功更新Crazyradio 固件
执行
#!bash
cd mousejack-master/
make install
复制代码
如图,发现依然失败
接着执行:
#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
复制代码
此时也没法查看固件版本
原来须要把U盘拔下来从新插进去
再次执行代码查看固件版本
#!bash
lsusb -d 1915:7777 -v | grep bcdDevice
复制代码
如图成功
再次执行
#!bash
make install
复制代码
成功,如图
根据上面更新固件成功的代码提示"Please unplug your dongle or breakout board and plug it back in",再次拔掉从新插入U盘
如图,此时本机的Windows系统没法识别U盘,这就致使虚拟机系统也没法加载U盘,没法进行后续的测试
原来须要在Windows上安装Crazyradio固件的驱动
(1)参考wiki.bitcraze.io/doc:crazyra…
手动下载驱动包,在设备管理器中找到未识别的设备,手动更新驱动,可是依然没法识别
(2)参考wiki.bitcraze.io/doc:crazyra…
下载zadig来识别U盘进行更新驱动
但发现zadig也没法识别U盘,所以这种方法也失效
此时Windows没法识别U盘,有以下两种假设:
(1)Windows系统下的Crazyradio固件驱动存在问题,因此没法识别,所以致使虚拟机系统没法加载U盘(可是已经用了2种更新驱动的方法仍是没法识别,会不会是刷坏了呢)
(2)U盘被刷坏(存在这种可能,固件更新的说明里有提到,不是100%安全),有询问研究过crazyradio file的小伙伴,也倾向于U盘被刷坏
为了测试可以继续进行,改变了思路决定更换测试环境,在其余系统上也许可以绕过这个难题。
(1)ubuntu
感兴趣的小伙伴能够深刻测试
(2)osx
使用osx系统测试,也许可以成功识别U盘,这也就是为何最终采用了osx系统测试
测试发现osx系统可以成功识别,如图
依然是在虚拟机里面接着测试,此次虚拟机中的系统使用的是kali2.0,顺便也就研究了若是成功刷好U盘,在其余系统上使用须要哪些环境.
经测试得出初步结论:
若是刷好U盘,只须要在新系统上下载Github代码,便可进行接下来的测试
简单的测试图以下
链接上设备Dell KM714,对比给出的硬件id
右图为购买的Dell KM714显示的硬件id
(1)scanner
执行
#!bash
cd mousejack-master/
./nrf24-scanner.py -c {1..5}
复制代码
运行后,会捕获附近全部设备的数据包
这时咱们对KM714鼠标和键盘操做,命令行会当即回显捕获到的数据包
可找到Dell KM714的地址为 08:D0:4F:28:02
(2)sniffer
肯定了Dell KM714的地址,就能够对其进行定向捕获 执行
#!bash
./nrf24-sniffer.py -a 08:D0:4F:28:02
复制代码
(3)network mapper(Denial of Service)
执行
#!bash
./nrf24-network-mapper.py -a 08:D0:4F:28:02
复制代码
可拦截地址为08:D0:4F:28:02的设备发出的数据包,并对最后一位作修改,此操做可以使设备失效,没法对电脑发送控制指令
如图,执行完脚本后,此时Dell KM714的鼠标键盘失去响应,没法对电脑进行控制,只有从新插拔接收器才能恢复正常。
注:
Verification succeded!
即表明升级成功,发光管会显示红灯的缘由在于对固件进行升级操做后,并未对发光管进行设置,所以显示红色。 板子上的灯虽然是红色,但不影响功能。以上分享了我对mousejack的测试心得,记录的比较完整,但愿对你的测试研究有所帮助。
固然,本文仅仅是对其公布的github代码进行初步测试,更多深刻测试也在进行当中。若是须要实现劫持鼠标键盘,发送键盘消息,能够尝试修改github中的python代码。
若是你有更好的想法或是遇到了新的问题,欢迎和我交流:)
本文由三好学生原创并首发于乌云drops,转载请注明