键盘注入攻击实战:利用无线键鼠漏洞实现远程代码执行

执行键盘注入攻击

前言

继Bastille研究组的工作之后(参见:https://github.com/BastilleResearch/mousejack),我有兴趣了解这些(键盘注入)漏洞是否仍然有效。令我惊讶的是,我能够在我已有的廉价Logitech键盘上复现该攻击。这款键盘(Logitech K400r)仍在我当地的沃尔玛以低于20美元的价格出售。特别值得注意的是,使用Unifying接收器(带橙色星标)的无线设备尤其易受攻击。

根据我的初步研究,无线键盘的通信(击键)似乎是加密的以防止窃听,而鼠标移动通常以未加密方式发送。MouseJack漏洞利用通过允许未加密的击键作为合法数据包传递到目标计算机的操作系统,来利用易受攻击的dongle。

这种无线(非蓝牙)攻击场景可以通过相当便宜的无线电dongle、一个小脚本,以及最远100米的距离来实现!

我在下面概述了我的过程。

硬件:Crazy Radio PA dongle

键盘:Logitech K400r

FCC ID:JNZYR0019

幸运的是,对于这个项目,与该设备相关的FCC信息并不是真正必需的,但知道它旨在在2.405 – 2.474GHz WiFi范围内无线运行是好事。

键盘注入Payload

为我们计划的攻击做准备,我们需要基于Rubber Ducky脚本语言创建一个短文本文件(更多信息:https://github.com/hak5darren/USB-Rubber-Ducky/wiki)。使用任何文本编辑器(nano、vi、notepad等),输入以下内容并保存文件:

DELAY 500
GUI r 
DELAY 500
STRING notepad.exe  
ENTER 
DELAY 1000 
STRING Hello World! 

使用nano文本编辑器的示例

  • GUI r 模拟按住Windows键并点击‘r’以打开运行窗口
  • STRING notepad.exe 显然在运行窗口中键入notepad.exe,打开记事本
  • STRING Hello World! 被键入新打开的记事本页面

注意:虽然在使用Rubber Ducky USB dongle时可能需要一些延迟以确保可靠操作,但在使用CrazyRadio dongle实施攻击时情况并非如此。这是因为我们没有加载任何USB驱动程序或尝试检测插入USB端口的任何USB dongle。此处的延迟仅用于演示目的。理想情况下,我们希望尽可能快地执行脚本并注入payload以避免被人工检测,但也不能以牺牲可靠操作为代价。

下载JackIt

git clone https://github.com/insecurityofthings/jackit.git
cd jackit
pip install -e .

使用payload脚本‘hello.txt’运行JackIt

一旦目标被识别,按CTRL-C并选择目标键以注入payload

注意:执行此攻击不需要知道MAC地址。所需要的只是目标键,并且类型有有效条目,如Logitech HID、Microsoft HID等。(空字段或‘unknown’将不起作用。)

成功!!!

基于云的PowerShell注入

意识到键盘payload注入现在可行后,我的下一步是尝试使用这种经过验证的攻击方法注入PowerShell payload。

首先,我创建了一个github仓库来托管我的PowerShell注入脚本。

接下来,我修改了我的‘hello.txt’脚本以运行PowerShell而不是记事本,并将注入字符串从Hello World!更改为PowerShell Invoke Expression (IEX) cmdlet,该cmdlet下载.ps1脚本并在目标计算机上执行它。

使用修改后的‘hello.txt’脚本运行JackIt现在产生了预期的结果!我能够清楚地利用Logitech HID中的已知漏洞注入基于云的PowerShell执行。

总结

我很高兴我从易受攻击的键盘开始,因为即使我拥有的鼠标明显是Logitech Unify接收器并带有橙色星标,但它们都无法被注入。我怀疑这可能是因为Logitech实现了可以更新的dongle固件,而许多已经在现场使用的鼠标使用一次性可编程闪存设备。

Microsoft已发布安全更新(https://support.microsoft.com/en-us/help/3152550/microsoft-security-advisory-update-to-improve-wireless-mouse-input-fil),该更新检查来自dongle的通信payload是否为QWERTY,以及设备类型是否为鼠标,如果是,则数据包将被忽略。然而,据我判断,此安全更新基本上是可选
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

posted @ 2025-09-02 17:17  qife  阅读(17)  评论(0)    收藏  举报