hak5/usbrubberducky-payloads

GitHub: hak5/usbrubberducky-payloads

Hak5 USB Rubber Ducky 的官方 payload 社区仓库,提供基于 DuckyScript 的按键注入攻击脚本、扩展和多语言键盘布局支持。

Stars: 5794 | Forks: 1650

# [Hak5](https://hak5.org) [USB Rubber Ducky](https://hak5.org/products/usb-rubber-ducky?variant=39874478932081) Payload 库 此仓库包含 Hak5 USB Rubber Ducky 的 payload、扩展和语言。这里列出了社区开发的 payload,同时鼓励开发者创建 pull request 来修改或提交新的 payload。 **这里的 payload 是专门为 USB Rubber Ducky 使用官方 DuckyScript™ 编写的。这里的 payload 必须使用 Hak5 PayloadStudio 编译。Hak5 不保证 payload 的功能。** 请参阅法律与免责声明
     


View Featured Ducky Payloads and Leaderboard
Get your payload in front of thousands. Enter to win over $2,000 in prizes in the Hak5 Payload Awards!

                       

# 目录
## 快速入门 - [使用 PayloadStudio 构建和编码 Payload](#build-your-payloads-with-payloadstudio) | [快速入门指南](https://docs.hak5.org/hak5-usb-rubber-ducky/unboxing-quack-start-guide "QUICK START GUIDE") | [你的第一个 Payload](https://docs.hak5.org/hak5-usb-rubber-ducky/ducky-script-basics/hello-world) ## 文档 / 了解更多 - [文档](https://docs.hak5.org/hak5-usb-rubber-ducky/ "Documentation") | [快速参考指南](https://docs.hak5.org/hak5-usb-rubber-ducky/ducky-script-quick-reference "Quick Reference Guide") - [高级 DuckyScript 在线课程](https://shop.hak5.org/collections/usb-rubber-ducky-essentials/products/advanced-duckyscript-course "DuckyScript Online Course") | [教科书](https://shop.hak5.org/collections/usb-rubber-ducky-essentials/products/usb-rubber-ducky-textbook "Textbook") 使用专为 USB Rubber Ducky 设计的、易于学习的语言,轻松自动化任何你可以使用键盘执行的任务。 # 关于 DuckyScript™ ## 旧版 DuckyScript (1.0) Hak5 在 2010 年推出了 USB Rubber Ducky™ 并引入了 Keystroke Injection。这项由 Hak5 创始人 Darren Kitchen 开发的技术,是他在 IT 工作中自动化处理日常任务(如修复打印机、网络共享等)的首选武器。 如今,USB Rubber Ducky 已成为黑客文化的标志, synonymous with( synonymous with synonymous)它所开创的 keystroke injection 技术。它已经走进了全球网络安全和 IT 专业人士的心中和工具包里——甚至还出现在许多电影和电视节目中! 其成功的核心在于它简单的语言——DuckyScript™。最初只有三个命令,任何人都可以在几分钟内学会——无论其经验如何。 随着 2022 年全新 USB Rubber Ducky 的推出,DuckyScript 3.0 也随之发布。 ## DuckyScript 3.0 DuckyScript 3.0 是一种功能丰富的结构化编程语言。它包含了原始 DuckyScript 中所有以前可用的命令和功能。 (DuckyScript 3.0 向后兼容 DuckyScript 1.0;这意味着你所有最喜欢的 DuckyScript 1.0 payload 都是有效的 DuckyScript 3.0) 此外,DuckyScript 3.0 引入了[控制流结构](https://docs.hak5.org/hak5-usb-rubber-ducky/operators-conditions-loops-and-functions/conditional-statements "View Documentation")、[循环](https://docs.hak5.org/hak5-usb-rubber-ducky/operators-conditions-loops-and-functions/loops "View Documentation")、[函数](https://docs.hak5.org/hak5-usb-rubber-ducky/operators-conditions-loops-and-functions/functions "View Documentation")、[扩展](https://docs.hak5.org/hak5-usb-rubber-ducky/advanced-features/extensions "View Documentation")。 另外,DuckyScript 3.0 还包含许多专用于[ keystroke injection ](https://docs.hak5.org/hak5-usb-rubber-ducky/ducky-script-basics/keystroke-injection "View Documentation")攻击/自动化的功能,例如 [HID 与存储攻击模式](https://docs.hak5.org/hak5-usb-rubber-ducky/attack-modes-constants-and-variables/attack-modes "View Documentation")、OS Detection、[Keystroke Reflection](https://docs.hak5.org/hak5-usb-rubber-ducky/advanced-features/exfiltration#the-keystroke-reflection-attack "View Documentation")([视频 + 白皮书](https://shop.hak5.org/pages/keystroke-reflection "Keystroke Reflection Video + Whitepaper"))、[jitter](https://docs.hak5.org/hak5-usb-rubber-ducky/advanced-features/jitter "View Documentation") 和 [randomization](https://docs.hak5.org/hak5-usb-rubber-ducky/advanced-features/randomization "View Documentation") 等。 虽然许多 Hak5 工具运行不同版本的 DuckyScript;但与 [Bash Bunny](https://shop.hak5.org/products/bash-bunny)、[Key Croc](https://shop.hak5.org/products/key-croc) 甚至[由 O.MG 官方授权的 DuckyScript 兼容设备](https://shop.hak5.org/collections/mischief-gadgets/ "O.MG")(它们使用 `INTERPRETED` 版本的 DuckyScript)不同——USB Rubber Ducky 使用 `COMPILED inject.bin` payload。 _解释型 DuckyScript 意味着 payload 直接从 `source code`(你编写的代码,例如 `DELAY 1000`)运行。_ _编译型 DuckyScript 意味着既有 `source code`,也有从源代码生成的 `inject.bin`。(DuckyScript 1.0 是“encoded”而不是“compiled”——两者的意思是一样的)_ 此仓库中的文件是 `payload.txt` 形式的 _源代码_ 。

Learn DuckyScript directly from the creators

直接向创作者学习高级 DuckyScript,释放 USB Rubber Ducky 的创造潜力。这些实用课程涵盖了高级 DuckyScript 和 keystroke injection 攻击的各个方面,从基础开始循序渐进。 本在线课程包含 7 个小时的视频教学内容,涵盖 54 节课、40 多个练习以巩固你的知识,贯穿始终的测验,以及 8 个用于测试你技能的项目。

Build your payloads with PayloadStudio

Take your DuckyScript™ payloads to the next level with this full-featured, web-based (entirely client side) development environment.

Payload studio features all of the conveniences of a modern IDE, right from your browser. From syntax highlighting and auto-completion to live error-checking and repo synchronization - building payloads for Hak5 hotplug tools has never been easier!

Supports your favorite Hak5 gear - USB Rubber Ducky, Bash Bunny, Key Croc, Shark Jack, Packet Squirrel & LAN Turtle!


Become a PayloadStudio Pro and Unleash your hacking creativity!
OR
Try Community Edition FREE


Payload Studio Themes Preview GIF


Payload Studio Autocomplete Preview GIF

## DuckyScript 生态系统

语言

在本仓库的 languages/ 目录中,可以找到、修改或贡献对不同键盘布局的支持。 为正确的语言/键盘布局编译 payload 变得前所未有的简单: 打开 PayloadStudio \> Settings \> Compiler Settings 为了你的方便,PayloadStudio 内置了此仓库中提供的所有语言。 PayloadStudio Pro 拥有一个专用的语言编辑器,专门用于编辑和构建语言文件! 默认语言是 US (languages/us.json)

Extensions

It should be clear by now that so much is possible with DuckyScript 3.0. The combination of keystroke injection with various attack modes, logic and data processing, along with the built-in features like randomization and internal variables — the possibilities for advanced payload functions seems endless.



Payload Studio Extensions Preview GIF

随着 payload 库的不断壮大,DuckyScript 3.0 语言也会随之发展。为此,该语言和编辑器的扩展功能促进了该语言的持续增长。 扩展是可以在任何 payload 中实现的可重用代码块。你可以将它们视为片段或构建块,你下一个 payload 可能会从中受益。 虽然 Hak5 开发者无法设想 USB Rubber Ducky 所有可能的使用场景,但 DuckyScript 语言在架构设计上允许整个社区通过每个贡献的扩展获得新的功能和能力。 扩展(除了一些第一方示例之外)目前专用于辅助函数集合(+所需的变量、define 和配置选项),这些函数用于将复杂任务简单化——将非常复杂的问题抽象为一个或几个调用,以方便他人使用(例如:translate 扩展)。 要将扩展添加到你的 payload 中,只需在 PayloadStudio 中的 payload 里开始输入所需扩展的名称,然后从自动补全下拉菜单中选择它。或者,可以在此仓库的 Extensions 文件夹中找到完整的库。 [在此阅读更多内容](https://docs.hak5.org/hak5-usb-rubber-ducky/advanced-features/extensions "Read more here") ### 纯破坏性的 payload 将不予接受。不,这不仅仅是“恶作剧”。 如有更改,恕不另行通知。在提交 Pull Request 之前,请确保任何提交都符合这些标准的[最新版本](https://github.com/hak5/usbrubberducky-payloads/blob/master/README.md)。 ## 命名约定 请为你的 payload 赋予一个独特、具有描述性且合适的名称。请不要在 payload、目录或文件名中使用空格。每个 payload 都应提交到各自的目录中,使用 `-` 或 `_` 代替空格,并归入 exfiltration、phishing、remote_access 或 recon 等类别之一。请勿自行创建类别。 ## 分阶段 Payload “分阶段 Payload(Staged payloads)”是指从 payload.txt 外部的某些资源**下载**代码的 payload。 虽然在 payload 中使用分阶段代码通常是有用且合适的,但使用这个(或另一个)github 仓库作为部署这些阶段的手段是不合适的。此仓库**不是用于在目标系统上进行部署的 CDN**。 分阶段代码应由**最终用户**复制并托管在适当的服务器上——Github 和此仓库仅仅是用于在开发者和用户之间共享代码的资源。 参见:[GitHub 可接受使用政策](https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies#5-site-access-and-safety) 此外,任何打算**(由最终用户在适当的基础设施上)**进行分阶段托管的源代码,都应包含在任何提交的 payload 中,可以放在 payload 本身的注释中,也可以作为单独的文件。**指向分阶段代码的链接是不可接受的**;不仅出于上述原因,还出于版本控制和用户安全的原因。通过 payload 中的 URL 隐藏在某些预定义外部资源后面的任意代码,可能会在用户不知情的情况下在未来任何时候被替换——从而可能将无害的 payload 变成危险的东西。 ### 包含 URL 在提交的任何 payload 中,用于检索分阶段代码的 URL 应专门使用 `DEFINE` 指向 **example.com** [请参阅下方的 Payload 配置部分](https://github.com/hak5/usbrubberducky-payloads/blob/master/README.md#payload-configuration)。 ### 分阶段示例 **示例场景:你的 payload 下载了一个脚本并在目标机器上执行它。** - 将脚本包含在你的 payload 目录中 - 为用户提供说明,指导他们将脚本移动到适当的托管服务上。 - 提供一个带有占位符 example.com 的 DEFINE,以便用户在托管脚本后可以轻松进行配置。 [此类 payload 的简单示例](https://github.com/hak5/usbrubberducky-payloads/tree/master/payloads/library/exfiltration/Printer-Recon) ## Payload 配置 请务必仔细考虑以下几点,以确保你的 payload 易于测试、使用和维护。 在许多情况下,payload 将需要**由最终 payload 用户**进行某种程度的配置。 - 抽象配置以便于使用。尽可能使用 `DEFINE`。最佳做法是使用以 # 开头的标签,以便在整个 payload 中轻松识别。 - 记住在你的 payload 的可配置部分使用 PLACEHOLDERS(占位符)——不要分享你个人的 URL、API keys、Passphrases 等... - 不应包含指向分阶段 payload 的 URL。URL 应替换为 example.com。提供有关如何将特定资源托管在适当基础设施上的说明。 - 使用 payload 顶部的注释或在适用的地方使用“内联(inline)”方式,在 payload 中注明 REQUIRED(必需)和 OPTIONAL(可选)配置

示例: 

	PAYLOAD 开头 

	... Payload 文档... 



	REM CONFIGURATION

	REM REQUIRED - 提供用于示例的 URL

	DEFINE #MY_TARGET_URL example.com



	REM OPTIONAL - payload 启动前的等待时间;默认为 5s

	DEFINE #BOOT_DELAY 5000



	DELAY #BOOT_DELAY

	...

	STRING #MY_TARGET_URL

	...

## Payload 文档

Payload 应以 `REM` 注释开头,指明 payload 的标题、作者、目标以及简短说明。


示例:

	PAYLOAD 开头



	REM Title: Example Payload

	REM Author: Korben Dallas

	REM Description: Opens hidden powershell and

	REM Target: Windows 10

	REM Props: Hak5, Darren Kitchen, Korben

	REM Version: 1.0

	REM Category: General

法律

此仓库中的 payload 仅出于教育目的提供。Hak5 设备仅用于授权的审计和安全分析目的,且须符合适用的地方和国际法律。用户需独自遵守其所在地的所有法律。Hak5 LLC 及其附属公司对未经授权或非法使用不承担任何责任。 USB Rubber Ducky 和 DuckyScript 是 Hak5 LLC 的商标。版权所有 © 2010 Hak5 LLC。保留所有权利。未经版权所有者事先书面许可,不得以任何形式或任何方式复制或传播本作品的任何部分。 USB Rubber Ducky 和 DuckyScript 受 Hak5 许可协议 (https://hak5.org/license) 约束 DuckyScript 是 Hak5 LLC 的知识产权,仅为 Hak5 LLC 及其被许可人的利益服务。如需咨询在你的项目中使用这些材料的许可,请联系我们。请将假冒产品和品牌滥用行为报告至 legal@hak5.org。 本材料仅用于教育、授权审计和分析目的,且须符合适用的地方和国际法律。用户需独自承担合规责任。Hak5 LLC 对未经授权或非法使用不承担任何责任。 Hak5 LLC 产品和技术仅向根据美国 15 CFR Part 740 补充第 3 条获得 BIS 认可的 ENC 许可例外优惠待遇的国家提供。 另请参见: [Hak5 软件许可协议](https://shop.hak5.org/pages/software-license-agreement) [服务条款](https://shop.hak5.org/pages/terms-of-service) # 免责声明

与任何脚本一样,建议您谨慎操作。

通常情况下,payload 可能会在您的设备上执行命令。因此,payload 有可能损坏您的设备。此仓库中的 payload 按“原样”提供,不提供任何担保。虽然 Hak5 尽最大努力审查 payload,但不保证其有效性。

标签:DuckyScript, HID攻击, IP 地址批量处理, Libemu, 搜索语句(dork), 攻击载荷, 物理安全